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



时间: 2024-11-03 22:20:55

CentOS 7 中自定义nagios 插件脚本的相关文章

自定义 nagios监控脚本

一. 自定义nagios监控脚本 1. 在客户端上创建脚本/usr/local/nagios/libexec/check_disk.sh   :就是监控脚本要在客户端vim  /usr/local/nagios/libexec/check_disk.sh 写入如下内容:(client上)#!/bin/bash#!/bin/bashrow=`df -h |wc -l`for i in `seq 2 $row`do        ava=`df -h |sed -n "$i"p|awk '

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

nagios插件程序提供两个返回值:一个是插件的退出状态码,另一个是插件在控制台上打印的第一行数据.退出状态码可以被nagios主程序 作为判断被监控系统服务状态的依据,控制台打印的第一行数据可以被nagios主程序作为被监控系统服务状态的补充说明 会显示在管理页面里面. 为了管理nagios插件,nagios每查询一个服务的状态时,就会产生一个子进程,并且它使用来自该命令的输出和退出状态码来 确定具体的状态.nagios主程序可识别的状态码和说明如下: OK            退出代码 0

jQuery2.0+中自定义选择器插件

jQuery中自定义插件,主要可以分为三大类:封装对象方法的插件.封装全局函数的插件.选择器插件. 以下分享低版本jQuery和jQuery2.0+版本中选择器插件的使用: 原理:        jQuery的选择符解析器首先会使用一组正则表达式来解析选择器,然后针对解析出的每个选择符执行一个函数,称为选择器函数.最后根据这个选择器函数的返回值为true还是false来决定是否保留这个元素.这样就可以找到匹配的元素节点 先上代码,在解析: 低版本jQuery <html xmlns="ht

nagios插件脚本check_linux_stats.pl 安装

有的时候监控CPU内存使用率的情况时,nagios自身多带的插件有一些缺陷. 我们下面使用check_linux_stats.pl这个perl脚本来监控系统运行的一些参数. 我们到https://exchange.nagios.org/directory/Plugins/Operating-Systems/Linux/check_linux_stats/details上下载check_linux_stats.pl插件,把插件放到nagios的libexec的目录里. 同时,我们还需要安装Perl

自定义nagios监控脚本

在客户端上创建脚本/usr/lib/nagios/plugins/check_disk.sh   //yum安装的nagios,如果是自己编译安装默认脚本文件目录在自定义安装的nagios目录下 在客户端上操作: vim  /usr/lib/nagios/plugins/check_disk.sh 写入如下内容: //这是一个disk脚本样例,你也可以写自己的监控脚本#!/bin/bashrow=`df -h |wc -l`for i in `seq 2 $row`do        ava=`

在CentOS 7中启动/停止/重启服务

RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Linux标准组的启动脚本. Systemd是一个Linux操作系统下的系统和服务管理器.它被设计成向后兼容SysV启动脚本,并提供了大量的特性,如开机时平行启动系统服务,按需启动守护进程,支持系统状态快照,或者基于依赖的服务控制逻辑. 先前的使用SysV初始化或Upstart的红帽企业版Linux版本

Linux Systemd——在RHEL/CentOS 7中启动/停止/重启服务

RHEL/CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Linux标准组的启动脚本. Systemd是一个Linux操作系统下的系统和服务管理器.它被设计成向后兼容SysV启动脚本,并提供了大量的特性,如开机时平行启动系统服务,按需启动守护进程,支持系统状态快照,或者基于依赖的服务控制逻辑. 先前的使用SysV初始化或Upstart的红帽企业版Linux版本

关于nagios系统下使用shell脚本自定义监控插件的编写以及没有实时监控图的问题

关于nagios系统下shell自定义监控插件的编写.脚本规范以及没有实时监控图的问题的解决办法 在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控.检测功能都是通过各种插件来完成的. 启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列, Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来. N

Phonegap中自定义插件的使用

在phonegap中需要实现特定相关的功能,可能需要自定义扩展一下功能,那么扩展phonegap组件就成为了可能. 源代码结构图: 本文目的在于讲述怎么扩展一个phonegap组件以及实现. 针对phonegap中activty扩展类: Java代码   package com.easyway.phonegap.datepicker; import com.phonegap.*; import android.os.Bundle; /** * 实现DroidGap的 * * @Title: *