OpsView/Nagios monitoring of MythTV
Download the latest version (v1.1) to '/usr/local/nagios/libexec/' and mark the script as executable. Install perl dependencies:
# yum install perl-libwww-perl perl-XML-Simple
Ensure the opsview/nagios machine can access the IPv4 TCP port 6544 on the mythtv backend. By default the perl simple library will use a web proxy if it is configured (e.g. with 'http_proxy' in the environment). I created a modified script that uses the UserAgent object instead of the Simple client. This allows control over the proxy (which by default is not enabled).
Create a 'Service Checks' for the script
Add a host to the configuration and apply the service to the host.
Links
Appendices
patch
--- check_mythtv.pl~ 2011-10-02 17:12:46.000000000 +1300 +++ check_mythtv.pl 2011-10-02 17:23:40.000000000 +1300 @@ -23,7 +23,7 @@ use lib "/usr/lib64/nagios/plugins"; use utils qw($TIMEOUT %ERRORS &print_revision &support); use Getopt::Long; -use LWP::Simple; +use LWP::UserAgent; use XML::Simple; my ($opt_p, $opt_H, $port, $hostname); sub print_usage (); @@ -71,10 +71,16 @@ } # Main code +my $ua = LWP::UserAgent->new; +my $response = $ua->get("http://$hostname:$port/xml"); +if (!$response->is_success) { + print "Failed to get http://$hostname:$port/xml\n"; + exit $ERRORS{'CRITICAL'}; +} -my $xml = get("http://$hostname:$port/xml"); +my $xml = $response->decoded_content; if (!defined $xml) { - print "Failed to get http://$hostname:$port/xml\n"; + print "Failed to decode response from http://$hostname:$port/xml\n"; exit $ERRORS{'CRITICAL'}; }