packages: nagios-plugin-check_asterisk_skype/check_asterisk_skype (NEW), na...

glen glen at pld-linux.org
Mon Mar 1 16:03:01 CET 2010


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 <glen at delfi.ee>
+# 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 <glen\@delfi.ee>
+
+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, at 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 <feedback at pld-linux.org>
+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
================================================================


More information about the pld-cvs-commit mailing list