<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Bennyvision</title>
    <link>http://blog.bennyvision.com/</link>
    <description>Electrons from the Nerdery</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.5.5 - http://www.s9y.org/</generator>
    
    

<item>
    <title>NDOUtils vs Liveupdate - check latencies and the battle of the NDO modules</title>
    <link>http://blog.bennyvision.com/index.php?/archives/7-NDOUtils-vs-Liveupdate-check-latencies-and-the-battle-of-the-NDO-modules.html</link>
            <category>Nagios</category>
    
    <comments>http://blog.bennyvision.com/index.php?/archives/7-NDOUtils-vs-Liveupdate-check-latencies-and-the-battle-of-the-NDO-modules.html#comments</comments>
    <wfw:comment>http://blog.bennyvision.com/wfwcomment.php?cid=7</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.bennyvision.com/rss.php?version=2.0&amp;type=comments&amp;cid=7</wfw:commentRss>
    

    <author>nospam@example.com (Chris Bensend)</author>
    <content:encoded>
    One metric of Nagios that should be monitored at all times is the various check latencies (host, service, passive, etc).  If Nagios gets &quot;behind&quot; in its scheduling queue, the various latencies increase.  This causes serious issues that you must be aware of - your host and service checks can be rescheduled into a future (sometimes, FAR into the future).  If you have several critical services that you need tested once every three minutes, Nagios&#039; brain-dead scheduler might very well start checking them once every 15 minutes if you&#039;re not careful.&lt;br /&gt;
&lt;br /&gt;
Typically, high host and service check latencies point to one of three things in my experience:&lt;br /&gt;
&lt;br /&gt;
1) Too many things being monitored&lt;br /&gt;
&lt;br /&gt;
2) Underpowered monitoring system&lt;br /&gt;
&lt;br /&gt;
3) Use of NDOUtils&lt;br /&gt;
&lt;br /&gt;
Let&#039;s address these one by one, and I&#039;ll explain in more detail.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Too many things being monitored:&lt;/strong&gt;  This is pretty self-explanatory.  You&#039;re trying to do too much at once.  If you have 10,000 hosts that you want polled once every five minutes, that&#039;s &lt;em&gt;33 host checks per second&lt;/em&gt; that you&#039;ll be attempting (for the sake of simplicity, assume a constant schedule instead of one that adapts like Nagios&#039; does).  33 host checks per second, &lt;strong&gt;plus&lt;/strong&gt; any service checks you&#039;re trying to do.  Be realistic about what you want to do - this is probably just too much for a single instance to do, unless it&#039;s a very beefy machine.  See the next point, they&#039;re related.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Your monitoring system is underpowered:&lt;/strong&gt;  We&#039;ve all been in this situation - &quot;do more with less,&quot; or &quot;we don&#039;t have budget for that.&quot;  If you have a lot of things to monitor, you need a lot of machine.  Now, Nagios is &lt;em&gt;MUCH&lt;/em&gt; more lightweight than most (all?) commercial monitoring packages.  That doesn&#039;t mean that you can monitor 1,000 hosts and 3,000 services on a pre-Pentium class machine.  If you&#039;re trying to come up with specifications for a new monitoring host, I would recommend a multi-core system with plenty of RAM.  I don&#039;t mean a 16-core beast with 32GB of RAM for monitoring 300 hosts, I mean a quad-core system with 4 or 8 GB or RAM to monitor 1,000 hosts.  System sizing has a touch of black magic in it, and your requirements will vary &lt;em&gt;drastically&lt;/em&gt; with what you&#039;re trying to run.  If 99% of your host and service checks use the standard Nagios plugins, you can get away with a lighter system.  If you have a number of custom Java or perl plugins that you run, size your system larger (more CPU and RAM).  Disk space is usually much less critical, unless you&#039;re processing massive amounts of performance data.  In that case, split that storage up so the system isn&#039;t trying to update 50 RRD databases while trying to monitor and log everything on the same disk volume.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Use of NDOUtils:&lt;/strong&gt;  By far, I have had more problems with the NDOUtils NDO module than anything else, when looking at monitoring system latency.  With NDOUtils loaded and running, Nagios daemon refreshes and seemingly random database tasks pushed my latencies ever-skyward, until I ended up having to restart Nagios (not reload, &lt;em&gt;restart&lt;/em&gt;) several times a week to keep latencies &quot;low enough.&quot;  Now, mind you, having all of the Nagios status and historical data in a database (good lord, people, &lt;strong&gt;WHY&lt;/strong&gt; MySQL?) was handy.  However, it just wasn&#039;t worth it.&lt;br /&gt;
&lt;br /&gt;
And that brings us to the point of this post:  Livestatus.  On a whim, I installed the &lt;a href=&quot;http://www.mathias-kettner.de/checkmk_livestatus.html&quot;&gt;Livestatus&lt;/a&gt; NDO module on my development Nagios systems, and disabled NDOUtils.  &lt;strong&gt;What an incredible difference that made!&lt;/strong&gt;  Since I installed Livestatus on my production systems, my host and service check latencies have remained well under 5 seconds (averaging about 1.6s and 4.1s each respectively), which I could only enjoy for the first day or so after restarting Nagios when using NDOUtils.&lt;br /&gt;
&lt;br /&gt;
Now, Livestatus doesn&#039;t use MySQL (thank goodness) or any other relational database on the back end - it stores everything internally, and is therefore incredibly fast.  It only took a few hours to rewrite all my custom reports that had connected to the NDOUtils database to use the LQL query language that Livestatus uses, and now they run considerably faster.&lt;br /&gt;
&lt;br /&gt;
All in all, I&#039;ve been using Livestatus for about a month, and I couldn&#039;t be happier.  It&#039;s quick, efficient, &lt;strong&gt;MUCH&lt;/strong&gt; lighter than NDOUtils, and keeps my host and service check latencies much lower.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 29 Nov 2011 15:32:45 +0000</pubDate>
    <guid isPermaLink="false">http://blog.bennyvision.com/index.php?/archives/7-guid.html</guid>
    
