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