CentOS 7 中自定义nagios 插件脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7 中自定义nagios 插件脚本相关的知识,希望对你有一定的参考价值。

一、 系统环境

       操作系统:CentOS 7

      nagios 服务器端版本:nagios-4.0.8-2.el7.x86_64

      nrpe  客户端版本:nrpe-2.15-7.el7.x86_64

二、nagios自定义插件返回码:
      Return Code     Service State     Host State
        0                   OK                  UP
        1                   WARNING         UP or DOWN/UNREACHABLE*
        2                   CRITICAL        DOWN/UNREACHABLE
        3                   UNKNOWN         DOWN/UNREACHABLE

三、定义插件,将插件放在 /usr/lib64/nagios/plugins

(1)脚本需要具有执行权限

   -rwxrwxrwx 1 nagios nagios 281 May 24 13:35 check_zfstatus.sh

  (2)定义监控命令,在被监控端  /etc/nagios/nrpe.cfg 中,

     command[check_zfs]= /usr/bin/sudo  /usr/lib64/nagios/plugins/check_zfstatus.sh

  (3)  在nagios 服务器端定义 service 及command

    define command{
          command_name check_nrpe
          command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
         }

          define service{
            use                            local-service
            host_name                      test
            service_description          zfs_status
            check_command             check_nrpe!check_zfs
           }

四、重启进程,在可以在监控界面看到定义的服务了

PS:  在安装过程中遇到的问题及解决办法

 附上脚本代码:

  #! /bin/bash
   sudo   /usr/sbin/zpool  scrub myzpool
     device=` sudo /usr/sbin/zpool status | grep -o UNAVAIL | uniq `
     status=UNAVAIL
 if [[ "$device" == "$status" ]]; then
        echo " device  wrong!"
        exit 2
else
        echo  "device all right;"
        exit 0
fi
脚本说明:

(1)因为zpool 只有root用户有权限,nrpe 无法调用,所以需要编辑 /etc/sudoers 文件,给予

 nrpe 权限。添加       nrpe    ALL=(ALL)     NOPASSWD:ALL

(2)[[ "$device" == "$status" ]]     因为device变量有时会为空值,故需要在判断时候写两个中括号

 (3)如遇到监控状态输出与 脚本执行结果不一致时,调错,切换到nagios 用户
 /usr/lib64/nagios/plugins/check_nrpe -H IP地址 -c check_zfs





本文出自 “linux之旅” 博客,请务必保留此出处http://bluefei.blog.51cto.com/3921428/1782527

以上是关于CentOS 7 中自定义nagios 插件脚本的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑦ ( 自定义 Gradle 插件导入方式 | buildSrc 插件导入 | 构建脚本中自定义插件 | 独立文件 )

Android Gradle 插件Gradle 自定义 Plugin 插件 ⑦ ( 自定义 Gradle 插件导入方式 | buildSrc 插件导入 | 构建脚本中自定义插件 | 独立文件 )

centos 7.5 安装mysql 5.7.32 中自定义data的目录

CentOS 7 下nagios搭建记录

自定义nagios插件实现主动被动模式以及nagios基于mail的简单告警

nagios自定义监控API插件