</item>
<item>
    <title>Monitoring the Monitoring System</title>
    <link>http://blog.bennyvision.com/index.php?/archives/6-Monitoring-the-Monitoring-System.html</link>
    
    <comments>http://blog.bennyvision.com/index.php?/archives/6-Monitoring-the-Monitoring-System.html#comments</comments>
    <wfw:comment>http://blog.bennyvision.com/wfwcomment.php?cid=6</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.bennyvision.com/rss.php?version=2.0&amp;type=comments&amp;cid=6</wfw:commentRss>
    

    <author>nospam@example.com (Chris Bensend)</author>
    <content:encoded>
    No matter the size of your network monitoring system, you need to be aware of what it&#039;s doing at any given time.  This doesn&#039;t just apply to Nagios - it applies to any open-ish monitoring system that you&#039;re able to customize with plugins/service checks.  And this doesn&#039;t apply to the services you&#039;re being tasked to monitor, either.  This means the &lt;strong&gt;monitoring system itself.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
There are several rules I follow when I set up a monitoring system, be it one monitoring server or three:&lt;br /&gt;
&lt;br /&gt;
1) Know when your monitoring system isn&#039;t monitoring.  It happens, people - between system load, software bugs, and just bad luck, your monitoring system &lt;strong&gt;&lt;em&gt;will&lt;/em&gt;&lt;/strong&gt; give up the ghost at some point.  &lt;em&gt;Know&lt;/em&gt; when that happens - monitor it out-of-band.  In other words, don&#039;t monitor your monitoring system with .. wait for it .. your monitoring system.  Write a shell script, perl program, or use a pre-existing plugin to watch over things.  Myself, I use the check_nagios plugin to monitor my Nagios servers via cron.  It doesn&#039;t depend on Nagios, but it runs every five minutes to make sure that Nagios is monitoring things and updating its status log as it should.  With the numbers of hosts and services that I monitor, if that status log isn&#039;t getting updated dozens or hundreds of times a minute, something&#039;s wrong.&lt;br /&gt;
&lt;br /&gt;
2) Know what software your clients are running.  I will leave the definition of &quot;software&quot; very open-ended - it doesn&#039;t matter that much.  It might mean the version of NRPE on *NIX hosts, the version of NSClient++ on a bunch of Windows servers, or the version of OpenView clients out in the field.  Know what version they&#039;re running.  I don&#039;t send notifications if any of them are out-of-date, but I can tell with one glance at a service group.  And before you say something like &quot;I install all my clients myself, I &lt;strong&gt;know&lt;/strong&gt; they&#039;re all up-to-date&quot;, think about virtual machine snapshots.  If one of your customers reverts to an older snapshot, are they still running the client you need them to?&lt;br /&gt;
&lt;br /&gt;
3) Know what configuration your clients are running.  Again, I&#039;ll purposely leave the definition of &quot;configuration&quot; loose.  Personally, I define it as the NSC.ini file versions running on my hundreds of Windows clients, as well as what version of Nagios plugins they&#039;re running.  I wrote a plugin to parse the config version of NSC.ini (it&#039;s just a VB script that parses the comments in the ini file), as well as a plugin to parse the version of my custom plugins (another VB script to parse a text file, similar to a changelog).  When I push out updates, I can watch the appropriate service group and see the changes propagate.&lt;br /&gt;
&lt;br /&gt;
4) Automate, automate, automate.  If you have over a few dozen hosts and you&#039;re editing files by hand, you&#039;re probably doing it wrong.  I use NConf and several custom perl programs to automate my configuration file generation for Nagios.  If you&#039;re not using Nagios, you may or may not have that luxury - but I have the capability to change a service check on hundreds of hosts with just a few mouse clicks.  Not all changes are that easy, of course, but the capabilities given to me by NConf and my programs are invaluable.  And when it comes to maintaining the clients, use the tools you [hopefully] already have in place to maintain the rest of those systems - Puppet, SCCM, whatever.  I use SCCM to maintain the clients and plugins on all of the Windows servers I monitor, and it works great.  Puppet takes care of the Linux boxes I&#039;m watching, too.&lt;br /&gt;
&lt;br /&gt;
These items may sound like common sense, but far too many sysadmins out there monitor their client hosts, but never monitor their &lt;em&gt;monitoring system.&lt;/em&gt;  Keep an eye on things, and not always in the obvious way.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Fri, 05 Aug 2011 20:58:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.bennyvision.com/index.php?/archives/6-guid.html</guid>
    
</item>
<item>
    <title>NRPE:  Handy program or Satan's mistress?</title>
    <link>http://blog.bennyvision.com/index.php?/archives/5-NRPE-Handy-program-or-Satans-mistress.html</link>
            <category>Nagios</category>
    
    <comments>http://blog.bennyvision.com/index.php?/archives/5-NRPE-Handy-program-or-Satans-mistress.html#comments</comments>
    <wfw:comment>http://blog.bennyvision.com/wfwcomment.php?cid=5</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.bennyvision.com/rss.php?version=2.0&amp;type=comments&amp;cid=5</wfw:commentRss>
    

    <author>nospam@example.com (Chris Bensend)</author>
    <content:encoded>
    Over the years, I have spent a lot of time troubleshooting client/server problems as I create new Nagios service checks.  I have compiled a list of common problems with the NRPE (Nagios Remote Plugin Executor) client/server, and how to fix them.  Perhaps you&#039;ll find them useful.  While NRPE is a great little program, sometimes things are not what they seem to be.&lt;br /&gt;
