<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BarryODonovan.com &#187; Software</title>
	<atom:link href="http://www.barryodonovan.com/index.php/category/software/feed" rel="self" type="application/rss+xml" />
	<link>http://www.barryodonovan.com</link>
	<description>The thoughts, ramblings and rants of Barry O&#039;Donovan</description>
	<lastBuildDate>Wed, 09 Dec 2009 14:30:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Amazon Web Service&#8217;s ec2-bundle-image on Ubuntu</title>
		<link>http://www.barryodonovan.com/index.php/2007/11/12/ec2-ami-ubuntu</link>
		<comments>http://www.barryodonovan.com/index.php/2007/11/12/ec2-ami-ubuntu#comments</comments>
		<pubDate>Mon, 12 Nov 2007 20:24:06 +0000</pubDate>
		<dc:creator>Barry O'Donovan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[Rants]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.barryodonovan.com/index.php/2007/11/12/ec2-ami-ubuntu/</guid>
		<description><![CDATA[This is really a post for Google&#8217;s crawlers on getting AWS&#8217;s EC2 AMI tools working under Ubuntu (I&#8217;m currently on Gutsy 7.10). Despite any bitching I may do below, EC2 and S3 are cool services. The first problem is that AWS only distribute the tools as an RPM (really guys? I mean FFS). Convert and [...]]]></description>
			<content:encoded><![CDATA[<p>
This is really a post for Google&#8217;s crawlers on getting AWS&#8217;s EC2 AMI tools working under Ubuntu (I&#8217;m currently on Gutsy 7.10). Despite any bitching I may do below, EC2 and S3 are cool services.
</p>
<p>
The first problem is that AWS only distribute the tools as an RPM (really guys? I mean FFS). Convert and install with <code>alien</code>.
</p>
<pre>
# apt-get install alien
# alien -k ec2-ami-tools.noarch.rpm
# dpkg -i ec2-ami-tools_1.3-15283_all.deb
</pre>
<p>
Make  sure you also install <code>libopenssl-ruby</code>.
</p>
<p>
Set your Ruby path as the RPM places them where RedHat expects to find them:
</p>
<pre>
# export RUBYLIB="/usr/lib/site_ruby"
</pre>
<p>
Now when you run the utility, you&#8217;ll probably get:
</p>
<pre>
$ ec2-bundle-image -r ... -i ... -k ... -c ... -u ...
sh: Syntax error: Bad substitution
</pre>
<p>
Aparently Ubuntu switched from invoking <code>bash</code> to <code>dash</code> for <code>sh</code> somewhere along the line. Just relink it (temporarily or permanently as suits):
</p>
<pre>
# rm /bin/sh
# ln -s /bin/bash /bin/sh
</pre>
<p>
And you should be good to go.
</p>
<p>
One other issue I encountered was that the permissions of the directories were for root only (i.e. <code>/usr/local/aes</code>, <code>/usr/lib/site_ruby/</code> and <code>/etc/aes</code>). A very sloppy <code>chmod a+rX</code> on each of these will resolve that. Although I suspect it&#8217;s more to do with the fact that I used <code>rpm2cpio</code> and <code>cpio</code> rather than <code>alien</code> the first time around.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.barryodonovan.com/index.php/2007/11/12/ec2-ami-ubuntu/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nagios Plugin to Check the Status of PRI Lines in Asterisk</title>
		<link>http://www.barryodonovan.com/index.php/2007/11/02/asterisk-pri-nagios</link>
		<comments>http://www.barryodonovan.com/index.php/2007/11/02/asterisk-pri-nagios#comments</comments>
		<pubDate>Fri, 02 Nov 2007 21:15:57 +0000</pubDate>
		<dc:creator>Barry O'Donovan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[Recipes]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[VoIP]]></category>

		<guid isPermaLink="false">http://www.barryodonovan.com/index.php/2007/11/02/nagios-plugin-to-check-the-status-of-pri-lines-in-asterisk/</guid>
		<description><![CDATA[I have a number of Asterisk implementations that I keep an eye on that have multiple PRI connections. Knowing if and when they ever go down has the obvious benefits of alerting me to a problem in near real time. But besides that, it allows my customers and I to verify SLAs, track and log [...]]]></description>
			<content:encoded><![CDATA[<p>I have a number of Asterisk implementations that I keep an eye on that have multiple PRI connections. Knowing if and when they ever go down has the obvious benefits of alerting me to a problem in near real time. But besides that, it allows my customers and I to verify SLAs, track and log issues, etc.</p>
<p>To this end, I have written <a href="http://www.opensolutions.ie/misc/check_asterisk_pri.php.txt">a Nagios plugin</a> which queries Asterisk&#8217;s manager interface and executes the <code>pri show spans</code> CLI command (this is Asterisk 1.4 by the way). The script then parses the output to ascertain whether a PRI is up or not. </p>
<p>The actual code to connect to the manager interface and execute the query is simply:</p>
<pre>
if( ( $astsock = fsockopen( $host, $port, $errno, $errstr, $timeout ) ) === false )
{
    echo "Could not connect to Asterisk manager: $errstr";
    exit( STATUS_CRITICAL );
}

fputs( $astsock, "Action: Login\r\n");
fputs( $astsock, "UserName: $username\r\n");
fputs( $astsock, "Secret: $password\r\n\r\n"); 

fputs( $astsock, "Action: Command\r\n");
fputs( $astsock, "Command: pri show spans\r\n\r\n");

fputs( $astsock, "Action: Logoff\r\n\r\n");

while( !feof( $astsock ) )
{
    $asttext .= fread( $astsock, 8192 );
}

fclose( $astsock );

if( strpos( $asttext, "Authentication failed" ) !== false )
{
    echo "Asterisk manager authentication failed.";
    exit( STATUS_CRITICAL );
}
</pre>
<p>This plugin is hard coded to English and expects to find <code>Provisioned, Up, Active</code> for a good PRI. For example, the Asterisk implementations that support the <code>pri show spans</code> command that I have access to return one of:</p>
<ul>
<li> <code>PRI span 1/0: Provisioned, In Alarm, Down, Active</code> </li>
<li> <code>PRI span 3/0: Provisioned, Up, Active</code> </li>
</ul>
<p>I&#8217;m actually running a slightly older version of Nagios at the moment, version 1.3. To integrate the plugin, first add the following command definition to an appropriate existing or new file under <code>/etc/nagios-plugings/config/</code>:</p>
<pre>
define command{
        command_name    check_asterisk_pri
        command_line    /usr/lib/nagios/plugins/check_asterisk_pri.php \\
             -H $HOSTADDRESS$ -U $ARG1$ -P $ARG2$ -w $ARG3$ \\
             -c $ARG4$ -n $ARG5$
}
</pre>
<p>where <code>$ARG1$</code> is the Asterisk manager username and <code>$ARG2$</code> is the password. <code>$ARG3$</code> and <code>$ARG4$</code> are the warning and critical thresholds respectively whereby if the number of available PRIs reaches one of these values, the appropriate error condition will be set. Lastly, <code>$ARG5$</code> is the number of PRIs the plugin should <string>expect</strong> to find. </p>
<p><strong>NB:</strong> the <code>command_line</code> line above is split for readability but it should all be on the one line.</p>
<p>Now create a test for a host in an appropriate file in <code>/etc/nagios/config/</code>:</p>
<pre>
define service{
        use                             core-service
        host_name                       hostname.domain.ie
        service_description             Asterisk PRIs
        check_command                   check_asterisk_pri!user!pass!2!1!4
}
</pre>
<p>Ensure that your Nagios server has permissions to access the Asterisk server via TCP on the Asterisk manager port (5038 by default). If on a public network, this should be done via stunnel or a VPN for security reasons. </p>
<p>Lastly, you&#8217;ll need a user with the appropriate permissions and host allow statements in your Asterisk configuration (<code>/etc/asterisk/manager.conf</code>):</p>
<pre>
[username]
secret = password
deny=0.0.0.0/0.0.0.0
permit=1.2.3.4/255.255.255.255
read = command
write = command
</pre>
<p>The next version may include support for BRI and Zap FXO ports also. I also plan on a Cacti plug in to show the channels on each PRI (up &#8211; on a call, down, etc). In any case, updates will be posted here.</p>
<p>The plug in can be download from: <a href="http://www.opensolutions.ie/misc/check_asterisk_pri.php.txt">http://www.opensolutions.ie/misc/check_asterisk_pri.php.txt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.barryodonovan.com/index.php/2007/11/02/asterisk-pri-nagios/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Easy PHP Search in Firefox</title>
		<link>http://www.barryodonovan.com/index.php/2007/10/25/kde-shortcut</link>
		<comments>http://www.barryodonovan.com/index.php/2007/10/25/kde-shortcut#comments</comments>
		<pubDate>Thu, 25 Oct 2007 13:48:36 +0000</pubDate>
		<dc:creator>Barry O'Donovan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[Recipes]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.barryodonovan.com/index.php/2007/10/25/kde-shortcut/</guid>
		<description><![CDATA[Niall has created a quick Opensearch file to add the PHP Function search to the search bar of Firefox 2 And IE7. If anyone is interested it&#8217;s available here. For those that don&#8217;t know, this feature has existing in KDE in multiple forms for some time. For example, pressing ALT-F2 opens the Run Command dialog [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.moybella.net/">Niall</a> <a href="http://blog.moybella.net/2007/10/25/php-manual-open-search-for-firefox-2-and-ie7/">has created</a> a quick <a href="http://www.opensearch.org/">Opensearch</a> file to add the PHP Function search to the search bar of Firefox 2 And IE7. If anyone is interested it&#8217;s available <a href="javascript:window.external.AddSearchProvider('http://blog.moybella.net/uploads/php.xml');">here</a>.</p>
<p>For those that don&#8217;t know, this feature has existing in KDE in multiple forms for some time. For example, pressing ALT-F2 opens the <em>Run Command</em> dialog and typing, for example:</p>
<pre>
php:fopen
</pre>
<p>will bring up PHP.net&#8217;s own search page. The same goes for the location bar in Konqueror.</p>
<p>By the way, other nice short cuts in the <em>Run Command</em> dialog include:</p>
<ul>
<li> <code>gg: &lt;keywords&gt;</code> for a quick Google search; </li>
<li> <code>wp: &lt;keywords&gt;</code> for a quick Wikipedia search; </li>
<li> <code>dict: &lt;keyword&gt;</code> for a quick dictionary look-up; </li>
<li> <code>man: &lt;keyword&gt;</code> for a man page look-up; </li>
<li> <code>info: &lt;keyword&gt;</code> for an info page look-up; </li>
<li> <code>rfc: &lt;number&gt;</code> to be brought to the relevant RFC page; </li>
</ul>
<p>Of course, entering a command will execute it and just entering a URL will open it in Konqueror.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.barryodonovan.com/index.php/2007/10/25/kde-shortcut/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Nagios Plugin for the Promise VTrak 200i</title>
		<link>http://www.barryodonovan.com/index.php/2007/06/06/nagios-promise-vtrak</link>
		<comments>http://www.barryodonovan.com/index.php/2007/06/06/nagios-promise-vtrak#comments</comments>
		<pubDate>Wed, 06 Jun 2007 20:03:53 +0000</pubDate>
		<dc:creator>Barry O'Donovan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[Recipes]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.barryodonovan.com/index.php/2007/06/06/nagios-promise-vtrak/</guid>
		<description><![CDATA[For a project I was working on, I installed a Promise VTrak M200i disk shelf (i for iSCSI but then that&#8217;s a whole other blog post!) and needed to add it into the customers management systems. Unfortunately there didn&#8217;t seem to be a lot of information out there on Promise&#8217;s SNMP MIBs so with a [...]]]></description>
			<content:encoded><![CDATA[<p>For a project I was working on, I installed a <a href="http://www.promise.com/product/product_detail_eng.asp?segment=VTrak&#038;product_id=151">Promise VTrak M200i</a> disk shelf (i for iSCSI but then that&#8217;s a whole other blog post!) and needed to add it into the customers management systems. </p>
<p>Unfortunately there didn&#8217;t seem to be a lot of information out there on Promise&#8217;s SNMP MIBs so with a bit of playing about, I was able to dig out the ones I needed. The Nagios plug-in I wrote and am making available here will monitor the shelf via SNMP and alert on the following chassis issues:</p>
<ul>
<li> critical if any of the shelf&#8217;s disk states changes from &#8220;OK&#8221;;
<li>
<li> warning if the battery state changes from &#8220;FullyCharged&#8221;; </li>
<li> critical if either of the PSU states change from &#8220;Powered On and Functional&#8221;; </li>
<li> critical is any of the cooling devices (fans) change from &#8220;Functional&#8221;; </li>
<li> critical if any of the temperature sensors&#8217; states change from &#8220;normal&#8221;; </li>
<li> critical if any of the drives go offline or are missing; and </li>
<li> warning if any of the drives go into the rebuilding state or have their PFA flag set. </li>
</ul>
<p>While this is specifically designed for a single M200i, it should be easily customisable for other models.</p>
<p>It can be downloaded from <a href="http://www.opensolutions.ie/misc/check_promise_chassis.pl">here</a> (<a href="http://www.opensolutions.ie/">http://www.opensolutions.ie/</a>). It will also appear on the <a href="http://www.barryodonovan.com/index.php/development/">development</a> section of this site and <a href="http://www.nagiosexchange.org/RAID_Controller.58.0.html?&#038;tx_netnagext_pi1[p_view]=1000&#038;tx_netnagext_pi1[page]=10%3A10">Nagios Plugins</a>.</p>
<h4>OIDs Used</h4>
<p></p>
<dl>
<dt><strong><tt>1.3.6.1.4.1.7933.1.10.2.1.1.1.8</tt></strong></dt>
<dd>The table of physical disk statuses.</dd>
<dt><strong><tt>.1.3.6.1.4.1.7933.2.1.7.1.1.14.1.1</tt></strong></dt>
<dd>The battery status.</dd>
<dt><strong><tt>.1.3.6.1.4.1.7933.2.1.4.1.1.2.1</tt></strong></dt>
<dd>The table of Power Supply Unit statuses.</dd>
<dt><strong><tt>.1.3.6.1.4.1.7933.2.1.3.1.1.3.1</tt></strong></dt>
<dd>The table of cooling device/fan statuses.</dd>
<dt><strong><tt>.1.3.6.1.4.1.7933.2.1.5.1.1.3</tt></strong></dt>
<dd>The table of temperature sensor statuses.</dd>
<dt><strong><tt>.1.3.6.1.4.1.7933.1.10.1.2.1.1.22.1</tt></strong></dt>
<dd>The number of drives that are offline.</dd>
<dt><strong><tt>.1.3.6.1.4.1.7933.1.10.1.2.1.1.23.1</tt></strong></dt>
<dd>The number of drives in the PFA status set.</dd>
<dt><strong><tt>.1.3.6.1.4.1.7933.1.10.1.2.1.1.24.1</tt></strong></dt>
<dd>The number of drives in rebuild status.</dd>
<dt><strong><tt>.1.3.6.1.4.1.7933.1.10.1.2.1.1.25.1</tt></strong></dt>
<dd>The number of drives that are missing.</dd>
</dl>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.barryodonovan.com/index.php/2007/06/06/nagios-promise-vtrak/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Putting /etc Under Subversion (SVN)</title>
		<link>http://www.barryodonovan.com/index.php/2007/04/25/putting-etc-under-subversion-svn</link>
		<comments>http://www.barryodonovan.com/index.php/2007/04/25/putting-etc-under-subversion-svn#comments</comments>
		<pubDate>Wed, 25 Apr 2007 10:28:11 +0000</pubDate>
		<dc:creator>Barry O'Donovan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.barryodonovan.com/index.php/2007/04/25/putting-etc-under-subversion-svn/</guid>
		<description><![CDATA[A Google for the above took some work to locate the exact recipe I wanted for this. The problem is that one really needs to do an &#8216;in-place&#8217; import. The solution was from Subversion&#8216;s own FAQs (specifically this) which is reproduced here with some changes: # svn mkdir svn+ssh://user@host/srv/svn-repository/hosts/host1/etc \ -m "Make a directory in [...]]]></description>
			<content:encoded><![CDATA[<p>A Google for the above took some work to locate the exact recipe I wanted for this. The problem is that one really needs to do an &#8216;in-place&#8217; import. The solution was from <a href="http://subversion.tigris.org/">Subversion</a>&#8216;s own <a href="http://subversion.tigris.org/faq.html">FAQs</a> (<a href="http://subversion.tigris.org/faq.html#in-place-import">specifically this</a>) which is reproduced here with some changes:</p>
<pre>
# svn mkdir svn+ssh://user@host/srv/svn-repository/hosts/host1/etc \
         -m "Make a directory in the repository to correspond to /etc for this host"
# cd /etc
# svn checkout svn+ssh://user@host/srv/svn-repository/hosts/host1/etc .
# svn add *
# svn commit -m "Initial version of this host's config files"
</pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.barryodonovan.com/index.php/2007/04/25/putting-etc-under-subversion-svn/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>IPMI Sensor Data on Dell 1850s and 2850s via SNMP and Cacti</title>
		<link>http://www.barryodonovan.com/index.php/2007/04/11/dell-ipmi</link>
		<comments>http://www.barryodonovan.com/index.php/2007/04/11/dell-ipmi#comments</comments>
		<pubDate>Wed, 11 Apr 2007 09:10:59 +0000</pubDate>
		<dc:creator>Barry O'Donovan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.barryodonovan.com/index.php/2007/04/11/dell-ipmi/</guid>
		<description><![CDATA[I use Cacti to monitor a lot of Dell servers, primarily 1850s and 2850s but also the newer models of same (1950s and 2950s). One itch that I&#8217;ve meant to scratch for a while is graphing some of the information available through the servers&#8217; IPMI interface; specifically the servers&#8217; various temperatures and and fan speeds. [...]]]></description>
			<content:encoded><![CDATA[<p>I use Cacti to monitor a lot of Dell servers, primarily 1850s and 2850s but also the newer models of same (1950s and 2950s). One itch that I&#8217;ve meant to scratch for a while is graphing some of the information available through the servers&#8217; IPMI interface; specifically the servers&#8217; various temperatures and and fan speeds.</p>
<h4>IPMI Details</h4>
<p>There are <a href="http://bmcsensors-26.sourceforge.net/" title="IPMI sensors for Linux 2.6">patches</a> available for the Linux kernel to allow the IPMI information to be read via the <a href="http://www.lm-sensors.org/">lm_sensors project</a> but I chose to avoid this (at least for now) as I&#8217;d have to schedule downtime to reboot the servers for a new kernel. It&#8217;d also ruin their uptime &#8211; most of the servers (serving many thousands of users daily) have almost two years of uptime. (The kernels are monolithic.) </p>
<p>Instead, I went with the already compiled in Linux IPMI Driver (see kernel source: Documentation/IPMI.txt) which is available in the &#8216;Character Devices&#8217; menu. I specifically needed the following options for the Dells:</p>
<ul>
<li> <code>drivers/char/ipmi/ipmi_msghandler</code></li>
<li> <code>drivers/char/ipmi/ipmi_devintf</code></li>
<li> <code>drivers/char/ipmi/ipmi_si</code></li>
</ul>
<p>In order to read information from the IPMI, you need the <code>ipmitool</code> utility which is available on most recent Linux distributions or from <a href="http://ipmitool.sourceforge.net/">here</a>.</p>
<p>Lastly, I needed to create a character special file to interface with the IPMI:</p>
<pre>
mknod /dev/ipmi0 c 254 0
</pre>
<p>The sensor information was then available via:</p>
<pre>
# ipmitool sensor
Temp             | 30.000     | degrees C  | ok    | na        | na        | na        | 85.000    | 90.000    | na
Temp             | 34.000     | degrees C  | ok    | na        | na        | na        | 85.000    | 90.000    | na
Ambient Temp     | 16.000     | degrees C  | ok    | na        | 3.000     | 8.000     | 42.000    | 47.000    | na
...
</pre>
<p></p>
<h4>Making IPMI Sensor Information Available via SNMP</h4>
<p>I make the IPMI sensor information available over SNMP by adding the following to the <code>snmpd.conf</code> file:</p>
<pre>
# Monitor IPMI Temperature and Fan stats
exec    .1.3.6.1.4.1.X.1000 ipmitemp        /usr/local/sbin/ipmi-temp-stats
exec    .1.3.6.1.4.1.X.1001 ipmifan         /usr/local/sbin/ipmi-fan-stats
</pre>
<p><em>(Replace X above as appropriate.)</em></p>
<p>The scripts referenced are: <code>/usr/local/sbin/ipmi-temp-stats</code>:</p>
<pre>
#! /bin/sh

PATH=/usr/bin:/bin
STATS=/tmp/ipmisensor-snmp

printf "%f\n" `cat $STATS | grep Temp | cut -s -d "|" -f 2`
</pre>
<p>And <code>/usr/local/sbin/ipmi-fan-stats</code>:</p>
<pre>
#! /bin/sh

PATH=/usr/bin:/bin
STATS=/tmp/ipmisensor-snmp

printf "%f\n" `cat $STATS | grep FAN | cut -s -d "|" -f 2`
</pre>
<p>The file they reference is generated every 5mins (Cacti polling interval) via a cron entry in the file <code>/etc/cron.d/ipmitool</code>:</p>
<pre>
*/5 * * * * root /usr/bin/ipmitool sensor >/tmp/ipmisensor-snmp
</pre>
<p>After restarting SNMP and allowing the cron job to execute at least once, you can test the results via:</p>
<pre>
# snmpwalk -c &lt;community&gt; -v &lt;version&gt; &lt;ip/hostname&gt; .1.3.6.1.4.1.X.1000
SNMPv2-SMI::enterprises.X.1000.1.1 = INTEGER: 1
SNMPv2-SMI::enterprises.X.1000.2.1 = STRING: "ipmitemp"
SNMPv2-SMI::enterprises.X.1000.3.1 = STRING: "/usr/local/sbin/ipmi-temp-stats"
SNMPv2-SMI::enterprises.X.1000.100.1 = INTEGER: 0
SNMPv2-SMI::enterprises.X.1000.101.1 = STRING: "37.000000"
SNMPv2-SMI::enterprises.X.1000.101.2 = STRING: "39.000000"
SNMPv2-SMI::enterprises.X.1000.101.3 = STRING: "23.000000"
SNMPv2-SMI::enterprises.X.1000.101.4 = STRING: "36.000000"
...
SNMPv2-SMI::enterprises.X.1000.102.1 = INTEGER: 0
SNMPv2-SMI::enterprises.X.1000.103.1 = ""
</pre>
<p></p>
<h4>Graphing This Information in Cacti</h4>
<p>Finally, I graph this information on <a href="http://cacti.net/">Cacti</a> (see end of post for examples). </p>
<p>I am making six templates available here which can be imported into Cacti (these were generated using version 0.8.6j) for graphing the above:</p>
<ol>
<li> Cacti graph template for <a href="http://www.opensolutions.ie/misc/cacti_graph_template_ipmi_temperatures_cel_dell_1850.xml">Dell 1850 temperatures</a> (see first image below); </li>
<li> Cacti graph template for <a href="http://www.opensolutions.ie/misc/cacti_graph_template_ipmi_temperatures_cel_dell_2850.xml">Dell 2850 temperatures</a> (see second image below); </li>
<li> Cacti graph template for <a href="http://www.opensolutions.ie/misc/cacti_graph_template_ipmi_fan_speeds_dell_1850.xml">Dell 1850 fan speeds</a> (see third image below); </li>
<li> Cacti graph template for <a href="http://www.opensolutions.ie/misc/cacti_graph_template_ipmi_fan_speeds_dell_2850.xml">Dell 2850 fan speeds</a> (see fourth image below); </li>
<li value="5"> Cacti host template for <a href="http://www.opensolutions.ie/misc/cacti_host_template_dell_1850.xml">Dell 1850</a>; and </li>
<li> Cacti host template for <a href="http://www.opensolutions.ie/misc/cacti_host_template_dell_2850.xml">Dell 2850</a>. </li>
</ol>
<p>The last two templates available are host templates for Dell 1850s and 2850s (I&#8217;m sure they&#8217;ll work fine with 1950s and 2950s also). These templates include:</p>
<ul>
<li> Host MIB &#8211; Logged in Users; </li>
<li> Host MIB &#8211; Processes; </li>
<li> IPMI Fan Speeds (Dell x850) (from above);</li>
<li> IPMI Temperatures (Cel) (Dell x850) (from above);</li>
<li> ucd/net &#8211; CPU Usage; </li>
<li> ucd/net &#8211; Load Average; </li>
<li> ucd/net &#8211; Memory Usage; </li>
<li> SNMP &#8211; Get Mounted Partitions (data query); and</li>
<li> SNMP &#8211; Interface Statistics (data query). </li>
</ul>
<p>
Example graphs are shown below; they&#8217;re not the cleanest given the amount of information they contain but they serve my purposes.</p>
<p>
<img src="http://www.opensolutions.ie/misc/Dell-1850-Temps.png" width="580" height="321" alt="[Dell 1850 Temps]" /><br />
<br />
<img src="http://www.opensolutions.ie/misc/Dell-2850-Temps.png" width="580" height="426" alt="[Dell 2850 Temps]" /><br />
<br />
<img src="http://www.opensolutions.ie/misc/Dell-1850-FanSpeeds.png" width="580" height="261" alt="[Dell 1850 Fan Speeds]" /><br />
<br />
<img src="http://www.opensolutions.ie/misc/Dell-2850-FanSpeeds.png" width="580" height="291" alt="[Dell 2850 Fan Speeds]" /><br />
</p>
<p>&copy; 2007 Barry O&#8217;Donovan. All text is licensed under a <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 License</a>. All scripts and Cacti templates are licensed under the <a href="/index.php/development/the-mit-license/">MIT License</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.barryodonovan.com/index.php/2007/04/11/dell-ipmi/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>GCC Optimisations per CPU</title>
		<link>http://www.barryodonovan.com/index.php/2007/04/10/optimum-gcc-flags</link>
		<comments>http://www.barryodonovan.com/index.php/2007/04/10/optimum-gcc-flags#comments</comments>
		<pubDate>Tue, 10 Apr 2007 15:04:33 +0000</pubDate>
		<dc:creator>Barry O'Donovan</dc:creator>
				<category><![CDATA[My Links]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.barryodonovan.com/index.php/2007/04/10/optimum-gcc-flags/</guid>
		<description><![CDATA[Pádraig Brady wrote a very useful script for getting the optimum gcc options for your CPU which I keep coming back to (and forgetting where to find it). The last version can be found at http://www.pixelbeat.org/scripts/gcccpuopt along with a lot of other useful scripts and scripting examples here.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pixelbeat.org/">Pádraig Brady</a> wrote a very useful script for getting the optimum gcc options for your CPU which I keep coming back to (and forgetting where to find it).</p>
<p>The last version can be found at <a href="http://www.pixelbeat.org/scripts/gcccpuopt">http://www.pixelbeat.org/scripts/gcccpuopt</a> along with a lot of other useful scripts and scripting examples <a href="http://www.pixelbeat.org/scripts/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.barryodonovan.com/index.php/2007/04/10/optimum-gcc-flags/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VoIP Client Twinkles Brightly on Linux</title>
		<link>http://www.barryodonovan.com/index.php/2005/05/27/voip-client-twinkles-brightly-on-linux</link>
		<comments>http://www.barryodonovan.com/index.php/2005/05/27/voip-client-twinkles-brightly-on-linux#comments</comments>
		<pubDate>Fri, 27 May 2005 19:43:35 +0000</pubDate>
		<dc:creator>Barry O'Donovan</dc:creator>
				<category><![CDATA[OSS]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.barryodonovan.com/index.php/2005/05/27/voip-client-twinkles-brightly-on-linux/</guid>
		<description><![CDATA[A question came up today on ILUG regarding Skype on Linux which then spill-ed over onto a conversation about VoIP clients. KPhone was mentioned which is what I have been using to date with my Blueface VoIP account. Unfortunately I can&#8217;t give KPhone a good review as I have always found it buggy, unintuitive and [...]]]></description>
			<content:encoded><![CDATA[<p>A question came up today on <a href="http://www.linux.ie/">ILUG</a> regarding <a href="http://www.skype.com/">Skype</a> on Linux which then spill-ed over onto a conversation about VoIP clients. <a href="">KPhone</a> was mentioned which is what I have been using to date with my <a href="http://www.blueface.ie">Blueface</a> VoIP account. Unfortunately I can&#8217;t give KPhone a good review as I have always found it buggy, unintuitive and it crashes regularly.</p>
<p>The conversation reminded me of a news bite I read on <a href="http://dot.kde.org/">KDE.news</a> about new Linux VoIP clients that are gaining momentum. One in particular looked very promising: <a href="http://www.twinklephone.com/">Twinkle</a>. The first version of <a href="http://www.twinklephone.com/">Twinkle</a>, 0.1, was only released last month but it&#8217;s already a formidable application when compared with KPhone.</p>
<p>Although <a href="http://www.twinklephone.com/">Twinkle</a>uses the cross platform application development framework known as <a href="http://www.trolltech.com/products/qt/">Qt</a> (which is also the foundation of <a href="http://www.kde.org/">KDE</a>), it is only compatible with Linux&#8217;s audio system. Some of the features already completed include two lines, three-way conference calls, call redirection, DTMF sopport and the G.771 and GSM audio codecs.</p>
<p>Some obvious features that are currently missing but that the author plans to add include an address book, a history function to log incoming and outgoing calls, instant messaging and video support. So far I&#8217;m very impressed and I have already replaced KPhone with <a href="http://www.twinklephone.com/">Twinkle</a>.</p>
<p>The only negative comment I have to make, and it&#8217;s not really a reflection on <a href="http://www.twinklephone.com/">Twinkle</a>, is that although the author decided to use Qt it is really a shame he didn&#8217;t go the extra step and use the KDE application framework so that it would better integrate with that desktop environment and the other KDE PIM and networking applications. No doubt Michel de Boer, the author, has his reasons &#8211; perhaps he plans to extend <a href="http://www.twinklephone.com/">Twinkle</a>&#8216;s compatibility to other operating systems.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.barryodonovan.com/index.php/2005/05/27/voip-client-twinkles-brightly-on-linux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Timing Work Periods with KDialog, DCOP and KAlarm</title>
		<link>http://www.barryodonovan.com/index.php/2005/05/24/timing-work-periods-with-kdialog-dcop-and-kalarm</link>
		<comments>http://www.barryodonovan.com/index.php/2005/05/24/timing-work-periods-with-kdialog-dcop-and-kalarm#comments</comments>
		<pubDate>Tue, 24 May 2005 20:07:37 +0000</pubDate>
		<dc:creator>Barry O'Donovan</dc:creator>
				<category><![CDATA[OSS]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.barryodonovan.com/index.php/2005/05/24/timing-work-periods-with-kdialog-dcop-and-kalarm/</guid>
		<description><![CDATA[Mikolaj Machowski posted an nice example of using KDialog with DCOP to the KDE Developers mailing list a while back: #!/bin/bash PROGRESS=$(kdialog --icon kalarm --title "Short rest" \ &#160;&#160;&#160;&#160;--progressbar "Take a break..." 30) if [ $PROGRESS ]; then &#160;&#160;for (( i=0; i]]></description>
			<content:encoded><![CDATA[<p>Mikolaj Machowski posted an nice example of using KDialog with DCOP to the <a href="http://mail.kde.org/mailman/listinfo/kde-devel">KDE Developers</a> mailing list a while back:</p>
<p><code><br />
#!/bin/bash</p>
<p>PROGRESS=$(kdialog --icon kalarm --title  "Short rest" \<br />
&nbsp;&nbsp;&nbsp;&nbsp;--progressbar  "Take a break..."  30)</p>
<p>if [  $PROGRESS  ]; then<br />
&nbsp;&nbsp;for (( i=0; i<30; i++ )); do<br />
&nbsp;&nbsp;&nbsp;&nbsp;dcop $PROGRESS setProgress $i<br />
&nbsp;&nbsp;&nbsp;&nbsp;sleep 1<br />
&nbsp;&nbsp;done<br />
&nbsp;&nbsp;dcop $PROGRESS close<br />
fi<br />
</code></p>
<p>The purpose of Mikolaj's post was to suggest a method of regimenting work periods - e.g. 20 minutes on, 5 minutes off - using the above script and <a href="http://pim.kde.org/components/kalarm.php">KAlarm</a>, a personal alarm message, command and email scheduler. But, more than that, it shows off one of the many hiddens treasures of KDE: KDialog, which allows shell scripts to take advantage of some of the KDE widget set, and DCOP, KDE's Desktop COmmunications Protocol.</p>
<p>More information and a tutorial can be found at:</p>
<p>http://developer.kde.org/documentation/tutorials/kdialog/t1.html</p>
]]></content:encoded>
			<wfw:commentRss>http://www.barryodonovan.com/index.php/2005/05/24/timing-work-periods-with-kdialog-dcop-and-kalarm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Software Patents &#8211; Kathy Sinnott Will Oppose</title>
		<link>http://www.barryodonovan.com/index.php/2005/05/24/software-patents-kathy-sinnott-will-oppose</link>
		<comments>http://www.barryodonovan.com/index.php/2005/05/24/software-patents-kathy-sinnott-will-oppose#comments</comments>
		<pubDate>Tue, 24 May 2005 19:02:12 +0000</pubDate>
		<dc:creator>Barry O'Donovan</dc:creator>
				<category><![CDATA[Politics]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://blog.barryodonovan.com/index.php/2005/05/24/software-patents-kathy-sinnott-will-oppose/</guid>
		<description><![CDATA[I got CC&#8217;d a reply to an e-mail from Ms Kathy Sinnott MEP today which asserts her strong opposition to EU Directive COD/2002/0047 which includes the issue of software patentability. Even in one small paragraph she shows a good understanding of the issue and I am delighted that such a hard working and articulate MEP [...]]]></description>
			<content:encoded><![CDATA[<p>I got CC&#8217;d a reply to an e-mail from Ms Kathy Sinnott MEP today which asserts her strong opposition to EU Directive COD/2002/0047 which includes the issue of software patentability. Even in one small paragraph she shows a good understanding of the issue and I am delighted that such a hard working and articulate MEP is on board.</p>
<p>In her own words:</p>
<blockquote><p>
I am most certainly not [undecided on this issue]. In response to your concerns about software patentability, I would like to reassure you that I am wholeheartedly opposed to this legislation. It will stifle innovation and prevent SME&#8217;s and individuals from having the chance to compete equally with the Microsoft&#8217;s of this world. You may rest assured that we will be fighting this directive (again).
</p></blockquote>
<p>As it currently stands, we now have eight of our sixteen (inc. Northern Ireland) MEPs committed to opposing<sup>*</sup> software patentability with five yet to inform us of their position and three taking the matter under consideration. Optimistically, the final count could be as good as twelve or thirteen opposing this.</p>
<p>The next big task will be to ensure that all those opposing software patentability will actually turn up in parliament as an <strong>absolute majority</strong> will be required to defeat or amend the directive; this essentially means that any MEP who does not show up in parliament to vote will be effectively casting their vote in favour of the directive. What a wonderful democracy we have.</p>
<p>More information on the Irish campaign can be found at <a href="http://www.kde.ie/patents/">KDE.ie</a> and at the <a href="http://www.ifso.ie/projects/swpats.html">Irish Free Software Organisation</a>. The current status of the sixteen Irish MEPs is also available at <a href="http://www.kde.ie/patents/mep-status.php">KDE.ie</a> and with more detail <a href="http://www.ifso.ie/cgi-bin/wiki.cgi/SwpatMepPositions">here</a>.</p>
<p><sup>*</sup> by oppose I refer to an MEP being against the patentability of software ideas and business methods; this does not reflect whether an MEP is against the directive itself or would prefer to see it amended.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.barryodonovan.com/index.php/2005/05/24/software-patents-kathy-sinnott-will-oppose/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
