Author: glen Date: Mon Mar 1 15:03:01 2010 GMT Module: packages Tag: HEAD ---- Log message: - initial
---- Files affected: packages/nagios-plugin-check_asterisk_skype: check_asterisk_skype (NONE -> 1.1) (NEW), check_asterisk_skype.cfg (NONE -> 1.1) (NEW), nagios-plugin-check_asterisk_skype.spec (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype diff -u /dev/null packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype:1.1 --- /dev/null Mon Mar 1 16:03:01 2010 +++ packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype Mon Mar 1 16:02:53 2010 @@ -0,0 +1,98 @@ +#!/usr/bin/perl -w +# 2010 Elan Ruusamäe <[email protected]> +# License: GPL v2 + +use strict; +use Getopt::Long; +my(%opts); +my(%ERRORS) = (OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3); +my($VERSION) = '0.1'; +my($message, $status); + +##################################################################### +sub print_usage() { + print "Usage: check_asterisk_skype\n"; + print " check_raid -v\n"; + print " check_raid -h\n"; +} + +sub print_help() { + print "check_asterisk_skype, v$VERSION\n"; + print "Copyright (c) 2010 Elan Ruusamäe <[email protected]> + +This plugin reports the asterisk skype status +"; + print_usage(); +} + +sub check_skype_license { + open(my $fh , "asterisk -rx 'skype show licenses' 2>&1 |") or die $!; + my $channels = 0; + while (<$fh>) { + chomp; + + if (my($file, $key, $expires, $hostid, $channels, $status) = m/ + File:\s+(\S+)\s+--\s+ + Key:\s+(\S+)\s+--\s+ + Expires:\s+([-\d]+)\s+--\s+ + Host-ID:\s+([\da-f:]+)\s+--\s+ + Channels:\s+(\d+)\s+\((\S+)\) + /x) { + $message .= "License $status: $channels channels, expires $expires"; + if ($status ne 'OK') { + $status = $ERRORS{CRITICAL}; + } + next; + } + + # This cames from STDERR actually. + if (/Unable to connect/) { + $status = $ERRORS{CRITICAL}; + $message .= $_; + return; + } + } + close $fh; +} + +##################################################################### +$ENV{'BASH_ENV'} = ''; +$ENV{'ENV'} = ''; + +Getopt::Long::Configure('bundling'); +GetOptions( + "v" => \$opts{v}, "version" => \$opts{v}, + "h" => \$opts{h}, "help" => \$opts{h}, + "d" => \$opts{d}, "debug" => \$opts{d}, +); + +if ($opts{v}) { + print "check_raid Version $VERSION\n"; + exit $ERRORS{'OK'}; +} +if ($opts{h}) { + print_help(); + exit $ERRORS{'OK'}; +} + +$status = $ERRORS{OK}; +$message = ''; + +check_skype_license; + +if ($message) { + if ($status == $ERRORS{OK}) { + print "OK: "; + } elsif ($status == $ERRORS{WARNING}) { + print "WARNING: "; + } elsif ($status == $ERRORS{CRITICAL}) { + print "CRITICAL: "; + } else { + print "UNKNOWN: "; + } + print "$message\n"; +} else { + $status = $ERRORS{UNKNOWN}; + print "Something went very wrong.\n"; +} +exit $status; ================================================================ Index: packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype.cfg diff -u /dev/null packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype.cfg:1.1 --- /dev/null Mon Mar 1 16:03:01 2010 +++ packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype.cfg Mon Mar 1 16:02:53 2010 @@ -0,0 +1,19 @@ +# Usage: +# check_asterisk_skype +define command { + command_name check_asterisk_skype + command_line @plugindir@/check_asterisk_skype $ARG1$ +} + +define service { + use generic-service + name asterisk_skype + service_description asterisk_skype + register 0 + + normal_check_interval 30 + retry_check_interval 5 + notification_interval 3600 + + check_command check_asterisk_skype +} ================================================================ Index: packages/nagios-plugin-check_asterisk_skype/nagios-plugin-check_asterisk_skype.spec diff -u /dev/null packages/nagios-plugin-check_asterisk_skype/nagios-plugin-check_asterisk_skype.spec:1.1 --- /dev/null Mon Mar 1 16:03:01 2010 +++ packages/nagios-plugin-check_asterisk_skype/nagios-plugin-check_asterisk_skype.spec Mon Mar 1 16:02:53 2010 @@ -0,0 +1,47 @@ +# $Revision$, $Date$ +%define plugin check_asterisk_skype +Summary: Nagios plugin to check Skype plugin status in Asterisk +Name: nagios-plugin-%{plugin} +Version: 0.1 +Release: 0.1 +License: GPL v2 +Group: Networking +Source0: %{plugin} +Source1: %{plugin}.cfg +Requires: nagios-core +Requires: perl-base >= 1:5.8.0 +BuildArch: noarch +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) + +%define _sysconfdir /etc/nagios/plugins +%define plugindir %{_prefix}/lib/nagios/plugins + +%description +This plugin checks for Skype license in Asterisk. + +%prep +%setup -qcT +cp -p %{SOURCE0} %{plugin} + +%install +rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{plugindir}} +install -p %{plugin} $RPM_BUILD_ROOT%{plugindir}/%{plugin} +sed -e 's,@plugindir@,%{plugindir},' %{SOURCE1} > $RPM_BUILD_ROOT%{_sysconfdir}/%{plugin}.cfg + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(644,root,root,755) +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{plugin}.cfg +%attr(755,root,root) %{plugindir}/%{plugin} + +%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`) +%changelog +* %{date} PLD Team <[email protected]> +All persons listed below can be reached at <cvs_login>@pld-linux.org + +$Log$ +Revision 1.1 2010/03/01 15:02:53 glen +- initial ================================================================ _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