&lt;br /&gt;
Overview:  NRPE, as noted above, is a remote plugin executor.  It allows you to execute Nagios plugins on a remote host, and passes along the result.  Many plugins are not network aware, like check_disk or check_swap.  NRPE can be used to run these local-host-only plugins on the remote system.&lt;br /&gt;
&lt;br /&gt;
Common problems:&lt;br /&gt;
&lt;br /&gt;
1) &quot;NRPE: Unable to read output&quot;&lt;br /&gt;
&lt;br /&gt;
Oh, ${DEITY} bless this error message.  This is an overly generic &quot;wow, something&#039;s wrong&quot; message, and could mean anything from the NRPE daemon not running properly on the remote client to being blocked by a firewall.  Let&#039;s examine this scenario a bit more, and list questions you must ask yourself when faced with this error.&lt;br /&gt;
&lt;br /&gt;
Is the remote host running the NRPE daemon?  Are you sure?  Ie, have you checked to make sure it&#039;s actually up and running?&lt;br /&gt;
&lt;br /&gt;
Is this host allowed to connect to NRPE on the remote host?  Check the allowed_hosts directive in the remote host&#039;s NRPE configuration file (typically /etc/nrpe.cfg or /etc/nagios/nrpe.cfg, your mileage may vary).  The allowed_hosts directive is a comma-delimited list of IP addresses that NRPE will allow to talk to the NRPE daemon.  Make sure the IP address of the host you&#039;re connecting from is in this list!  If you need to add it, make the change and restart the NRPE daemon so the change takes effect.&lt;br /&gt;
&lt;br /&gt;
Is the remote host behind a firewall, or running a firewall?  If so, have you allowed the NRPE port (5666/TCP)?&lt;br /&gt;
&lt;br /&gt;
If the daemon is up, what IP/port is it listening on?  Check the server_port directive in nrpe.cfg.  Now, check server_address.  Are they what you expect?  If they are commented out in the config file, NRPE will run on all configured IP addresses, on TCP port 5666.  Check the output of &#039;netstat -an | grep 5666&#039; - is it what you expect?&lt;br /&gt;
&lt;br /&gt;
Is the remote command you&#039;re trying to execute using sudo to do it?  If so, check whatever log you have sudo complaining to - it may be complaining about needing a TTY (set &#039;Defaults:nagios !requiretty&#039;, replacing &#039;nagios&#039; with whatever user NRPE is running as), or the command you&#039;re trying to run may not match the sudoers definition you have set up (this will show up in the log as &#039;command not allowed&#039;, fix your sudoers definition).  Or, you may have forgotten to configure sudo completely!&lt;br /&gt;
&lt;br /&gt;
2) &quot;Connection refused&quot;&lt;br /&gt;
&lt;br /&gt;
Go start NRPE.  No, really.&lt;br /&gt;
&lt;br /&gt;
If it &lt;strong&gt;is&lt;/strong&gt; running and listening to the IP/port you expect, is there a firewall in the way?  If there is, resist the urge to just disable the firewall - it probably should be running.  Instead, learn how to configure the firewall properly to allow the connections from your Nagios server.  Be sure you allow it only from your server - you don&#039;t want the unwashed masses to connect to your NRPE daemon!&lt;br /&gt;
&lt;br /&gt;
3) &quot;Return code of 127 for check of service &quot;bob&quot; on host &quot;foo&quot; ws out of bounds.  Make sure the plugin you&#039;re trying to run actually exists&quot;&lt;br /&gt;
&lt;br /&gt;
While this one appears fairly straight-forward, it still causes no end of heartache.  As the error message states, check to make sure the plugin exists.  And then, check to be sure that the user the NRPE daemon is running as has access to the plugin (including execute privileges!), and to the entire directory path to the plugin.  The user doesn&#039;t need &lt;strong&gt;write&lt;/strong&gt; permissions, it just needs to be able to get to it (with execute permissions for the user on all directories in the path).&lt;br /&gt;
&lt;br /&gt;
For example, if your plugin &#039;bob&#039; is in /usr/local/nagios/libexec, check all elements of the path:&lt;br /&gt;
&lt;br /&gt;
[root@nagioshost ~/]# ls -ld /usr /usr/local /usr/local/nagios /usr/local/nagios/libexec&lt;br /&gt;
&lt;br /&gt;
drwxr-xr-x  root      root     4096 Feb 15 2009  /usr&lt;br /&gt;
drwx-------   root     root     4096 Feb 15  2009 /usr/local       &lt;--- problem!&lt;br /&gt;
drwxr-xr-x  nagios  nagios  4096 Feb 15  2009  /usr/local/nagios&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are, of course, many other errors that can pop up with NRPE and monitoring remote hosts.  But these steps are good starting points to being troubleshooting, and take care of the most common errors.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 05 Jul 2011 17:59:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.bennyvision.com/index.php?/archives/5-guid.html</guid>
    
</item>
<item>
    <title>Movies on demand, on a budget, part II</title>
    <link>http://blog.bennyvision.com/index.php?/archives/4-Movies-on-demand,-on-a-budget,-part-II.html</link>
            <category>Real life</category>
    
    <comments>http://blog.bennyvision.com/index.php?/archives/4-Movies-on-demand,-on-a-budget,-part-II.html#comments</comments>
    <wfw:comment>http://blog.bennyvision.com/wfwcomment.php?cid=4</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.bennyvision.com/rss.php?version=2.0&amp;type=comments&amp;cid=4</wfw:commentRss>
    

    <author>nospam@example.com (Chris Bensend)</author>
    <content:encoded>
    This is a followup to the first blog posting, &lt;a href=&quot;http://blog.bennyvision.com/index.php?/archives/1-Movies-on-demand,-on-a-budget.html&quot;&gt;Movies on demand, on a budget&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
