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'};
}

