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

nagios插件程序提供两个返回值:一个是插件的退出状态码,另一个是插件在控制台上打印的第一行数据。退出状态码可以被nagios主程序

作为判断被监控系统服务状态的依据,控制台打印的第一行数据可以被nagios主程序作为被监控系统服务状态的补充说明

会显示在管理页面里面。

为了管理nagios插件,nagios每查询一个服务的状态时,就会产生一个子进程,并且它使用来自该命令的输出和退出状态码来

确定具体的状态.nagios主程序可识别的状态码和说明如下:

好的,,,,,,退出代码0,表示服务正常的工作

警告,,,退出代码1——表示服务处于告警状态

至关重要,,,退出代码2——表示服务处于紧急,严重状态

未知,,,退出代码3,表示服务处于未知状态


[root@RS1服务]#头7/usr/local/nagios/libexec/utils.sh 

# !/bin/sh

STATE_OK=0

STATE_WARNING=1

STATE_CRITICAL=2

STATE_UNKNOWN=3

STATE_DEPENDENT=4


示例一:判断/etc/passwd文件是否变化,利用nrpe的被动模式

原理:利用md5sum进行指纹收集md5sum/etc/passwd祝辞/etc/passwd.md5

利用md5sum - c/etc/passwd.md5对指纹进行判别,出现好则没有变化,反之则变化了

监控密码文件是否被更改:

先做指纹库md5sum

/etc/passwd祝辞/etc/passwd.md5

在客户端上创建脚本vim/usr/local/nagios/libexec/check_passwd

# !/bin/bash

char=' md5sum - c/etc/passwd.md5 2祝辞,1 | grep“OK”| wc - l”


如果(char eq 1美元);然后

,回声“passwd OK”

,退出0,,其他,

,回声“密码修改”

,出口2

fi


# # # # # #给脚本执行权限

chmod + x/usr/local/nagios/libexec/check_passwd


# # # # #定义check_passwd命令

vim/usr/local/nagios/etc/nrpe.cfg

命令[check_passwd]=/usr/地方/nagios/libexec/check_passwd


# # # # #重启nrpe服务


# # # # # #在nagios主程序先手动抓取数据

[root@RS1 libexec) #。/check_nrpe - h 192.168.1.11 - c check_passwd

passwd很好


# # # # # #在nagios主程序上定义服务配置

vim/usr/local/nagios/etc/objects/services.cfg(主动模式和被动模式各自的服务。cfg配置文件,各自分别管理)

定义服务{

,,,,使用,,,,,,,,,,通用服务

,,,,host_name,,,,,,,client02

,,,,service_description,,check_passwd

,,,,check_command,,,,,check_nrpe !check_passwd

}


然后在nagios服务端进行手动抓取数据:

/usr/地方/nagios/libexec/check_nrpe - h 192.168.1.11 - c check_passwd

出现数据,表明基本已经没有问题,重启服务,观察web平台页面,如下图:

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


自定义监控web url,用主动模式监控

root@RS1 ~ #卷发——http://192.168.1.11/index。html 2在/dev/null | grep“OK”

HTTP/1.1 200 OK

root@RS1 ~ #卷发——http://192.168.1.11/index。html 2在/dev/null | grep“OK”| wc - l

1,编写执行脚本cd/usr/local/nagios/libexec

vim check_web_url

# !/bin/bash

char=' curl——http://192.168.1.11/index。html 2在/dev/null | grep“OK”| wc - l”

如果(char eq 1美元);然后

,回声“url是好的”

,其他退出0

,回声“网址是错的”

,出口2

fi


chmod + x check_web_url


2,添加check_web_url这个命令到命令。cfg配置文件中

# # # # # # # # # # # # define命令check_web_url # # # # # # # # # #

定义命令{

,,,,command_name,,check_web_url

,,,,command_line,,USER1/美元check_web_url

,}


3,编辑服务器。cfg文件cd/usr/local/nagios/etc/services

vim web_url。cfg

定义服务{

,,,,使用,,通用服务

,,,,host_name,,,client02,,,监控的主机192.168.1.11在hosts.cfg有定义

,,,,service_description,,web_url

,,,,check_period 24 x7

,,,,check_interval 5

,,,,retry_interval 1

,,,,max_check_attempts 3

,,,,check_command,,check_web_url大敌;,因为是主动模式

,,,,notification_period 24 x7

,,,,notification_interval 30

,,,,notification_options, w, u c r

,,,,contact_groups管理员

}


4,检测错误,重启服务

#/etc/init. root@RS1服务d/nagios checkconfig

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