First Pro-Tip:  Don&#039;t buy the Seagate NAS I selected.  It is drastically, shockingly, grossly underpowered.  Running backups to an external USB drive rendered the unit unusable - we couldn&#039;t even watch a movie while backups were running.  And the backups are not incremental - they are full, copy-the-whole-thing backups.  So, each time it started to backup my TV shows (650GB) or my movies (600GB), it would render the NAS largely &lt;strong&gt;useless for a day or more.&lt;/strong&gt;  Hell, the web interface wouldn&#039;t even work reliably while backups were running.&lt;br /&gt;
&lt;br /&gt;
Oh, and get this - the &lt;em&gt;Seagate&lt;/em&gt; BlackArmor 220 wouldn&#039;t back up files to a &lt;em&gt;Seagate&lt;/em&gt; 2TB drive - the rsync process would fail every time.  I tried this with two different Seagate 2TB drives, and two NAS units.  Seagate support couldn&#039;t figure that one out, so I finally bought Western Digital drives, and it works great.  It just buries the poor, pitiful little CPU when it does. but at least it works.&lt;br /&gt;
&lt;br /&gt;
Second Pro-Tip:  I am not very experienced with video files and encoding formats, so ripping to AVI with various encodings was probably a mistake.  I have since begun re-ripping my DVD collection to pure ISO images.  They are &lt;em&gt;much&lt;/em&gt; larger files (most are 4.4GB each), but I get all the special features, the DVD menus, and most importantly:  the DVD quality.  Some of the AVI qualities were &lt;em&gt;terrible.&lt;/em&gt;  I&#039;m sure I could have figured that out, but now I&#039;m just ripping everything to ISO and getting all of the things I wanted.  God help me when I start working on the Blu-Ray movies - those suckers can be upwards of 30GB each...&lt;br /&gt;
&lt;div class=&quot;serendipity_imageComment_left&quot; style=&quot;width: 100px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:3 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;100&quot; height=&quot;110&quot;  src=&quot;http://blog.bennyvision.com/uploads/DS710.serendipityThumb.jpg&quot; title=&quot;Synology DS710+ NAS&quot; alt=&quot;Synology DS710+ NAS&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Synology DS710+ NAS&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Now, you may be asking - well, if the Seagate NAS is such a dog, what do you use?  I bought a Synology DS710+ with a DX510 expansion shelf.  Yeah, &lt;strong&gt;much&lt;/strong&gt; more expensive, but &lt;strong&gt;MUCH&lt;/strong&gt; more powerful/capable/expandable/useful.  Their management interface is light years ahead of Seagate&#039;s, it&#039;s rock-solid, and I can take this bad boy up to 21TB raw.  And since I&#039;m re-ripping into ISO images, I need the expandability.&lt;br /&gt;
&lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 100px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:4 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;100&quot; height=&quot;110&quot;  src=&quot;http://blog.bennyvision.com/uploads/DX510.serendipityThumb.jpg&quot; title=&quot;Synology DX510 expansion unit&quot; alt=&quot;Synology DX510 expansion unit&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Synology DX510 expansion unit&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Oh, and by the way, this NAS has a 1.6GHz processor under the hood.  I haven&#039;t been able to get it to hit 20% utilization yet, even when copying ISO files and maxing out the network.&lt;br /&gt;
&lt;br /&gt;
This NAS rocks.  That is all.&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 11 Jan 2011 18:57:37 +0000</pubDate>
    <guid isPermaLink="false">http://blog.bennyvision.com/index.php?/archives/4-guid.html</guid>
    
</item>
<item>
    <title>Nagios Plugins - Part 2:  Practical Examples for Nagios Commands and Plugins</title>
    <link>http://blog.bennyvision.com/index.php?/archives/3-Nagios-Plugins-Part-2-Practical-Examples-for-Nagios-Commands-and-Plugins.html</link>
            <category>Nagios</category>
    
    <comments>http://blog.bennyvision.com/index.php?/archives/3-Nagios-Plugins-Part-2-Practical-Examples-for-Nagios-Commands-and-Plugins.html#comments</comments>
    <wfw:comment>http://blog.bennyvision.com/wfwcomment.php?cid=3</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.bennyvision.com/rss.php?version=2.0&amp;type=comments&amp;cid=3</wfw:commentRss>
    

    <author>nospam@example.com (Chris Bensend)</author>
    <content:encoded>
    In &lt;a href=&quot;http://blog.bennyvision.com/index.php?/archives/2-Nagios-Plugins-Part-1-An-Introduction-to-Nagios-Plugins.html&quot;&gt;Part 1&lt;/a&gt;, I described what Nagios plugins are, a very basic primer on building them from scratch, and a simple example of constructing a Nagios command using a plugin.&lt;br /&gt;
