sensu/handlers/sms.pl
Denis Zheleztsov 7ea7866aa1 sms handler
2015-07-10 15:08:59 +03:00

60 lines
1020 B
Perl
Executable File

#!/usr/bin/perl
use warnings;
use JSON;
use LWP::UserAgent;
use HTTP::Request;
use Getopt::Std;
sub init() {
my $opt_string = 'n:';
getopts("$opt_string");
our ( $opt_n );
}
init();
# Get sensu output
my $json = <>;
my $message = decode_json($json);
my $check_name = $message->{check}->{name};
my $client_name = $message->{client}->{name};
my @ch = $message->{check}->{history};
my @check_history;
foreach my $c (@ch) {
@check_history = @$c;
}
my $crit_count = 0;
my $total = @check_history;
foreach my $stat (@check_history) {
if ( $stat eq '2' ) {
$crit_count++;
}
}
# sms.ru API
my $id = '';
my $num = '';
$num = $opt_n if $opt_n;
my $sms = "$client_name\n$check_name\n$crit_count";
my $uri = "http://sms.ru/sms/send?api_id=".$id."&to=".$num."&text=".$sms;
# Make request
my $ua = LWP::UserAgent->new();
$ua->agent('sensu-sms-handler/0.1');
my $req = HTTP::Request->new( POST => $uri );
my $res = $ua->request($req);
if ( $res->is_success ) {
exit 0;
}
else {
exit 7;
}