nagios扩展开发之check_ping

[工作内容]
老大的需求,对指定IP进行ping,当到达一定的阀值,如50ms,那么就cirtical,并且对其进行一次tracertroute,我们都知道对前面的需求,很好解决,那就是check_ping这个插件就能解决,但它还无法满足后面的需求,咋办?只有自己开发了,好了,那就干吧!~
[过程]
commands.cfg
define command{
        command_name    check_ping_dev
        command_line    $USER1$/check_ping_dev $HOSTADDRESS$  $ARG1$  $ARG2$  10
        }
services.cfg
define service  {
        name                    mrtg-services-init
        service_description     ping 
        check_command           check_ping_dev!50,50%!50,50%
        check_period            24x7
        max_check_attempts      2
        normal_check_interval   5 
        retry_check_interval    2
        contact_groups          sagroup
        notification_interval   5
        notification_period     24x7
        notification_options    w,u,c,r
        register                   0
}
define service {
        use                     mrtg-services-init
        host_name               M-x.x.x.x,M-y.y.y.y
}
那么现在开发check_ping_dev

#!/usr/bin/perl

$USR1="/usr/local/nagios/libexec";
$ARG1=$ARGV[0];
$ARG2=$ARGV[1];
$ARG3=$ARGV[2];
$ARG4=$ARGV[3];

$result = `$USR1/check_ping -H $ARG1 -w $ARG2 -c $ARG3 -p $ARG4`;
@results=split(" ",$result);
if( grep(/CRITICAL/,@results) ){
       printf($result);
       print "\n";
       `$USR1/save_log $ARG1`;
       exit 2;
}
else{
    printf($result);
    print "\n";
    exit 0;


save_log的作用就是记录tracert

#!/usr/bin/perl
use POSIX qw(strftime);

$dtime = strftime "%Y%m%d %H:%M:%S", localtime(time()); 

$SAVE_PATH="/tmp";
$RAG1=$ARGV[0];

$result=`/bin/traceroute $RAG1`;
open("FH",">>$SAVE_PATH/$RAG1");
    print FH $dtime."\n";
    print FH $result."\n";  

close(FH);



本文转自hahazhu0634 51CTO博客,原文链接:http://blog.51cto.com/5ydycm/184423,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值