<?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>Linux System Admins Blog &#187; monitoring</title>
	<atom:link href="http://linuxsysadminblog.com/category/monitoring/feed/" rel="self" type="application/rss+xml" />
	<link>http://linuxsysadminblog.com</link>
	<description>System admins of Promet - an e-commerce, high availability Open Source web shop - share their findings</description>
	<lastBuildDate>Sat, 10 Jul 2010 01:33:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cacti and MySQL counters problem</title>
		<link>http://linuxsysadminblog.com/2009/06/cacti-and-mysql-counters-problem/</link>
		<comments>http://linuxsysadminblog.com/2009/06/cacti-and-mysql-counters-problem/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 01:46:15 +0000</pubDate>
		<dc:creator>Pim</dc:creator>
				<category><![CDATA[Cacti]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[InnoDB]]></category>

		<guid isPermaLink="false">http://linuxsysadminblog.com/?p=740</guid>
		<description><![CDATA[We recently came across a problem with Cacti and the MySQL counters. For those of you who don&#8217;t know how to integrate MySQL statistics into Cacti have a look at this: http://code.google.com/p/mysql-cacti-templates/. These templates are a great way to gain some insight into how your MySQL database servers perform. The templates are actually PHP pages [...]]]></description>
			<content:encoded><![CDATA[<p>We recently came across a problem with Cacti and the MySQL counters. For those of you who don&#8217;t know how to integrate MySQL statistics into Cacti have a look at this: <a href="http://code.google.com/p/mysql-cacti-templates/" target="_blank">http://code.google.com/p/mysql-cacti-templates/</a>. These templates are a great way to gain some insight into how your MySQL database servers perform. The templates are actually PHP pages that query the databases through a variety of commands like SHOW STATUS and SHOW ENGINE INNODB STATUS.</p>
<p>The issue that we encountered was that some statistics like the InnoDB buffer pool activity were not displaying anything for one server. Other servers were displaying it just fine and other statistics for that server were also fine.</p>
<p>Among other things the SHOW ENGINE INNODB STATUS command shows deadlock information pertaining to the last deadlock that the InnoDB engine encountered. In some cases this information will be quite extensive and this causes a problem. The output of this command is one giant text field with a limit of 64KB. If the deadlock information is very large other information will get cut off which means certain statistics are lost. The easy fix for this is to restart the database server but in case this is not an option you can always use the innotop utility to wipe the deadlock information by causing a small deadlock.</p>
]]></content:encoded>
			<wfw:commentRss>http://linuxsysadminblog.com/2009/06/cacti-and-mysql-counters-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setup Nagios User to View Specific Host and Services</title>
		<link>http://linuxsysadminblog.com/2009/05/setup-nagios-user-to-view-specific-host-and-services/</link>
		<comments>http://linuxsysadminblog.com/2009/05/setup-nagios-user-to-view-specific-host-and-services/#comments</comments>
		<pubDate>Fri, 15 May 2009 00:29:00 +0000</pubDate>
		<dc:creator>gerold</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[Add new tag]]></category>
		<category><![CDATA[nagios users]]></category>

		<guid isPermaLink="false">http://linuxsysadminblog.com/?p=654</guid>
		<description><![CDATA[This guide will help you setup Nagios user to have limited access to host and service checks.  It is helpful when you want to allow your customers or clients to view and receive alerts on their servers and services, like for dedicated servers.
Procedure:
  Contacts:  Create new contact definitions for your client.
  [...]]]></description>
			<content:encoded><![CDATA[<p>This guide will help you setup Nagios user to have limited access to host and service checks.  It is helpful when you want to allow your customers or clients to view and receive alerts on their servers and services, like for dedicated servers.</p>
<p><strong>Procedure:</strong></p>
<p>  <strong>Contacts: </strong> Create new contact definitions for your client.<br />
  <code lang="html">	define contact{<br />
        contact_name                    customer1<br />
        alias                           Customer One Admin<br />
        service_notification_period     24x7<br />
        host_notification_period        24x7<br />
        service_notification_options    c,r<br />
        host_notification_options       d,r<br />
        service_notification_commands   notify-service-by-email<br />
        host_notification_commands      notify-host-by-email<br />
        email                           customer1@domain.tld<br />
    }  </code><br />
<span id="more-654"></span><br />
  <strong>Groups:  </strong>Create contact groups or you can add the new contact for you existing group, depending on the checks that you want to allow.<br />
<code lang="html">	define contactgroup {<br />
        contactgroup_name               Dedicated-Server1-Admins<br />
        alias                           Admins for Server 1<br />
        members                         customer1,hostingadmins<br />
	}</code></p>
<p>  <strong>Hosts / Services: </strong>  Use the new Contact Group with customers email and your main admin.  Note that i used the existing Host Groups but you create new HostGroups if you want.<br />
<code lang="html">	define host {<br />
        use                            generic-host<br />
        host_name                      Server1<br />
        alias                          Server1<br />
        address                        10.0.0.2  // private or public ip<br />
        hostgroups                     DedicateServers<br />
        check_command                  check-host-alive<br />
        contact_groups                 Dedicated-Server1-Admins<br />
        check_period                   24x7<br />
        max_check_attempts             10<br />
        notification_interval          480<br />
        notification_period            24x7<br />
        notification_options           d,r<br />
        notifications_enabled          1<br />
	}<br />
    define service {<br />
        use                            generic-service<br />
        host_name                      Server1<br />
        service_description            HTTP<br />
        is_volatile                    0<br />
        check_period                   24x7<br />
        max_check_attempts             3<br />
        normal_check_interval          5<br />
        retry_check_interval           3<br />
        contact_groups                 Dedicated-Server1-Admins<br />
        notification_interval          480<br />
        notification_period            24x7<br />
        notification_options           w,u,c,r<br />
        check_command                  check_http<br />
        notifications_enabled          1<br />
	}</code></p>
<p>  In my case, I created a new group and add our admin contacts and customers, then update the contact groups for hosts and services.  You can also create a new definitions for hosts, contacts, groups, and services with different names for the clients if you don&#8217;t want to edit your existing definitions.</p>
<p>  <strong>Htaccess: </strong> Lastly, you need to add htaccess user to your htpasswd file (htpasswd.users).  Username should match the name on your Contact.  In this sample it is customer1. <strong> [Update]</strong> If you&#8217;ve implemented &#8220;<a href="http://nagios.sourceforge.net/docs/3_0/cgisecurity.html">Digest Authentication</a>&#8221; you need to update your digest file instead of the htpasswd.</p>
<p>  Don&#8217;t forget to restart you Nagios.</p>
]]></content:encoded>
			<wfw:commentRss>http://linuxsysadminblog.com/2009/05/setup-nagios-user-to-view-specific-host-and-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dv camera + computer + vlan + dvgrab = cheap video surveillance</title>
		<link>http://linuxsysadminblog.com/2009/05/dv-camera-computer-vlan-dvgrab-cheap-video-surveillance/</link>
		<comments>http://linuxsysadminblog.com/2009/05/dv-camera-computer-vlan-dvgrab-cheap-video-surveillance/#comments</comments>
		<pubDate>Wed, 06 May 2009 18:21:04 +0000</pubDate>
		<dc:creator>max</dc:creator>
				<category><![CDATA[Down Time]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[monitoring]]></category>

		<guid isPermaLink="false">http://linuxsysadminblog.com/?p=586</guid>
		<description><![CDATA[In the day and age of high definition many are upgrading their video recording gear to the latest harddrive or flash based hi def video cameras. Unlike auto dealerships consumer electronics retailers don&#8217;t offer trade in options for your old stuff.  In the green / renewable mindset we can put these no longer used video [...]]]></description>
			<content:encoded><![CDATA[<p>In the day and age of high definition many are upgrading their video recording gear to the latest harddrive or flash based hi def video cameras. Unlike auto dealerships consumer electronics retailers don&#8217;t offer trade in options for your old stuff.  In the green / renewable mindset we can put these no longer used video cameras to good use as video surveillance devices perfect for keeping an eye on your own or others property.</p>
<p>On the hardware side you need a <a title="DV Camera" href="http://linuxsysadminblog.com/?attachment_id=596" target="_blank">DV camera</a> with firewire port (IEEE 1394), firewire port equipped Pentium 4 or equivalent pc or laptop with loaded with Fedora 9 or 10 and a  firewire cable to connect camera to the computer. For software we will only need <a href="http://freshmeat.net/projects/dvgrab/">dvgrab</a> and <a href="http://www.videolan.org">VLC</a></p>
<p><span id="more-586"></span>Install dvgrab from Fedora update repo:<br />
<code>yum install dvgrab</code></p>
<p>Install vlc from rpmfusion repo:<br />
<code>sudo rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm<br />
sudo yum install vlc</code></p>
<p>Set DV camera audio to 16bit (default is 12 bit) to avoid garbled audio.</p>
<p><a rel="attachment wp-att-597" href="http://linuxsysadminblog.com/2009/05/dv-camera-computer-vlan-dvgrab-cheap-video-surveillance/audio16bit/"><img class="alignnone size-full wp-image-597" title="audio16bit" src="http://linuxsysadminblog.com/wp-content/uploads/2009/05/audio16bit.jpg" alt="audio16bit" width="360" height="239" /></a></p>
<p>Turn on and connect video camera to computer and you should see something like this in /var/log/dmesg:<br />
<code>firewire_core: created device fw1: GUID 0800460102721e20, S100</code></p>
<p>To test that we are able to grab video/audio from camera and display in VLC player pipe output of dvgrab into vlc.</p>
<p><code>sudo dvgrab - -noavc -nostop | vlc - --no-sub-autodetect-file :demux=rawdv</code><br />
After issuing this command you should see a 720&#215;480 video feed with 16bit 48000Hz audio stream in vlc on your desktop</p>
<p><a rel="attachment wp-att-589" href="http://linuxsysadminblog.com/2009/05/dv-camera-computer-vlan-dvgrab-cheap-video-surveillance/vlcwindow1/"><img class="alignnone size-full wp-image-589" title="vlcwindow1" src="http://linuxsysadminblog.com/wp-content/uploads/2009/05/vlcwindow1.png" alt="vlcwindow1" width="385" height="330" /></a></p>
<p>Now we setup vlc as a streaming server so that we can view the video/audio when away. Streaming a 720&#215;480 video stream is a bit overkill as the video quality on the DV camera is pretty good when vlc streams video at lower resolutions like 320&#215;240, I also reduce the audio quality to save on bandwidth. Here I used &#8220;cvlc&#8221; or command vlc to avoid opening a vlc window and &#8220;&amp;&#8221; to put process into background.</p>
<p><code>sudo dvgrab - -noavc -nostop | cvlc - --no-sub-autodetect-file :demux=rawdv --sout '#transcode{vcodec=mp4v,vb=600,acodec=mp3,ab=56,scale=1,width=320,height=240,channels=2}:duplicate{dst=std{access=http,mux=ts,dst=192.168.1.102:3323}}' &amp; </code></p>
<p>To view the feed locally via vlc open a http network location on ip and port you specified in the <code>dst=</code> section of the command above.</p>
<p><a rel="attachment wp-att-590" href="http://linuxsysadminblog.com/2009/05/dv-camera-computer-vlan-dvgrab-cheap-video-surveillance/vlcopen/"><img class="alignnone size-full wp-image-590" title="vlcopen" src="http://linuxsysadminblog.com/wp-content/uploads/2009/05/vlcopen.png" alt="vlcopen" width="367" height="358" /></a></p>
<p>To view your feed from the Internet you will need to either configure vlc to stream on an outside interface or configure port forwarding.</p>
<p><a rel="attachment wp-att-591" href="http://linuxsysadminblog.com/2009/05/dv-camera-computer-vlan-dvgrab-cheap-video-surveillance/ddwrt/"><img class="alignnone size-full wp-image-591" title="ddwrt" src="http://linuxsysadminblog.com/wp-content/uploads/2009/05/ddwrt.png" alt="ddwrt" width="714" height="342" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://linuxsysadminblog.com/2009/05/dv-camera-computer-vlan-dvgrab-cheap-video-surveillance/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Monitoring Drupal Sites With Nagios</title>
		<link>http://linuxsysadminblog.com/2009/04/monitoring-drupal-sites-with-nagios/</link>
		<comments>http://linuxsysadminblog.com/2009/04/monitoring-drupal-sites-with-nagios/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 09:22:31 +0000</pubDate>
		<dc:creator>gerold</dc:creator>
				<category><![CDATA[Centos]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[monitoring]]></category>

		<guid isPermaLink="false">http://linuxsysadminblog.com/?p=549</guid>
		<description><![CDATA[There is a module released for monitoring Drupal sites with Nagios.  Monitoring includes the check if your site is up and running, check for new updates on Drupal core, security, and modules, database updates, write permission on &#8220;files&#8221; directory,  check if cron is running on the specified period, and other sections of your Drupal site.  [...]]]></description>
			<content:encoded><![CDATA[<p>There is a <a href="http://drupal.org/project/nagios"><strong>module</strong></a> released for monitoring <a href="http://drupal.org/">Drupal</a> sites with <a href="http://www.nagios.org/">Nagios</a>.  Monitoring includes the check if your site is up and running, check for new updates on Drupal core, security, and modules, database updates, write permission on &#8220;files&#8221; directory,  check if cron is running on the specified period, and other sections of your Drupal site.  It is intended and helpful to those maintain large number of Drupal sites.</p>
<p>At this time of writing, this module is still on a development version and there&#8217;s no guarantee that the installation guide will work out-of-the-box with your system.  And this post will mainly cover my own installation process on our Nagios monitoring server running on Debian and Nagios version 3.0, and Drupal version 6.x sites on web servers running CentOS 5.x.</p>
<p><strong>Installation</strong>:<br />
My installation is based on the included README file and with some adjustments to my liking.</p>
<p><strong>Install the Drupal Module:</strong></p>
<ul>
<li> Download the Nagios module from <a href="http://drupal.org/project/nagios">Drupal project page</a>.</li>
<li> Install the module to your Drupal site just like the other modules.  Download tarball, extract to modules directory ex: <strong><em>sites/all/modules/</em></strong>, go to <strong><em>admin-&gt;build-&gt;modules</em></strong> and enable the module.<span id="more-549"></span></li>
<li>Configure your Nagios module and set the site&#8217;s UniqueID and Cron duration.
<p><strong>UniqueID</strong> is your site identifier to be used by the Nagios (<em>check_drupal</em>) to authorize the service check and for security purposes.  The author also suggests the use of MD5 or SHA1 string. Refer to README for more info on this parameter.</p>
<p><strong>Cron Duration</strong> &#8211; you need to supply the interval of your cron job that checks for Drupal updates.  This value should match with your cron settings, ex: daily or every 3 hours..etc.</li>
</ul>
<p><strong>Configure Nagios checks:</strong></p>
<ul>
<li>Copy the plugin file (<strong><em>check_drupal</em></strong>) found on the <strong><em>nagios-plugin</em></strong> directory of the module, to your Nagios plugins directory where the other Nagios check commands are located &#8211; in my case it&#8217;s on <strong><em>/usr/local/nagios/libexec/</em></strong> (CentOS).
<p>If your Nagios installation is on a different machine than your Drupal server, you need to copy the <em><strong>check_drupal</strong></em> file in there.  You can also put it on the same server with Drupal sites and use NRPE instead.</p>
<p>On my CentOS machine i received an error on <strong><em>check_drupal</em></strong> regarding the location of <em><strong>basename</strong></em> file &#8211; it&#8217;s on <em><strong>/bin/basename</strong></em>.  You can edit the <em><strong>check_drupal</strong></em> file directly to adjust the path to <em><strong>basename</strong></em>.<br />
<code>./check_drupal: line 14: /usr/bin/basename: No such file or directory.</code></li>
<li> <strong>Add command, host, hostgroup, and service definition:</strong>
<p><strong>Command </strong>(commands.cfg):  I made small modification on the given commands from the README file to match my setup.<br />
<code>define command{<br />
command_name  check_drupal<br />
command_line  $USER1$/check_drupal -H $ARG1$ -U $ARG2$ -t $ARG3$<br />
}<br />
</code><br />
<strong>HostGroup</strong>:  I created a new Host group because we have other service checks on our server such as SSH, HTTP, LOAD, etc and I want to separate my checks for Drupal sites.<br />
<code>define hostgroup {<br />
hostgroup_name  Drupal<br />
alias           Drupal Sites<br />
members         MyWebServer<br />
}<br />
</code><br />
<strong>Host:</strong> I defined new host for Drupal sites so i can configure and group my them on the same host where they belong.<br />
<code>define host {<br />
host_name                      MyWebServer<br />
display_name                   MyWebServer<br />
address                        HOSTNAME/IP ADDRESS HERE<br />
hostgroups                     Drupal<br />
check_command                  check-host-alive<br />
contact_groups                 Admins<br />
check_period                   24x7<br />
max_check_attempts             10<br />
notification_interval          480<br />
notification_period            24x7<br />
notification_options           d,r<br />
notifications_enabled          1<br />
}<br />
</code><br />
<strong>Service:</strong> Below is my service checks definition for checking Drupal sites, i only need to copy this and change supply parameters for domain, unique key and the timeout.<br />
<code> define service {<br />
service_description            DRUPAL_SITE 1<br />
host_name                      MyWebServer<br />
check_period                   24x7<br />
max_check_attempts             3<br />
normal_check_interval          5<br />
retry_check_interval           3<br />
contact_groups                 Admins<br />
notification_interval          480<br />
notification_period            24x7<br />
notification_options           w,u,c,r<br />
check_command                  check_drupal!mysite.example.com!mykeyhere!5<br />
notifications_enabled          1<br />
}<br />
</code></li>
</ul>
<p>If your installation and configuration is correct you will get the Nagios service status similar below.  It indicates number of modules, themes, users, nodes, etc.</p>
<p><code>DRUPAL OK, ADMIN:OK, CRON:OK<br />
SAN=0;SAU=0;NOD=12;USR=7;MOD=23;THM=9</code></p>
<p>On my initial tests i received Nagios status (below) different than the above info and it was caused by my Apache configuration because i have a default Nagios installation before on my server that hosts my Drupal sites.</p>
<p><code>HTTP returned an error code. HTTP:   HTTP/1.1 301 Moved Permanently</code><br />
So you need to check first the url of your Nagios module installation ex:  http://mysamplesite.com/nagios/, this will give you:</p>
<p><code>Nagios status page<br />
nagios=UNKNOWN, DRUPAL:UNKNOWN=Unauthorized</code></p>
]]></content:encoded>
			<wfw:commentRss>http://linuxsysadminblog.com/2009/04/monitoring-drupal-sites-with-nagios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hawaii comes to our datecenter.</title>
		<link>http://linuxsysadminblog.com/2009/04/hawaii-comes-to-our-datecenter/</link>
		<comments>http://linuxsysadminblog.com/2009/04/hawaii-comes-to-our-datecenter/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 02:26:41 +0000</pubDate>
		<dc:creator>max</dc:creator>
				<category><![CDATA[hosting]]></category>
		<category><![CDATA[monitoring]]></category>

		<guid isPermaLink="false">http://linuxsysadminblog.com/?p=538</guid>
		<description><![CDATA[Aside from missing coconut trees and hula girls distinguishing our data center from Hawaii was pretty tough this afternoon. It was HOT, so hot in fact that I was sweating while sitting in just a cotton tee-shirt. I kept drifting away into a daydream where that failed 20 ton Liebert A/C unit was running. Soon [...]]]></description>
			<content:encoded><![CDATA[<p>Aside from missing coconut trees and hula girls distinguishing our data center from Hawaii was pretty tough this afternoon. It was HOT, so hot in fact that I was sweating while sitting in just a cotton tee-shirt. I kept drifting away into a daydream where that failed 20 ton Liebert A/C unit was running. Soon however reality set in&#8230; the a/c wasn&#8217;t running, our 42U cabinet packed with 35U worth of server, switch and router gear was overheating and a slave Mysql database server wasn&#8217;t having this all this heat! The poor thing turned itself off  and after 5 hour cool down time I still get error: 1610 Temperature violation detected</p>
<p><a href="http://linuxsysadminblog.com/wp-content/uploads/2009/04/toohot.jpg"><img class="size-full wp-image-540 alignnone" title="1610 temparature violation" src="http://linuxsysadminblog.com/wp-content/uploads/2009/04/toohot.jpg" alt="1610 temparature violation" width="336" height="336" /></a></p>
<p><span id="more-538"></span></p>
<p>While promises of having the A/C unit up and running soon were being thrown at me I wasn&#8217;t biting. Shutting down 3 non-essential servers did help things a bit.  The database servers with their 15K rpm disks were running their internal fans at nearly 100% coping with the heat. At this point I was starting to feel a little bit upbeat picturing what would happen if the servers were not servers and just consumer grade PC&#8217;s turned into servers. If you are reading this you must know what burned power supplies smell like! At some point I knew the A/C unit would be fixed and I would be able to re-power up the non-essential servers. Monitoring temperatures inside the cabinet would be nice, but we don&#8217;t have such a <a href="http://www.pcmeasure.com/sensors.php">useful device</a>. Next best thing was internal temperature sensors inside a direct attach storage array which has 6 sensors: 4 in the front and 2 in back. <a href="http://www.cacti.net/">Cacti</a> proved invaluable as I could monitor what was going on and most importantly see if the datacenter made good on their promise. Each raise in temperature indicates a period when the A/C was not working or working poorly.</p>
<div id="attachment_543" class="wp-caption alignnone" style="width: 638px"><a rel="attachment wp-att-543" href="http://linuxsysadminblog.com/2009/04/hawaii-comes-to-our-datecenter/array_temps/"><img class="size-full wp-image-543" title="array_temps" src="http://linuxsysadminblog.com/wp-content/uploads/2009/04/array_temps.png" alt="temp_graph" width="628" height="289" /></a><p class="wp-caption-text">temp_graph</p></div>
]]></content:encoded>
			<wfw:commentRss>http://linuxsysadminblog.com/2009/04/hawaii-comes-to-our-datecenter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HP ILO remote managment online configuration PART 1</title>
		<link>http://linuxsysadminblog.com/2009/04/hp-ilo-remote-managment-online-configuration-part-1/</link>
		<comments>http://linuxsysadminblog.com/2009/04/hp-ilo-remote-managment-online-configuration-part-1/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 21:54:28 +0000</pubDate>
		<dc:creator>max</dc:creator>
				<category><![CDATA[Installation]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[hp]]></category>
		<category><![CDATA[ilo]]></category>
		<category><![CDATA[remote managment]]></category>

		<guid isPermaLink="false">http://linuxsysadminblog.com/?p=510</guid>
		<description><![CDATA[Many mainstream oem server iron manufacturers (dell, supermicro, sun, ibm) offer remote management options. HP&#8217;s variant is called iLO or Integrated Lights Out and is standard on 3oo/500/Blade line of servers. Newer generation (G5 and up) servers come with iLO 2 which offers hardware video acceleration and network encryption.  Normally iLO is setup before booting [...]]]></description>
			<content:encoded><![CDATA[<p>Many mainstream oem server iron manufacturers (dell, supermicro, sun, ibm) offer remote management options. HP&#8217;s variant is called iLO or <strong>Integrated Lights Out </strong>and is standard on 3oo/500/Blade line of servers. Newer generation (G5 and up) servers come with iLO 2 which offers hardware video acceleration and network encryption.  Normally iLO is setup before booting the server as ip address/user assignments need to accommodated. This can be done remotely as well with minimal pain. This guide assumes the server is HP dl360 G5 running rhel5 /centos 5 64 and you have root access to the server.  This guide would apply to other HP servers that support <a href="http://h18000.www1.hp.com/products/servers/management/ilo/">iLO</a> / <a href="http://h18013.www1.hp.com/products/servers/management/iloadv2/index.html">iLO2</a>.</p>
<p>1. <a href="http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&amp;cc=us&amp;prodTypeId=15351&amp;prodSeriesId=1121486&amp;prodNameId=3288144&amp;swEnvOID=4004&amp;swLang=8&amp;mode=2&amp;taskId=135&amp;swItem=MTX-4142b198b9cb475f99658a7caf">Download</a> and install latest (8.2.0-236) iLO kernel module.</p>
<p><code>rpm -ivh hp-ilo-8.2.0-236.rhel5.x86_64.rpm<br />
service hp-ilo start</code></p>
<p>check that the module loaded properly</p>
<p><code>[root@server ~]$ lsmod<br />
Module                  Size  Used by<br />
hpilo                  43280  0</code></p>
<p>2. <a href="http://ftp.hp.com/pub/softlib2/software1/sc-linux-fw-ilo/p1285463034/v51280/CP010302.scexe">Download</a> and install latest (1.70 B) iLO firmware.</p>
<p><code>[root@server ~]$ sh CP010302.scexe</code></p>
<p><code>FLASH_iLO2 v1.10 for Linux (Jan 12 2009)<br />
Copyright 2009 Hewlett-Packard Development Company, L.P.<br />
Firmware image: ilo2_170.bin<br />
Current iLO 2 firmware version  1.29; Serial number ILOUSM1234567<br />
</code><br />
<code>Component XML file: CP010302.xml<br />
CP010302.xml reports firmware version 1.70<br />
This operation will update the firmware on the<br />
iLO 2 in this server with version 1.70.<br />
Continue (y/N)?y<br />
Current firmware is 1.29 (Feb 28 2007 17:09:41)<br />
Firmware image is 0x270000 bytes<br />
Committing to flash part...<br />
******** DO NOT INTERRUPT! ********<br />
Flashing completed!<br />
Attempting to reset device.<br />
Succeeded.</code></p>
<p>3. <a href="http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&amp;cc=us&amp;prodTypeId=15351&amp;prodSeriesId=1121486&amp;prodNameId=3288144&amp;swEnvOID=4004&amp;swLang=8&amp;mode=2&amp;taskId=135&amp;swItem=MTX-5292ccda1fef4040b1f14cf85d">Download</a> and install latest (8.2.0-285) hp-OpenIPMI device driver.</p>
<p><code>rpm -ivh 8.2.0-285.rhel5.x86_64.rpm</code></p>
<p>4. <a href="http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&amp;cc=us&amp;prodTypeId=15351&amp;prodSeriesId=1121486&amp;prodNameId=3288144&amp;swEnvOID=4004&amp;swLang=8&amp;mode=2&amp;taskId=135&amp;swItem=MTX-9994deee7e854c48934baeb2e5">Download</a> and install latest (1.9.0-3) HP Lights-Out Online Configuration utility.</p>
<p><code>rpm -ivh hponcfg-1.9.0-3.noarch.rpm</code></p>
<p>5. <strong>Optional</strong> <a href="http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&amp;cc=us&amp;prodTypeId=15351&amp;prodSeriesId=1121486&amp;prodNameId=3288144&amp;swEnvOID=4004&amp;swLang=8&amp;mode=2&amp;taskId=135&amp;swItem=MTX-6843fb2d2e524c9690b30b6c30">Download</a> latest (2.10) SmartStart Scripting Toolkit to your pc.</p>
<p>The hponcfg utility allows configuration of iLO embedded server. All configuration is passed to iLO in XML format. Refer to SmartStart Scripting Toolkit for command reference.</p>
<p>In part 2 a sample configuration file will be prepared to provide access to iLO from outside even if the management port is not connected to the network.</p>
]]></content:encoded>
			<wfw:commentRss>http://linuxsysadminblog.com/2009/04/hp-ilo-remote-managment-online-configuration-part-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Drupal performance tips from DrupalCon</title>
		<link>http://linuxsysadminblog.com/2009/03/drupal-performance-tips-from-drupalcon/</link>
		<comments>http://linuxsysadminblog.com/2009/03/drupal-performance-tips-from-drupalcon/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 17:27:21 +0000</pubDate>
		<dc:creator>andrew</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[monitoring]]></category>

		<guid isPermaLink="false">http://linuxsysadminblog.com/?p=397</guid>
		<description><![CDATA[increasing drupal performance notes from drupal con dc 2009]]></description>
			<content:encoded><![CDATA[<p>Still reporting from DrupalCon. So far there have been a number of sessions I have attended. Here are some highlights from those sessions on how to increase performance on your drupal site.</p>
<ul>
<li>Look at the number of requests a page makes to the server</li>
<li>Use yslow to measure page rendering (often a page performance is perceived, not just based on the server response time)</li>
</ul>
<ul>
<li>Remove search, use alternate solutions such as Apache Solr or Google Search API</li>
<li>Use CDN as much as possible</li>
<li>Use Reverse Proxy Cache and memcache</li>
<li>Obviously use drupal cache</li>
</ul>
<p>Some other notes that are somewhat related to drupal performance and site performance management in a clustered hosting environment.</p>
<p><strong>Manual updates and rollback</strong></p>
<p>OLD WAY: tar, move/copy untar restart services</p>
<p>OLD WAY: rsync</p>
<p>BETTER WAY: <a href="http://www.capify.org/" target="_blank">Capistrano </a></p>
<p><strong>Managing systems:</strong></p>
<p>BETTER WAY: <a href="http://trac.mcs.anl.gov/projects/bcfg2" target="_blank">bcfg2</a></p>
<p><strong>Monitoring Tools</strong></p>
<ul>
<li>Capacity Load: analyzing trends, predicting load, checking results of configuration and software changes (<a href="http://www.cacti.net/" target="_blank">cacti</a>, <a href="http://munin.projects.linpro.no/" target="_blank">munin</a>)</li>
<li>Failure: analyzing downtime, notification (<a href="http://www.nagios.org/" target="_blank">nagios</a> &#8211; using <strong>nrpe</strong> agents to monitor diverse services (do we use it this way?) , hyperin)</li>
</ul>
<p>Use monitoring tools to closely observe cluster replication and cashing as the failures in this area are the most difficult to solve.</p>
]]></content:encoded>
			<wfw:commentRss>http://linuxsysadminblog.com/2009/03/drupal-performance-tips-from-drupalcon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nagios:  How to check if remote process is running</title>
		<link>http://linuxsysadminblog.com/2009/02/nagios-how-to-check-if-remote-process-is-running/</link>
		<comments>http://linuxsysadminblog.com/2009/02/nagios-how-to-check-if-remote-process-is-running/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 09:00:33 +0000</pubDate>
		<dc:creator>gerold</dc:creator>
				<category><![CDATA[Nagios]]></category>
		<category><![CDATA[monitoring]]></category>

		<guid isPermaLink="false">http://linuxsysadminblog.com/?p=362</guid>
		<description><![CDATA[We have a monitoring server running Nagios and we needed to add checks for Nginx process on a new server.  Basically, you only need to install NRPE to monitor services, processes, disk space, load, etc on your remote machine.  Check the NRPE docummention for complete reference and here&#8217;s a quick NRPE installation guide for Debian.
For [...]]]></description>
			<content:encoded><![CDATA[<p>We have a monitoring server running <a href="http://www.nagios.org/" target="_blank">Nagios</a> and we needed to add checks for Nginx process on a new server.  Basically, you only need to install NRPE to monitor services, processes, disk space, load, etc on your remote machine.  Check the <a href="http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf" target="_blank">NRPE docummention</a> for complete reference and here&#8217;s a quick <a href="http://sysbible.org/x/2008/11/10/how-to-install-nagios-nrpe-under-debian-linux/" target="_blank">NRPE installation guide for Debian</a>.</p>
<p>For my objective i only need to check if Nginx process is running and will use the check_procs.  NRPE and Nagios Plugins were installed and i can check the Nginx process locally using the following commands:</p>
<p><span id="more-362"></span><br />
<code>/usr/local/nagios/libexec/check_procs -c 1:30 -C nginx</code><br />
wherein :<br />
<code>-c 1:30</code> &lt;&#8211; refers to the Critical range for number of Nginx processes. If there process count is below 1 and above 30 this will send me a Critical notice.  If you wan to add a Warning level you can use &#8220;-w 1:25&#8243; &#8211; adjust the number of processes for you needs.<br />
<code> -C nginx</code> &lt;&#8211; this will check for the command name (nginx)</p>
<p><strong>NOTE:</strong> For complete reference on this check and other samples please refer to the <a href="http://nagioswiki.org/wiki/Plugin:check_procs" target="_blank">NagiosWiki</a> page.</p>
<p>Below are my configurations:</p>
<p>NRPE(remote):  <em>/etc/nagios/nrpe_local.cfg</em><br />
<code>command[check_nginx]=/usr/local/nagios/libexec/check_procs -c 1:30 -C nginx</code></p>
<p>Nagios(host):  <em>/usr/local/nagios/etc/objects/localhost.cfg</em><br />
<code>define service {<br />
use                            generic-service         ; Name of service template to use<br />
host_name                      HOST/IPADDRESS<br />
service_description            CHECK_NGINX<br />
check_period                   24x7<br />
max_check_attempts             3<br />
normal_check_interval          5<br />
retry_check_interval           3<br />
contact_groups                 Admins<br />
notification_interval          480<br />
notification_period            24x7<br />
notification_options           w,u,c,r<br />
check_command                  check_nrpe!check_nginx<br />
notifications_enabled          1<br />
}</code></p>
<p>Nagios version is 3.0.  Nagios monitoring and remote server are running Debian Etch.</p>
]]></content:encoded>
			<wfw:commentRss>http://linuxsysadminblog.com/2009/02/nagios-how-to-check-if-remote-process-is-running/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AdBard &#8211; dont die!</title>
		<link>http://linuxsysadminblog.com/2009/02/adbard-dont-die/</link>
		<comments>http://linuxsysadminblog.com/2009/02/adbard-dont-die/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 19:37:49 +0000</pubDate>
		<dc:creator>andrew</dc:creator>
				<category><![CDATA[CLI]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[monitoring]]></category>

		<guid isPermaLink="false">http://linuxsysadminblog.com/?p=291</guid>
		<description><![CDATA[So a couple of weeks ago I touted the AdBard folks and their FLOSS oriented ad network system.  Today we received the following email from them.  What is worse, is that the ads have already stopped appearing on the site.  .
It looks like they will be teaming up with  Free Software Foundation.
Hello,
This email details your [...]]]></description>
			<content:encoded><![CDATA[<p>So a couple of weeks ago I touted the <a href="http://adbard.net/" target="_blank">AdBard</a> folks and their FLOSS oriented ad network system.  Today we received the following email from them.  What is worse, is that the ads have already stopped appearing on the site.  .</p>
<p>It looks like they will be teaming up with  <a href="http://www.fsf.org/" target="_blank">Free Software Foundation</a>.</p>
<blockquote><p>Hello,</p>
<p>This email details your current earnings from your participation in the Ad Bard Network.  We are also excited to announce major changes to our network, including general improvements and the direct participation of the Free Software Foundation.  However, our planned changes require that we temporarily suspend the entire network for the month of February.  As a member you will be receiving payment for your outstanding earnings balances, and then if you elect to participate in our newly structured network you will be required to sign up again.  We apologize for the inconvenience of this, but hope that it helps achieve the end goal of increasing the earnings of member websites and improving the desirability of the network for advertisers.</p>
<p>Statistics:<br />
&#8212;&#8212;&#8212;&#8211;<br />
LInux System Admin Blog average ad impressions:<br />
Hourly:           nn<br />
Daily:           nnn<br />
Monthly:      nnnnn</p>
<p>Outstanding earnings:<br />
$nnn</p>
<p>Due to the upgrade in process, please remove the JavaScript snippet from your website at this time.  No further advertisements will be displayed through this snippet, and before the end of February 2009 the handling for this javascript will be disabled and could result in an error on your website.  If you will require more than 2 weeks to remove the snippet, please send us an email and we will work with you as necessary.  A new snippet will be provided for the new website.</p>
<p>We will be issuing payments for all outstanding earnings through PayPal or via a check.  If your payment information has changed, please respond<br />
to this email with updated details.  Please be sure to include your Ad Bard username in your email. </p>
<p>If you have converted earnings into unused coupons, please reply to this email with details so that we are sure to properly credit you<br />
back.</p>
<p>Details about our enhanced network will be posted to <a href="http://adbard.net/" target="_blank">http://adbard.net/</a> over the upcoming month.  You will also be receiving an update via email when it is possible to sign up for the new network.  A few of the planned changes include a limited number of advertising slots, the ability to participate in approving which FLOSS-appropriate advertisements are accepted, and improvements to our payment algorithms.<br />
The Free Software Foundation is actively advising us in this effort, and will help campaign for the new network once it goes live.</p>
<p>Thank you for your patience and participation in our evolving network. We hope that you like the changes that will be happening this month, and<br />
that you will continue to participate.</p>
<p>Cheers, -Jeremy<br />
<span style="color: #888888;"><br />
&#8211;<br />
Jeremy Andrews<br />
877-875-8824 x100<br />
Tag1 Consulting, Inc.<br />
<a href="http://tag1consulting.com/" target="_blank"><br />
</a></span></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://linuxsysadminblog.com/2009/02/adbard-dont-die/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Monitoring a Java application from Nagios</title>
		<link>http://linuxsysadminblog.com/2009/01/monitoring-a-java-application-from-nagios/</link>
		<comments>http://linuxsysadminblog.com/2009/01/monitoring-a-java-application-from-nagios/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 21:16:47 +0000</pubDate>
		<dc:creator>Pim</dc:creator>
				<category><![CDATA[Nagios]]></category>
		<category><![CDATA[monitoring]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://linuxsysadminblog.com/?p=174</guid>
		<description><![CDATA[This is a slight departure from our regular programming. Instead of just concentrating on the sys admin side of things I want to show how to add a Nagios check to an existing application. In this case we have a Java application for which we want to monitor whether it is running or not. Later [...]]]></description>
			<content:encoded><![CDATA[<p>This is a slight departure from our regular programming. Instead of just concentrating on the sys admin side of things I want to show how to add a Nagios check to an existing application. In this case we have a Java application for which we want to monitor whether it is running or not. Later on we can make this more detailed by monitoring error codes in the application but for the moment let&#8217;s keep it simple.</p>
<p><strong>Configuring Nagios</strong><br />
On the Nagios end of things we need to define a command to perform a check on a specific port of the server where the application is running. Add a line like this to the objects/commands.cfg file of your Nagios installation.<br />
<code><br />
define command{<br />
command_name check_your_application_name<br />
command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ -e "This application is alive and well"<br />
}</code></p>
<p>The -e parameter checks for a specific text that is to be returned by the application. This we can use later on to check for more detailed information.<span id="more-174"></span> Next we need to add a service to Nagios for using this command. We do this by adding the following lines to the objects/localhost.cfg file. To keep this short I left out some lines which configure the frequency of the checks and the types of alerts.<br />
<code><br />
define service {<br />
use                    generic-service<br />
host_name              your_server_name<br />
service_description    your_service_name<br />
check_command          check_your_application_name!2222<br />
}</code></p>
<p><strong>Creating a listener port in Java</strong><br />
In the second part I will show you the actual code to add to your application. Because this is a blog post I left out the package definition and the includes, but other than that the class itself is usable. To add the check to the Java app we need to add a listener thread to application. We do this by creating a class that is derived from Thread. This listener will open a port which is specified by the main application and a respond to any incoming data with a preset text. We really don&#8217;t care about the input on this end so any input will be  ignored:</p>
<pre class="java">public class NagiosChecker extends Thread {
    // Server socket
    private ServerSocket srv;

    // Flag that indicates whether the poller is running or not.
    private boolean isRunning = true;

    // Constructor.
    public OVMChecker(ServerSocket srv) {
        this.isRunning = true;
        this.srv = srv;
    }

    // Method for terminating the listener
    public void terminate() {
        this.isRunning = false;
    }

    /**
    * This method start the thread and performs all the operations.
    */
    public void run() {
        try {
            // Wait for connection from client.
            while (isRunning) {
                Socket socket = srv.accept();

            // Open a reader to receive (and ignore the input)
            BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            // Write the status message to the outputstream
            try {
                BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
                wr.write("This application is alive and well");
                wr.flush();
            } catch (IOException e) {
                System.out.println(e.getMessage()));
            }

            // Close the inputstream since we really don't care about it
            rd.close();
        } catch (Exception e) {
            System.out.println(e.getMessage()));
        }
    }
}</pre>
<p>In case you&#8217;re still reading this you&#8217;re probably interested in how to call this class. The following code should be executed in the initialization of the application. It creates the actual socket for port 2222 and starts the listener class. After this the listener class will run indefinitely until the application terminates.</p>
<pre class="java">ServerSocket srv = null;
try {
    srv = new ServerSocket(2222);
    NagiosChecker checker = new NagiosChecker(srv);
    checker.start();
} catch (Exception e) {
    System.out.println(e.getMessage());
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://linuxsysadminblog.com/2009/01/monitoring-a-java-application-from-nagios/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
