<?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>logIt &#187; monitoring</title>
	<atom:link href="https://lakm.us/logit/tag/monitoring/feed/" rel="self" type="application/rss+xml" />
	<link>https://lakm.us/logit</link>
	<description>Log Around The Clock</description>
	<lastBuildDate>Sat, 06 Jun 2015 14:17:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Nebri Automation for Weather Feed to Twitter</title>
		<link>https://lakm.us/logit/2015/06/nebri-automation-weather-feed-twitter/</link>
		<comments>https://lakm.us/logit/2015/06/nebri-automation-weather-feed-twitter/#comments</comments>
		<pubDate>Tue, 02 Jun 2015 14:13:39 +0000</pubDate>
		<dc:creator>Arif</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[job automation]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[socialmedia]]></category>
		<category><![CDATA[wearable]]></category>

		<guid isPermaLink="false">http://lakm.us/logit/?p=842</guid>
		<description><![CDATA[The season was intermittently rainy or dry as I began to take interest in weather. After getting stuck with “If-this-than-that” (IFTTT) for multiple location feeds of weather, I found out that I wasn&#8217;t alone, a geek hit the same wall, yet bringing another automation forgery: Nebri OS, an event-driven development platform based-on writing rules in [...]]]></description>
				<content:encoded><![CDATA[<p>The season was intermittently rainy or dry as I began to take interest in weather. After getting stuck with <a href="https://ifttt.com/" title="IFTTT" target="_blank">“If-this-than-that” (IFTTT)</a> for multiple location feeds of weather, I found out that I wasn&#8217;t alone, a geek hit the same wall, yet bringing another automation forgery: <a href="https://nebrios.com/" title="Nebri: Event-driven development platform" target="_blank">Nebri OS</a>, an event-driven development platform based-on writing rules in <a href="https://www.python.org/" title="Python" target="_blank">Python</a>. Without despise, eventually I still use IFTTT on the other end to send weather alert to my smartwatch <a href="../../../2015/01/commuter-train-trouble-alert-delivered-watch-ifttt/" title="Get Commuter Train Trouble Alert Delivered to Watch by IFTTT" target="_blank">again</a>.</p>
<p>A quick adaptation of <a href="https://nebrios.com/blog/weather-alerts-in-multiple-locations" title="Weather Alerts In Multiple Locations" target="_blank">Nebri&#8217;s straightforward blog post</a> is to first shortlist rain related codes into <a href="https://github.com/bandono/nebri/blob/master/tweet_rain/README.md" title="README.md" target="_blank">15 of them</a> and changing from forecast to latest measurement instead. Bridging Nebri and <a href="http://www.cookoo2.com/" title="COOKOO 2" target="_blank">my smartwatch</a> are <a href="https://twitter.com/" title="Twitter" target="_blank">Twitter</a> and <a href="https://ifttt.com/recipes/296352-bogor-jakarta-rain-weather-alert" title="Bogor-Jakarta rain weather alert " target="_blank">IFTTT recipe</a>–the watch merely mirrored my phone, you don&#8217;t need it actually. Why (again) Twitter? Well, rather than the &#8220;then that&#8221; side–the watch enabler, the &#8220;if this&#8221; side of IFTTT for Twitter recipes is quite powerful given so many tweet filtering options.</p>
<p><div class="wp-caption aligncenter" style="width: 460px"><img alt="Nebri OS workflow from YWeather to Twitter" src="../../../../images/nebrios-event-driven-workflow-illustration.png" title="Nebri OS workflow from YWeather to Twitter" width="320" height="262" /><p class="wp-caption-text">Key-value pairs as trigger for event driven Nebri OS workflow</p></div><br />
<span id="more-842"></span><br />
The workflow starts with Drips, a scheduler (<code>cron</code>) where key value-pairs (KVP) is created at certain time. A rule script (<code>yweather</code>) is triggered when this KVP is created. The weather results are sets of later KVPs feeding the <code>twitter</code> rule script where our simple Nebri workflow ends. This is how I get multiple cities, by using different Drips, different events, running the same workflow. Both <code>yweather</code> and <code>twitter</code> scripts are also example of API connectivity to Nebri.</p>
<p>Many things already taken care by Nebri, hence unseasoned programmer should easily cope with writing simple Python rule and focus on the automation, nevertheless complex rule should also be accommodated. I was having trouble on using previous KVP from different PID though–moved them to comment in the script, but they seem to be <a href="https://nebrios.com/blog/releases-2689" title="Releases 2689" target="_blank">working on it</a>. Check their <a href="https://nebrios.com/blog/weather-alerts-in-multiple-locations" title="Weather Alerts In Multiple Locations" target="_blank">YWeather blog post</a> on how the basics work and compare <a href="https://github.com/bandono/nebri/tree/master/tweet_rain" title="Nebri: tweet rain Github" target="_blank">what I did in Github</a>. I embed an example tweet from <a href="https://twitter.com/twithujan" title="@twithujan" target="_blank">@twithujan</a> below. <a href="https://weather.yahoo.com/" title="Yahoo! Weather" target="_blank">Yahoo! Weather</a> frequency of measurement and accuracy are of different topic by the way.</p>
<blockquote class="twitter-tweet" lang="en"><p lang="en" dir="ltr">Bogor is Light Rain with temperature at 23 °C. Taken at Thu, 28 May 2015 7:00 pm WIT</p>
<p>&mdash; Twit Hujan (@twithujan) <a href="https://twitter.com/twithujan/status/603908598314434560">May 28, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
<p>PS: &#8220;<em>hujan</em>&#8221; means &#8220;rain&#8221; in Indonesian</p>
]]></content:encoded>
			<wfw:commentRss>https://lakm.us/logit/2015/06/nebri-automation-weather-feed-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Commuter Train Trouble Alert Delivered to Watch by IFTTT</title>
		<link>https://lakm.us/logit/2015/01/commuter-train-trouble-alert-delivered-watch-ifttt/</link>
		<comments>https://lakm.us/logit/2015/01/commuter-train-trouble-alert-delivered-watch-ifttt/#comments</comments>
		<pubDate>Sat, 17 Jan 2015 14:31:02 +0000</pubDate>
		<dc:creator>Arif</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[job automation]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[socialmedia]]></category>
		<category><![CDATA[wearable]]></category>
		<category><![CDATA[web-based]]></category>

		<guid isPermaLink="false">http://lakm.us/logit/?p=803</guid>
		<description><![CDATA[Imagine getting alerts of Commuter Line train service disruption right on your wrist! Well, the watch thing isn&#8217;t a must as any SMS-enabled phone will do. But without the watch, I won&#8217;t be introduced to &#8220;If-this-than-that&#8221; (IFTTT), a simple logic line that glues popular apps into trigger and action branded as recipes. Anyone can code [...]]]></description>
				<content:encoded><![CDATA[<p>Imagine getting alerts of Commuter Line train service disruption right on your wrist! Well, the watch thing isn&#8217;t a must as any SMS-enabled phone will do. But without the watch, I won&#8217;t be introduced to <a href="http://techcrunch.com/2014/08/28/ifttt-lands-30-million-series-b-from-norwest-venture-partners-a16z/" title="IFTTT Lands $30 Million Series B From Norwest Venture Partners, A16Z" target="_blank">&#8220;If-this-than-that&#8221;</a> (IFTTT), a simple logic line that glues popular apps into trigger and action branded as <a href="https://ifttt.com/recipes" title="IFTTT - Browse Recipes" target="_blank">recipes</a>. Anyone can code that line, a no-coding logic that cooks: <a href="https://ifttt.com/recipes/184610-natgeo-instagrams-wallpaper" title="IFTTT - NatGeo Instagrams - Wallpaper" target="_blank">sync wallpaper with Nat Geo&#8217; instagram</a>, <a href="https://ifttt.com/recipes/168783-so-mom-doesn-t-call-too-many-times" title="IFTTT - So mom doesn't call too many times" target="_blank">volume goes up when Mom calls</a>, <a href="https://ifttt.com/recipes/165588-change-the-color-of-the-lights-when-the-space-station-flies-over-a-specific-location" title="IFTTT - Change the color of the lights when the Space Station flies over a specific location" target="_blank">change bulb light color after some space station moves</a>, etc. As personal recipe, bring <a href="https://www.kickstarter.com/projects/cuckoo/cookootm-the-watch-for-the-connected-generation" title="KickStarter - cookoo™ - the watch for the connected generation" target="_blank">COOKOO connected watch</a> to the table and I&#8217;ve leveraged public service disruption–no matter how ironic–into edgy personal business.</p>
<div class="wp-caption aligncenter" style="width: 460px"><img alt="" src="../../../../images/ifttt-commuter-line-trouble-notifications.png" title="If this than that recipes alert for Commuter Train trouble" width="450" height="211" /><p class="wp-caption-text">If this than that recipes alert for Commuter Train trouble</p></div>
<p>The ingredient is tweet, <a href="https://twitter.com/search" title="Twitter Search" target="_blank">Twitter Search</a> use case is no longer just sentiment analysis, its function extends to alert, even close to real time–I&#8217;m pretty optimistic given the number of Commuter Line users joining the conversation. Now, the no-code part of our recipe, a <a href="https://twitter.com/search?f=realtime&#038;q=%28to%3Akrlmania%20OR%20%40krlmania%20OR%20from%3ACommuterLine%29%20AND%20%28gangguan%20OR%20pantograf%20OR%20wesel%20OR%20patah%29%20-semoga%20-smoga%20-moga&#038;src=typd" title="Twitter Search - Commuter Line Trouble" target="_blank">Twitter search query</a>, that is</p>
<p><span id="more-803"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#40;</span>to:krlmania OR <span style="color: #000000; font-weight: bold;">@</span>krlmania OR from:CommuterLine<span style="color: #7a0874; font-weight: bold;">&#41;</span>
AND <span style="color: #7a0874; font-weight: bold;">&#40;</span>gangguan OR pantograf OR wesel OR patah<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #660033;">-semoga</span> <span style="color: #660033;">-smoga</span> <span style="color: #660033;">-moga</span></pre></div></div>

<p>and a brief explanation is that it queries for some keywords for potential trouble within mentions/replies to <a href="http://twitter.com/krlmania" title="@krlmania" target="_blank">@krlmania</a> and official announcements of <a href="http://twitter.com/CommuterLine" title="@CommuterLine" target="_blank">@CommuterLine</a>. Exclusion added to the search, the sentiment part of tweets, expressing wishes to shoo trouble away–I&#8217;m sorry, but keep praying online anyway.</p>
<p>When Twitter launched Twitter Stories in 2011, I read <a href="https://stories.twitter.com/en/ravi_pina.html" title="RAVI PINA shares train information through crowd sourcing and Twitter" target="_blank">about Ravi Pina</a> running the crowd sourced <a href="http://twitter.com/Caltrain" title="@Caltrain" target="_blank">@Caltrain</a>. Later now I see that official accounts like <a href="https://twitter.com/smrt_singapore" title="@SMRT_singapore" target="_blank">@SMRT_Singapore</a> is also a model of service disruption info center. We can go deeper to better stats from the API web service that shows real time position (<a href="https://play.google.com/store/apps/details?id=com.raia.infokrl&#038;hl=en" title="Google Play - Info KRL" target="_blank">an app is out there</a> showing that the location data API is working), but until its <a href="http://en.wikipedia.org/wiki/Open_data" title="Wikipedia - Open Data" target="_blank">open data</a> status is known, crowd sourcing stays as the most reliable solution, independent to regulation, and easiest to implement. Does the recipe work? During the first week of testing, alerts were flooding–within limit of course–as trouble really happened. So, cook your own ingredients or get my recipes served <a href="https://ifttt.com/p/bandono/shared" title="IFTTT - bandono" target="_blank">here</a>. </p>
<div class="wp-caption aligncenter" style="width: 460px"><iframe class="vine-embed" src="https://vine.co/v/OpU6LTOADvi/embed/simple" width="320" height="320" frameborder="0"></iframe><script async src="//platform.vine.co/static/scripts/embed.js" charset="utf-8"></script><p class="wp-caption-text">Train trouble alert on my watch</p></div>
]]></content:encoded>
			<wfw:commentRss>https://lakm.us/logit/2015/01/commuter-train-trouble-alert-delivered-watch-ifttt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SNMP: Mistake of Using Tabular OID in Practice</title>
		<link>https://lakm.us/logit/2012/03/snmp-mistake-tabular-oid-practice/</link>
		<comments>https://lakm.us/logit/2012/03/snmp-mistake-tabular-oid-practice/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 07:57:58 +0000</pubDate>
		<dc:creator>Arif</dc:creator>
				<category><![CDATA[General Linux]]></category>
		<category><![CDATA[appliance]]></category>
		<category><![CDATA[MIB]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[proprietary]]></category>
		<category><![CDATA[snmp]]></category>

		<guid isPermaLink="false">http://lakm.us/logit/?p=372</guid>
		<description><![CDATA[Recently, I retrieve rectifier-related SNMP data from Eltek&#8217;s Smartpack Controller. This one has the following rear type where we can connect to the ethernet plug (see the purple area). It is presumably in its default configuration and I can snmpwalk through its corporate specific OIDs (under 12148 tree) to find i.e. output voltage, current, battery [...]]]></description>
				<content:encoded><![CDATA[<p>Recently, I retrieve rectifier-related SNMP data from <a href="http://www.eltek.com/wip4/detail_products.epl?k1=25507&#038;close=1&#038;id=1123846" title="Eltek Smartpack Controller" target="_blank">Eltek&#8217;s Smartpack Controller</a>. This one has the following rear type where we can connect to the ethernet plug (see the purple area).</p>
<div class="wp-caption aligncenter" style="width: 460px"><img alt="Eltek Smartpack Controller type with SNMP Support" src="../../../../images/eltek-smartpack-rear-1.jpg" title="Eltek Smartpack Controller type with SNMP Support" width="266" height="103" /><p class="wp-caption-text">Eltek Smartpack Controller rear view (type that comes with SNMP support)</p></div>
<p>It is presumably in its default configuration and I can <code>snmpwalk</code> through its corporate specific OIDs (under 12148 tree) to find i.e. output voltage, current, battery temperature, etc. Doing it without translating against the MIB will retrieve all the values perfectly fine. However, I want to show you a mistake in practice related to how the MIB is written and put to place, which is a version 4 by the name of <a href="http://forums.manageengine.com/viewFile.do?fileId=49000003919231&#038;forumGroupId=49000000002007" title="Manage Engine Forum: ELTEK-DISTRIBUTED-PLANTV4-MIB">ELTEK-DISTRIBUTED-PLANTV4-MIB</a>. It has tabular part as clipped in the following tree (see <a href="./2011/09/write-mib-file-tabular/" title="Write Your Own MIB File (Tabular)" target="_blank">previous post</a> on how to write such part in your own MIB):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">            <span style="color: #000000; font-weight: bold;">|</span>     +--eltek<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">12148</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
            <span style="color: #000000; font-weight: bold;">|</span>        <span style="color: #000000; font-weight: bold;">|</span>
            <span style="color: #000000; font-weight: bold;">|</span>        +--eltekDistributedPlantV4<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">9</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
...
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>     <span style="color: #000000; font-weight: bold;">|</span>
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>     +--rectifierStatusTable<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>        <span style="color: #000000; font-weight: bold;">|</span>
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>        +--rectifierStatusEntry<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>  Index: rectifierStatusID
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>           +-- <span style="color: #660033;">-R--</span> Integer32 rectifierStatusID<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>        Range: 1..100
...
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>           +-- <span style="color: #660033;">-R--</span> Integer32 rectifierStatusOutputVoltage<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">4</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
            <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>           <span style="color: #000000; font-weight: bold;">|</span>        Range: 0..65535</pre></div></div>

<p>Looking at the above <code>rectifierStatusEntry</code> branch, it marks a tabular entry expected to range from 1 to 100 as defined by <code>rectifierStatusID</code>. Hence, putting 0 as one of the output voltage index will confuse the OID reported by <code>GET</code> as</p>
<ol>
<li>belong to the scalar type (a misconception that is)</li>
<li>belong to the tabular type but out of index range</li>
</ol>
<p><code>GET</code> against the MIB will return the following error</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> snmpget <span style="color: #660033;">-m</span> +ELTEK-DISTRIBUTED-PLANTV4-MIB <span style="color: #660033;">-v</span> <span style="color: #000000;">1</span> <span style="color: #660033;">-c</span> public raddlex ELTEK-DISTRIBUTED-PLANTV4-MIB::rectifierStatusOutputCurrent.0
ELTEK-DISTRIBUTED-PLANTV4-MIB::rectifierStatusOutputCurrent.0: Unknown Object Identifier <span style="color: #7a0874; font-weight: bold;">&#40;</span>Index out of range: <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>rectifierStatusID<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>while the item (output current) actually has value in it as found below</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> snmpget <span style="color: #660033;">-v</span> <span style="color: #000000;">1</span> <span style="color: #660033;">-c</span> public raddlex .1.3.6.1.4.1.12148.9.5.5.2.1.3.0
SNMPv2-SMI::enterprises.12148.9.5.5.2.1.3.0 = INTEGER: <span style="color: #000000;">1</span></pre></div></div>

<p>By this time the MIB is already the latest to be used with firmware version 4.3.</p>
]]></content:encoded>
			<wfw:commentRss>https://lakm.us/logit/2012/03/snmp-mistake-tabular-oid-practice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Install Nagios 3 and Plugins</title>
		<link>https://lakm.us/logit/2009/10/install-nagios-3-and-plugins/</link>
		<comments>https://lakm.us/logit/2009/10/install-nagios-3-and-plugins/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 05:48:46 +0000</pubDate>
		<dc:creator>Arif</dc:creator>
				<category><![CDATA[General Linux]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[CGI]]></category>
		<category><![CDATA[daemon]]></category>
		<category><![CDATA[make-install]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[web-based]]></category>

		<guid isPermaLink="false">http://localhost/it/?p=95</guid>
		<description><![CDATA[Quickstart I decided to install in RedHat 5.2. Maybe it is easier in Ubuntu (Nagios 3 already listed in the repository, but I haven&#8217;t tried it). As pointed out by the quickstart (it is meant for Fedora by the way), requirements are: php, httpd gcc, glibc, glibc-common gd, gd-devel After getting those, the configure-make-install procedure [...]]]></description>
				<content:encoded><![CDATA[<h3>Quickstart</h3>
<p>I decided to install in RedHat 5.2. Maybe it is easier in Ubuntu (Nagios 3 already listed in the repository, but I haven&#8217;t tried it). As pointed out by the quickstart (it is meant for Fedora by the way), requirements are:</p>
<ol>
<li><span style="background-color: #ffffff;">php, httpd </span></li>
<li><span style="background-color: #ffffff;">gcc, glibc, glibc-common</span></li>
<li><span style="background-color: #ffffff;">gd, gd-devel</span></li>
</ol>
<p>After getting those, the <code>configure-make-install</code> procedure runs well, except that I don&#8217;t check the warnings. It turns out that only some of Nagios core components are installed. It can be seen from the content of <code>/usr/local/nagios/libexec</code> directory. There is no <code>check_snmp</code> etc. Error also appears in statusmap page of Nagios.</p>
<h3>Compile More Nagios Core Components</h3>
<p>I run through <code>./configure</code> once more, check out all warnings, and begin to evaluate <strong>requirements</strong> (found this text inside <code>nagios-plugins-1.4.14</code> tarball)</p>
<h4>MySQL</h4>
<p>For <code>check_mysql</code> functionality, <code>mysql</code> (MySQL client for linux) must be installed. <code>./configure</code> also test this client, by default config, to the local MySQL socket, hence <code>mysql-server</code> must also exist.</p>
<h4>Radius Client</h4>
<p>Client from freeradius package doesn&#8217;t meet Nagios requirements. It must be the ones from original radiusclient, I found RPMs for  <code>radiusclient-0.3.2-0.2.el5.rf.i386.rpm</code> and <code>radiusclient-devel-0.3.2-0.2.el5.rf.i386.rpm</code>.</p>
<h4>GD</h4>
<p>It is quite tricky to get <code>statusmap.c</code> to be compiled for the <code>.cgi</code> of Nagios status map. Compilation needs <code>gd</code> library from <a href="http://www.libgd.org/">http://www.libgd.org/</a>. <code>gd</code> requires <code>zlib</code>, <code>libjpeg</code>, and <code>libpng</code>. On first attempt, I installed from RPMs. This appeared to be not working as I could still see warnings about <code>gd2</code> during .<code>/configure</code>.</p>
<p>So, I choose to compile from the source <code>gd-2.0.33.tar.bz2</code>. This tarball was found in the older section of current <code>gd2</code> web. I chose this version because the RPM used was <code>gd-2.0.33-9.4.el5_1.1.rpm</code>. I removed this RPM first which made me to remove also <code>libmwf</code> and <code>ImageMagick</code>.</p>
<p>After straightforward  <code>configure-make-install</code> the library will be installed under <code>/usr/local/lib</code> i.e <code>libgd.so.2.0.0</code>. Header files will also be available in /<code>usr/local/include</code> i.e <code>gd.h</code>. These are different from the situation when I installed from RPM where <code>libgd.so.2.0.0</code> is under <code>/usr/lib/</code> and no <code>gd.h</code> found under <code>/usr/include</code>.</p>
<p>So, I <code>make devclean</code> and rerun</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--with-gd-lib</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>lib <span style="color: #660033;">--with-gd-inc</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>include <span style="color: #660033;">--with-command-group</span>=nagcmd</pre></div></div>

<p>I configure the /usr/local/nagios/etc/cgi.conf but status map page is still empty. Next workaround is to install back  <code>gd-2.0.33-9.4.el5_1.1.rpm</code>. (which also bring back <code>libmwf</code> and <code>ImageMagick</code>) and point the <code>gd</code> library to the ones created from RPM. I <code>make devclean</code> and rerun:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--with-gd-lib</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib <span style="color: #660033;">--with-gd-inc</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>include <span style="color: #660033;">--with-command-group</span>=nagcmd</pre></div></div>

<p>At this point I regret not to have Ubuntu implementation in the first place. Just a small regret.</p>
<p>Other library needed for <code>check_smtp</code>, <code>check_http</code>, etc. don&#8217;t seem to trouble me much, I need <code>openssl</code>, <code>openldap</code>, etc. and simply get them from RPMs.</p>
]]></content:encoded>
			<wfw:commentRss>https://lakm.us/logit/2009/10/install-nagios-3-and-plugins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