&lt;br /&gt;
Typically, functional Nagios commands are not quite as simple as my earlier demonstration.  For example, I have the following command configured on one of my servers:&lt;br /&gt;
&lt;br /&gt;
define command {&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;$USER1$/check_nrpe -H $HOSTADDRESS$ -u -t $USER11$ -c CheckDriveSize -a ShowAll=long MaxWarnUsed=&quot;$ARG1$&quot; MaxCritUsed=&quot;$ARG2$&quot; Drive=&quot;$ARG3$&quot;&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_name check_windows_disk_custom&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
This command uses the check_nrpe plugin to query an NSClient++ agent on a remote Windows system to check a Windows volume&#039;s utilization.  It uses three arguments - $ARG1$, $ARG2$, and $$ARG3$, which are configured to be the warning threshold, critical threshold, and the volume to check respectively.&lt;br /&gt;
&lt;br /&gt;
It also uses a macro ($USER11$), which is a variable set in resource.cfg.  Typical Nagios installations can have up to 32 user-defined macros set in this file, and the CGIs will refuse to display anything in this file via the web server.  Therefore, it is handy to define variables such as SNMP communities, passwords, etc here.  NOTE:  These variables will be exposed in the system&#039;s process listing, so if you have other users on your Nagios system and any of these items are sensitive, find another way to do it!&lt;br /&gt;
&lt;br /&gt;
Plugin and process timeouts are another handy thing to define in resource.cfg - the $USER11$ macro used above is actually a global timeout value (in seconds) for any commands I define using check_nrpe.  That way, if I decide to change the timeout value, I change it in one place and not dozens.&lt;br /&gt;
&lt;br /&gt;
While these &lt;b&gt;are&lt;/b&gt; user-defined, it is recommended to leave $USER1$ configured as the full path to the Nagios plugins.  If you have a different location for some of them, define an additional macro for that path and use it in the same way.&lt;br /&gt;
&lt;br /&gt;
So, let&#039;s create a new Nagios check command that uses the check_rpc plugin and some arguments, so you can see how it all comes together:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;Building a flexible Nagios command&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Imagine that you need to test NFS on a remote server.  Doing this is simple, as the Nagios plugins include one named check_rpc, which can test any of the portmapper-provided services.  So, you create a Nagios check command to test NFS:&lt;br /&gt;
&lt;br /&gt;
# &#039;check_nfs&#039; command definition&lt;br /&gt;
define command{&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_name    check_nfs&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_line    $USER1$/check_rpc -H $HOSTADDRESS$ -C nfs&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;
&lt;br /&gt;
This will work well.  But now, your boss just ran in and said that you need to test mountd as well.  OK, fine, here we go:&lt;br /&gt;
&lt;br /&gt;
# &#039;check_mountd&#039; command definition&lt;br /&gt;
define command{&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_name    check_mountd&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_line    $USER1$/check_rpc -H $HOSTADDRESS$ -C mountd&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;
&lt;br /&gt;
There we go!  Ooops, he just returned, and said that it&#039;s absolutely critical to test rquotad as well.  You could make a third check command to do this:&lt;br /&gt;
&lt;br /&gt;
# &#039;check_rquotad&#039; command definition&lt;br /&gt;
define command{&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_name    check_rquotad&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_line    $USER1$/check_rpc -H $HOSTADDRESS$ -C rquotad&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;
&lt;br /&gt;
But isn&#039;t this a pain?  Now, you have three separate check commands to do the same basic thing - test to make sure an RPC program is available.  How about a much simpler, and more flexible, check command:&lt;br /&gt;
&lt;br /&gt;
# &#039;check_rpc_program&#039; command definition&lt;br /&gt;
define command{&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_name    check_rpc_program&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_line    $USER1$/check_rpc -H $HOSTADDRESS$ -C $ARG1$&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;
&lt;br /&gt;
This one check command can take care of the previous three, simply by replacing one of the parameters to check_rpc with an argument (ARG1) that is specified in the Nagios service definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;OK, groovy.  How can I use this?&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s very simple - you just need to specify a single argument to the check command when you&#039;re defining your Nagios services.  To specify arguments, you must separate them with an exclaimation mark.  So, a service to test rquotad might look like:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# myhost - rquotad service&lt;br /&gt;
define service{&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;use                             generic-service&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;host_name                       myhost&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;service_description             rquotad RPC service&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;check_period                    24x7&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;contact_groups                  admins-email&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;notification_interval           240&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;notification_period             24x7&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;notification_options            w,u,c,r&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;check_command                   check_rpc!rquotad&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt;
&lt;br /&gt;
Once you understand the flexibility of the Nagios plugins, it becomes very easy to build complex service checks to test whatever you need to test!&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Mon, 16 Aug 2010 13:50:43 +0000</pubDate>
    <guid isPermaLink="false">http://blog.bennyvision.com/index.php?/archives/3-guid.html</guid>
    
</item>
<item>
    <title>Nagios Plugins - Part 1: An Introduction to Nagios Plugins</title>
    <link>http://blog.bennyvision.com/index.php?/archives/2-Nagios-Plugins-Part-1-An-Introduction-to-Nagios-Plugins.html</link>
            <category>Nagios</category>
    
    <comments>http://blog.bennyvision.com/index.php?/archives/2-Nagios-Plugins-Part-1-An-Introduction-to-Nagios-Plugins.html#comments</comments>
    <wfw:comment>http://blog.bennyvision.com/wfwcomment.php?cid=2</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.bennyvision.com/rss.php?version=2.0&amp;type=comments&amp;cid=2</wfw:commentRss>
    

    <author>nospam@example.com (Chris Bensend)</author>
    <content:encoded>
    Nagios is an open-source network monitoring system.  I&#039;ve been using it for a decade now, since the days of Netsaint 0.0.4.  I think it&#039;s a great product, and is my clear favorite when I need to monitor hosts or services on a network.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;The Plugins - an Overview&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
Nagios itself is a daemon that schedules service and host checks, handles notifications, and a web interface to view status and issue commands to the daemon.  Nagios is great, but it&#039;s nothing without the plugins.  The plugins are the service and host checks that actually &lt;em&gt;test&lt;/em&gt; things, and present the results back to the Nagios daemon.&lt;br /&gt;
&lt;br /&gt;
For example, when you want to make sure your Sendmail server is up and accepting messages, you can connect to TCP port 25 (SMTP) and see if it&#039;s listening.  Keep in mind, this only tests to make sure the daemon is accepting connections, not that the mail is routed correctly or filtering properly or anything like that.  This is a very simple example.&lt;br /&gt;
&lt;br /&gt;
To connect to port 25, Nagios has no idea what to do.  It needs a &lt;em&gt;plugin&lt;/em&gt; to do so - in this case, check_smtp.  This plugin will make the required connection to TCP port 25, look for the correct greeting, do authentication if need be, and then present the results to Nagios.&lt;br /&gt;
&lt;br /&gt;
There are &lt;em&gt;many&lt;/em&gt; plugins available...  There are approximately 50 or so available via the base plugin distribution, and thousands more available via the Nagios community.  And, in additional articles, I&#039;ll show how easy it is to create your own plugins.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;Building the Base Plugins&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
The first thing to address is:  packages or source?  Chances are pretty good that there is a pre-built package available for your Linux distribution if you&#039;re running Linux, or for whatever UNIX variant you&#039;re running.  I build my plugins from source, simply because it gives me more control about where the binaries end up, what features are included, etc.  This is a decision you must make - do you want to build them from source, or install a package if one is available?&lt;br /&gt;
&lt;br /&gt;
If you want to build from source, continue on with this section.  I&#039;m making the assumption that you&#039;re on a relatively &quot;normal&quot; distribution like Linux, Solaris, or BSD.  If you&#039;re on a &quot;not normal&quot; distribution like AIX, good luck.  Yes, it can be done.  No, &lt;em&gt;nothing&lt;/em&gt; is fun on AIX.&lt;br /&gt;
&lt;br /&gt;
First, go get the source distribution from the Nagios site.  It can be found here: &lt;a href=&quot;http://www.nagios.org/download/plugins&quot;&gt;Nagios plugins&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Download the file and save it on your Nagios server.  Use the tar command to unpack it like so:&lt;br /&gt;
&lt;br /&gt;
tar zxvf nagios-plugins-X.Y.Z.tar.gz   (where X.Y.Z is the version number)&lt;br /&gt;
&lt;br /&gt;
This command will uncompress the gzip&#039;ed file, and unpack the tar archive into a nagios-plugins-X.Y.Z directory.  cd into that new directory.&lt;br /&gt;
&lt;br /&gt;
Now, the simple thing to do here is run configure with no options.  This will create the Makefile with default options, and is suitable for probably 90% of you.  To do so, simply run the configure script with no options:&lt;br /&gt;
&lt;br /&gt;
./configure&lt;br /&gt;
&lt;br /&gt;
However, if you&#039;d like to see what options are available:&lt;br /&gt;
&lt;br /&gt;
./configure --help&lt;br /&gt;
&lt;br /&gt;
Once you have settled on the options, build the Makefile.  When that is complete, compile the plugins:&lt;br /&gt;
&lt;br /&gt;
make all&lt;br /&gt;
&lt;br /&gt;
And when you&#039;re ready, install them:&lt;br /&gt;
&lt;br /&gt;
make install&lt;br /&gt;
&lt;br /&gt;
Now, a few notes of interest:  Doing this entire process as a non-privileged user works just fine, as long as the target directory (--prefix/libexec) exists and is writable by the non-privileged user.  If it doesn&#039;t or isn&#039;t, do this as the root user.  Your individual security policy/process may dictate other courses of action, be sure you follow the local policy that is required of you.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;I&#039;ve Built the Plugins - Now What the Heck Do I Do?&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
The resulting binaries, regardless of whether you built from source or installed a distribution&#039;s package, landed somewhere on the filesystem.  If you built from source, the default path is /usr/local/nagios/libexec.  If you built from source but you altered the path, you already know where they are.  If you installed a package, go find them.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve found the binaries and have cd&#039;ed into the directory, you can immediately begin exploring their options.  All of the Nagios base plugins should include the &#039;-h&#039; option which gives the help output for the plugin.  This will list the available options and what arguments those options expect.  For example, the check_rpc plugin gives the following output:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[nagios@host]$ ./check_rpc -h&lt;br /&gt;
check_rpc v1.4.14 (nagios-plugins 1.4.14)&lt;br /&gt;
The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute&lt;br /&gt;
copies of the plugins under the terms of the GNU General Public License.&lt;br /&gt;
For more information about these matters, see the file named COPYING.&lt;br /&gt;
Copyright (c) 2002 Karl DeBisschop/Truongchinh Nguyen/Subhendu Ghosh&lt;br /&gt;
&lt;br /&gt;
Check if a rpc service is registered and running using&lt;br /&gt;
      rpcinfo -H host -C rpc_command&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 check_rpc -H host -C rpc_command [-p port] [-c program_version] [-u|-t] [-v]&lt;br /&gt;
 check_rpc [-h | --help]&lt;br /&gt;
 check_rpc [-V | --version]&lt;br /&gt;
&lt;br /&gt;
  &lt;host&gt;          The server providing the rpc service&lt;br /&gt;
  &lt;rpc_command&gt;   The program name (or number).&lt;br /&gt;
  &lt;program_version&gt; The version you want to check for (one or more)&lt;br /&gt;
                    Should prevent checks of unknown versions being syslogged&lt;br /&gt;
                    e.g. 2,3,6 to check v2, v3, and v6&lt;br /&gt;
  [-u | -t]       Test UDP or TCP&lt;br /&gt;
  [-v]            Verbose&lt;br /&gt;
  [-v -v]         Verbose - will print supported programs and numbers&lt;br /&gt;
&lt;br /&gt;
Send email to &lt;a href=&quot;mailto:&amp;#110;a&amp;#103;ios-&amp;#117;s&amp;#101;r&amp;#115;&amp;#64;&amp;#108;&amp;#105;&amp;#115;t&amp;#115;&amp;#46;&amp;#115;ourc&amp;#101;&amp;#102;o&amp;#114;&amp;#103;&amp;#101;.&amp;#110;&amp;#101;t&quot;&gt;&amp;#110;a&amp;#103;&amp;#105;&amp;#111;s&amp;#45;u&amp;#115;ers&amp;#64;li&amp;#115;&amp;#116;&amp;#115;&amp;#46;s&amp;#111;&amp;#117;rce&amp;#102;o&amp;#114;&amp;#103;&amp;#101;.n&amp;#101;&amp;#116;&lt;/a&gt; if you have questions&lt;br /&gt;
regarding use of this software. To submit patches or suggest improvements,&lt;br /&gt;
send email to &lt;a href=&quot;mailto:&amp;#110;ag&amp;#105;&amp;#111;sp&amp;#108;&amp;#117;&amp;#103;&amp;#45;de&amp;#118;&amp;#101;&amp;#108;&amp;#64;&amp;#108;&amp;#105;&amp;#115;&amp;#116;s&amp;#46;source&amp;#102;org&amp;#101;.&amp;#110;&amp;#101;&amp;#116;&amp;#46;&quot;&gt;nag&amp;#105;&amp;#111;&amp;#115;plu&amp;#103;-dev&amp;#101;l&amp;#64;li&amp;#115;ts&amp;#46;sou&amp;#114;c&amp;#101;f&amp;#111;rg&amp;#101;.ne&amp;#116;.&lt;/a&gt;&lt;br /&gt;
Please include version information with all correspondence (when possible,&lt;br /&gt;
use output from the --version option of the plugin itself).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try the &#039;-h&#039; option with several of the plugins just to get an idea of what is available.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;Building a Check Command&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Now that the plugins are installed, you need to create a check command.  A check command is a command that is used within Nagios to test a real host or service.  It ties a plugin together with its arguments and makes it useful for Nagios.  Here is an example:&lt;br /&gt;
&lt;br /&gt;
define command {&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_name      check_my_website&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;command_line        $USER1$/check_http -H $HOSTADDRESS$ -u $ARG1$&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
This defines a check command that will connect to the host you&#039;re checking, and requires a single argument - the URL you want to check.  It will return the result of the plugin&#039;s test to Nagios, and Nagios will alert accordingly.  If you&#039;re curious, the $USER1$ macro is, by default, set to the location of the plugin binaries.  The $HOSTADDRESS$ macro is typically the IP address of the host being tested.&lt;br /&gt;
&lt;br /&gt;
Once you have this command built, you can use it for Nagios services.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;That&#039;s a Wrap&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
That&#039;s about as simple as you can get when it comes to plugins and check commands.  There are &lt;em&gt;MANY&lt;/em&gt; more options and possibilities, I only wanted to give a very basic set of instructions for people sticking their toe in the water.  A very good next step is to consult the official Nagios documentation to learn more about the options available to you for building check commands and using plugins:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.nagios.org/documentation&quot;&gt;The official Nagios documentation&lt;/a&gt;&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 10 Aug 2010 13:01:29 +0000</pubDate>
    <guid isPermaLink="false">http://blog.bennyvision.com/index.php?/archives/2-guid.html</guid>
    
</item>
<item>
    <title>Movies on demand, on a budget</title>
    <link>http://blog.bennyvision.com/index.php?/archives/1-Movies-on-demand,-on-a-budget.html</link>
            <category>Real life</category>
    
    <comments>http://blog.bennyvision.com/index.php?/archives/1-Movies-on-demand,-on-a-budget.html#comments</comments>
    <wfw:comment>http://blog.bennyvision.com/wfwcomment.php?cid=1</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.bennyvision.com/rss.php?version=2.0&amp;type=comments&amp;cid=1</wfw:commentRss>
    

    <author>nospam@example.com (Chris Bensend)</author>
    <content:encoded>
    I recently finished with a video project at home - video on demand.&lt;br /&gt;
&lt;br /&gt;
For many years, I&#039;ve wanted to have all of my movies on the network, so I could view them from any of our TVs or computers, whenever I liked, without hunting for the physical DVD.  Not to mention, I&#039;ve grown weary of the four large DVD shelving units in the living room.  What a waste of space!&lt;br /&gt;
&lt;br /&gt;
So, I finally built a video-on-demand system that stores all of my movies digitally.  They are available to any TV in the house, whenever I like, and the DVDs are now stored in the basement.  I can pick any of our movies or TV shows on DVD via a graphical menu and watch, just as if I had loaded the DVD.&lt;br /&gt;
&lt;br /&gt;
There are many ways of doing this, some of them cheaper than the solution I built.  That&#039;s fine - I&#039;m just detailing &lt;strong&gt;one&lt;/strong&gt; possibility that works very well for us.  I chose the products I chose due to features, reliability, and cost.  You may choose others if you&#039;re working on a similar project.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;Movie Storage&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 90px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:2 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;90&quot; height=&quot;90&quot;  src=&quot;http://blog.bennyvision.com/uploads/Seagate_BlackArmor_220.serendipityThumb.jpg&quot; title=&quot;Seagate BlackArmor 220&quot; alt=&quot;Seagate BlackArmor 220&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Seagate BlackArmor 220&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
There are many ways to store the movies...  I chose a NAS (&lt;strong&gt;N&lt;/strong&gt;etwork &lt;strong&gt;A&lt;/strong&gt;ttached &lt;strong&gt;S&lt;/strong&gt;torage) with 2 TB of storage, gigabit ethernet, and simple backup abilities.  The one I selected was the Seagate BlackArmor 220 - it has dual 2 TB drives in it, giving it a maximum of 4 TB of capacity.  I opted for RAID 1 (mirrored drives) for redundancy, so I have a capacity of 2 TB in the one unit.  It has USB ports on it, allowing me to plug an external drive in to back up all of my movie files.  The speed is not blazing, but it is fast enough, reliable, and has a decent enough web interface for management.&lt;br /&gt;
&lt;br /&gt;
Eventually, I will have the NAS and two 2 TB external hard drives.  I will keep one drive plugged into the NAS for a month, running backups to it.  At the end of the month, I&#039;ll take it to the bank and put it in the safety deposit box, retrieving the other 2 TB drive.  That will be plugged into the NAS for the following month.  I will keep rotating them between the NAS and the safety deposit box, ensuring that I won&#039;t lose more than a month&#039;s worth of changes if the NAS fails.  Yes, the NAS is RAID and therefore should not lose data if I lose a drive, but RAID has its own problems, and the NAS itself might have issues that could lose data.  Always have backups, people.  It took me about 10 weeks of ripping on two computers simultaneously to rip all of my DVDs, I don&#039;t intend to have to do that ever again.&lt;br /&gt;
&lt;br /&gt;
Cost:  ~ $400&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;Data Format&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
I chose AVI for the data format...  It is mostly portable, has good video/audio quality, and is good enough for me.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;Media Player&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;div class=&quot;serendipity_imageComment_left&quot; style=&quot;width: 110px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:1 --&gt;&lt;img class=&quot;serendipity_image_left&quot; width=&quot;110&quot; height=&quot;110&quot;  src=&quot;http://blog.bennyvision.com/uploads/WD_TV_Live.serendipityThumb.jpg&quot; title=&quot;Western Digital WD TV Live media player&quot; alt=&quot;Western Digital WD TV Live media player&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Western Digital WD TV Live media player&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
I chose the WD TV Live media player.  It is a small box, just a bit larger than a pack of cigarettes.  It has a 10/100 Mb ethernet port, HDMI output, optical audio output, and composite and component video out.  Its menu system is fairly rudimentary, but it works well and is reasonably stable.  Its not the fastest thing in the world, so if you flip between menus/screens faster than it can keep up, you may send it off into la-la land.  If you realize its limitations and take your time, it&#039;s pretty close to bulletproof.&lt;br /&gt;
&lt;br /&gt;
It also plays about every media format known to man, so it will likely be able to show you your pictures, play your music, and almost do your dishes.&lt;br /&gt;
&lt;br /&gt;
Cost:  ~ $89 per player (2 for us)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;The Software&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
You need software to rip DVDs, and some of this software may or may not be legal in your area.  Keep that in mind - I am not advocating you do anything illegal.&lt;br /&gt;
&lt;br /&gt;
I purchased a software package called DVDFab, available at &lt;a href=&quot;http://www.dvdfab.com/&quot;&gt;DVDFab.com&lt;/a&gt;.  Their support is great, they have frequent updates, and it&#039;s very reasonably priced (under $100 for &lt;em&gt;two&lt;/em&gt; years of support).  I used it to rip my DVDs into AVI files, which I then stored on the NAS.&lt;br /&gt;
&lt;br /&gt;
Note - if you choose to use DVDFab, you need to buy both the &quot;DVD to DVD&quot; product as well as the &quot;DVD to Mobile&quot;.  The &quot;DVD to DVD&quot; product is the base that all the other options require, and the &quot;DVD to Mobile&quot; option allows you to rip directly to AVI files (and many other formats suitable for portable devices).&lt;br /&gt;
&lt;br /&gt;
One nice thing about DVDFab - they give you 30 days to try any of their software to make sure it will work for you.  So, download it, take it for a spin, you probably won&#039;t be disappointed!&lt;br /&gt;
&lt;br /&gt;
Cost:  ~ $80&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;u&gt;How the Whole Thing Comes Together&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
It&#039;s pretty simple in the end:&lt;br /&gt;
&lt;br /&gt;
DVD -&gt; DVDFab -&gt; AVI file -&gt; NAS -&gt; WD TV Live -&gt; Eyeballs and ear holes&lt;br /&gt;
&lt;br /&gt;
I used DVDFab to rip all of my physical DVDs to AVI files.  These AVIs are stored on the NAS - I have saved over 400 movies to my NAS so far, and I still have considerable capacity free (probably enough for another 300 or so movies and TV shows).&lt;br /&gt;
&lt;br /&gt;
The WD TV Live units connect to the NAS, and present a GUI listing of the movies and TV shows on the NAS.  I select the one I want to watch, and voila - I&#039;m watching my DVDs without touching a disk.&lt;br /&gt;
&lt;br /&gt;
You may be thinking &quot;Wow, is this dude lazy or what?!?  He can&#039;t even expend the energy to put a DVD in the player?&quot;  Well, that&#039;s not what this is about.  This project is about having &lt;strong&gt;any&lt;/strong&gt; of my movies or TV shows available at the click of a button, with no hunting for disks.  No storing hundreds or thousands of DVD cases in the living room.  No misplaced or scratched DVDs.&lt;br /&gt;
&lt;br /&gt;
And it works &lt;em&gt;beautifully.&lt;/em&gt;  For under $700, I can now pick a movie from either TV in the house in about 15 seconds.  I can pause them, play different shows on the two TVs at once, as well as play almost any other format of media as I choose to.&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Sat, 07 Aug 2010 21:57:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.bennyvision.com/index.php?/archives/1-guid.html</guid>
    
</item>

</channel>
</rss>
