packages: nagios-plugin-check_asterisk_skype/check_asterisk_skype - check c...

glen glen at pld-linux.org
Wed Mar 3 07:57:01 CET 2010


Author: glen                         Date: Wed Mar  3 06:57:01 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- check custom calls.log

---- Files affected:
packages/nagios-plugin-check_asterisk_skype:
   check_asterisk_skype (1.7 -> 1.8) 

---- Diffs:

================================================================
Index: packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype
diff -u packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype:1.7 packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype:1.8
--- packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype:1.7	Tue Mar  2 10:55:11 2010
+++ packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype	Wed Mar  3 07:56:55 2010
@@ -129,6 +129,40 @@
 	}
 }
 
+# grab skypeout balance from custom log produced in /etc/asterisk/extensions.ael:
+# replace ${SKYPEACCOUNT} with your skype account name
+# Set(DATETIME=${STRFTIME(${EPOCH},Europe/Tallinn,%Y-%m-%d %H:%M:%S)});
+# System(echo '${DATETIME} CALL ENDED: balance: $[${SKYPE_ACCOUNT_PROPERTY(${SKYPEACCOUNT},skypeout_balance)}/100] EUR' >> /var/log/asterisk/calls.log);
+sub check_skype_calls {
+	# TODO: add command line opts support
+	my $logfile = '/var/log/asterisk/calls.log';
+	my $warning = 2.5;
+	my $critical = 0.5;
+
+	open(my $fh, '<', $logfile) or die "Can't open $logfile: $!\n";
+	my @lines = reverse <$fh>;
+	close $fh;
+
+	my $seen = 0;
+	while ($_ = pop(@lines)) {
+		if (my($balance, $currency) = /balance: ([\d.]+) (\S{3})/) {
+			$seen = 1;
+			my $state;
+			if ($balance < $critical) {
+				$state = 'CRITICAL';
+				$status = $ERRORS{CRITICAL};
+			} elsif ($balance < $warning) {
+				$state = 'WARNING';
+				$status = $ERRORS{WARNING};
+			} else {
+				$state = 'OK';
+			}
+			$message .= sprintf "; Balance %s: %.2f %s", $state, $balance, $currency;
+			last;
+		}
+	}
+}
+
 #####################################################################
 $ENV{'BASH_ENV'} = '';
 $ENV{'ENV'} = '';
@@ -154,6 +188,7 @@
 
 check_skype_license;
 check_skype_user;
+check_skype_calls;
 
 if ($message) {
 	if ($status == $ERRORS{OK}) {
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/nagios-plugin-check_asterisk_skype/check_asterisk_skype?r1=1.7&r2=1.8&f=u



More information about the pld-cvs-commit mailing list