博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nagios扩展开发之check_ping
阅读量:6954 次
发布时间:2019-06-27

本文共 1396 字,大约阅读时间需要 4 分钟。

[工作内容]

老大的需求,对指定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,如需转载请自行联系原作者

你可能感兴趣的文章
基于Centos搭建nginx+uwsgi运行django环境
查看>>
context switch
查看>>
Oracle awr报告生成操作步骤
查看>>
【DB2】DB2使用IMPORT命令导入含有自增长列的表报错处理
查看>>
微服务之springCloud-docker-comsumer(三)
查看>>
dhcpcd守护进程分析【转】
查看>>
Linux - 理不清的权限chmod与chown区别
查看>>
TCP协议疑难杂症全景解析
查看>>
redis 1
查看>>
Python安装pycurl失败,及解决办法
查看>>
cocos2d的常用动作及效果总结之四:Special Actions
查看>>
[ lucene扩展 ] MoreLikeThis 相似检索
查看>>
如果返回结构体类型变量(named return value optimisation,NRVO)
查看>>
C# 多线程详解 Part.02(UI 线程和子线程的互动、ProgressBar 的异步调用)
查看>>
基于shiro授权过程
查看>>
JQuery对象和DOM对象的区别与转换
查看>>
使用 Toad 实现 SQL 优化
查看>>
.NET开发技巧——从Winform穿越到WPF
查看>>
2135亿背后的双11项目协作怎么玩?
查看>>
DRDS SQL 审计与分析——全面洞察 SQL 之利器
查看>>