设为首页 收藏本站
查看: 3581|回复: 6

[经验分享] nagios插件编写和使用pnp4nagios出图

[复制链接]

尚未签到

发表于 2013-4-2 09:09:36 | 显示全部楼层 |阅读模式

其实在nagios官方网站上也有很多插件,足够让我们使用,但是也不排除不能满足公司的需求,这时,得运维工程师或者程序员自己去编写脚本,网上也有很多教程,但是看了感觉都是讲的不够清楚,所以自己写了一份记录,希望可以帮得到网友们,同时,有哪里讲错的地方希望你们指出来,免得误人子弟。

     一 、写nagios插件,可以使用shell、perl、python等脚本语言,不管什么语言来写原理是一样的。那么先来认识下4种状态返回信息:

      0(OK)表示状态正常/绿色

      1(WARNING)表示出现警告/黄色

      2(CRITICAL)表示出现非常严重的错误/红色

      3(UNKNOWN)表示未知错误/深黄色。

     图解:

      091723546.jpg

    原理: Nagios根据插件返回来的值,来判断监控对象的状态,通过web显示出来,并通过邮件或者是短信方式(其他方式也可以)给管理员报警,及时处理故障.


    二、脚本编写教程

        1 编写脚本

  • [Shell] 纯文本查看 复制代码
    [iyunv@node1 libexec]# cat /usr/local/nagios/libexec/check_disk_used  
    #!/bin/bash
    #############返回状态码################
    STATE_OK=0 
    STATE_WARNING=1 
    STATE_CRITICAL=2 
    STATE_UNKNOWN=3 
    #############参数提示帮助###############
    help(){ 
    echo "Usage:$0 -h to help" 
    } 
    #############参数使用教程###############
    full_help(){ 
    echo "Usage:" 
    echo "linux disk used" 
    echo "example:$0 -w 80 -c 100" 
    } 
    #############以下是作判断和返回的结果,这里注意的函数getopts,非常好用############## 
    if [ $# -lt 1 ];then 
       help 
       exit 0 
    else 
    while getopts :w:c:h OPTION 
    do 
      case $OPTION 
        in 
        w) 
        WARNING=$OPTARG 
        ;; 
        c) 
        CRITICAL=$OPTARG 
        ;; 
        h) 
        full_help 
        exit 0 
        ;; 
        *) 
        echo "Error option" 
        help 
        exit 0 
        ;; 
      esac 
     done 
    fi 
     
    ############拿出磁盘的used,以下那个乘以1024,单位的转换#############
    used_one=`df -l|sed -n '2p'|awk '{print $3}'` 
    used=`expr $used_one \* 1024` 
     ############拿出磁盘的total,以下那个乘以1024,单位的转换############# 
    total_one=`df -l|sed -n '2p'|awk '{print $2}'` 
    total=`expr $total_one \* 1024` 
     
    ###############判断大于给出的参数-C -w 的结果,如果没问题,就显示OK#################
    if [ "$used" -ge "$CRITICAL" ] && [ "$CRITICAL" -ne "0" ];then 
       state="$STATE_CRITICAL" 
       state_used="CRITICAL" 
     
    elif [ "$used" -ge "$WARNING" ] && [ "$WARNING" -ne  "0" ];then 
       state="$STATE_WARNING" 
       state_used="WARNING" 
     
    else 
       state="$STATE_ok" 
       state_used="ok" 
     
    fi 
    echo ""The server disk_tatal=$total,the disk_used is "$state_used",disk_used="$used""|disk_used="$used";3387649424;3587635328;0;"$total"" 
    exit $state ############这个就是返回的状态码,在注意这里#############


      2 在被监控的客户端/usr/local/nagios/etc/nrpe.cfg加上以下语句,添加完后要记得重启nrpe服务,一般使用/etc/rc.d/init.d/xinetd restart


  • command[check_disk_used]=/usr/local/nagios/libexec/check_disk_used -w 3387649424 -c 3587635328

      3 在nagios服务器端,主机配置文件添加服务和重启nagios(service nagios restart):


  • [Shell] 纯文本查看 复制代码
    [iyunv@node2 servers]# cat/usr/local/nagios/etc/servers/192.168.250.40.cfg  
    define service{ 
    use             generic-service,service-pnp   
    host_name       web1 
    service_description     check_disk_used 
    check_command   check_nrpe!check_disk_used 
    } 


      4 web查看


095516504.jpg

        这样,自己编写的插件就可以正常使用了,运维工程师或者程序员就可以根据自己本身的     业务和需求去编写脚本。

    三、 pnp4nagios出图

         细心的网友们应该会看到旁边有一个图形,这个就是pnp插件,在这里pnp4nagios配置      我就不写出来了,如果哪位网友需要交流的话就联系我或者在后面回复。

         1 首先出图的话需要服务需要加入PNP4nagios插件(在配置好pnp4nagios基础上)

  • [Shell] 纯文本查看 复制代码
    [iyunv@node2 servers]# cat /usr/local/nagios/etc/servers/192.168.250.40.cfg  
    define service{ 
    use             generic-service,service-pnp 
    host_name       web1 
    service_description     check_disk_used 
    check_command   check_nrpe!check_disk_used 
    } 

          通过以上的配置,图标就会出现


          2  绘图

           绘图是使用rrdtool,安装pnp4nagios的时候需要安装的依赖包。首先大家要明白,生成       图像,需要的是什么?---->当然是数据。但数据从哪里来呢?请看看被监控的客户端脚本:

  • [Shell] 纯文本查看 复制代码
    [iyunv@node1 libexec]# cat /usr/local/nagios/libexec/check_disk_used  
    #!/bin/bash 
    STATE_OK=0 
    STATE_WARNING=1 
    STATE_CRITICAL=2 
    STATE_UNKNOWN=3 
    ......... 
    ......... 
    echo ""The server disk_tatal=$total,the disk_used is "$state_used",disk_used="$used""|disk_used="$used";3387649424;3587635328;0;"$total"" 
    exit $state 

      |disk_used="$used";3387649424;3587635328;0;"$total"大家有没有留意到,这里就是数据,那么是怎么样定义的呢?

      | 当前值;警告值;临界值;最小值;最大值

      | ---->是用来区别输出的数据的,|之前输出的数据是显示在web上面,后面则是绘图的数据

      当前值:这个要定义一个名字,例如:disk_used=

      警告值: 这个就是 - w参数的值

      临界值:这个就是 - c参数的值

      最小值:  0

      最大值:  这个根据自己本身监控去定义拿取


     3 最后,在使用这个脚本的时候也需要加上参数

       [iyunv@node1 libexec]# vi /usr/local/nagios/etc/nrpe.cfg

  • command[check_disk_used]=/usr/local/nagios/libexec/check_disk_used -w 3387649424 -c 3587635328

       这样的话就可以有数据绘图了,我们验证下结果:


102741435.jpg

102758136.jpg

    希望简单的教程能帮助到大家,谢谢!!!            



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-4679-1-1.html 上篇帖子: python 多线程复制文件同步 下篇帖子: python学习一 运算符和表达式

尚未签到

发表于 2013-4-2 09:59:18 | 显示全部楼层
我身在江湖,江湖里却没有我得传说。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-18 01:49:03 | 显示全部楼层
一时的冲动,子孙的危机!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-21 14:01:26 | 显示全部楼层
只要不下流,我们就是主流!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-26 10:15:00 | 显示全部楼层
长得真有创意,活得真有勇气!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-1 11:36:17 | 显示全部楼层
吃饭与ml是第一生产力。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-6-6 06:33:49 | 显示全部楼层
有道理。。。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表