|
#!/usr/bin/perl
use RPC::XML::Client;
use Data::Dumper;
use Getopt::Std;
sub usage {
print "Usage: $0\n\n";
print "\t -H \t Hostaddress \t\t\t\t (required)\n";
exit(1);
}
sub warning {
print "@_\n";
exit(1);
}
sub critical {
print "@_\n";
exit(2);
}
sub unknown {
print "@_\n";
exit(3);
}
sub success {
print "@_\n";
exit(0);
}
my %opts;
getopts('H:', \%opts);
my $host = $opts{"H"};
if (length($host) > 0) {
my $client = new RPC::XML::Client('http://'.$host.':8080/RPC2');
my $req = RPC::XML::request->new('freeswitch.api',
'show',
'channels');
$client->credentials ("freeswitch" , "freeswitch", "works");
$res = $client->send_request($req);
my $value = $res->value;
chomp($value);
$total = 0;
if ($value =~ m/(\d+) total\./) {
$total = $1;
}
if ($total == 0) {
critical("FreeSwitch OK: Channel = [".$total."]");
} else {
success("FreeSwitch OK: Channel = [".$total."]");
}
} else {
usage();
}
============================================
./check_freeswitch_alive.pl -H hostname
如果 channel 的数目等于 0, 认为 freeswitch 的连接有问题。
否则,认为正常。
==============================================
|