一、Nagios监控配置的常规说明:
1.1. 监控步骤:
被监控端安装代理(linux为nrpe,windows为NSClient)à配置被监控端监控脚本à主机定义(服务器端)à定义命令(服务器端,普通监控默认已定义好,可跳过此步)à定义服务(服务器端)à其他定义(此步可省略,包含:联系人、主机组、服务器组、服务组等)
1.2. Nagios监控的四种状态:
Nagios的状态有四种,根据返回值区分:
返回 0 ,正常
返回 1 ,警告
返回 2 ,紧急
返回 3 ,未知
因此,不管是linux还是windows,在自定义脚本是,只要设置好exit后跟的返回值即可实现Nagios的通知提醒。
二、 Windows代理NSClient++的安装
下载最新的NSClient++ 0.40安装,填入Nagios服务器IP,密保保存为空,并勾选支持的前三项插件,如下图:
四、 自定义脚本监控(NRPE):
4.1 客户端脚本编写:
脚本的编写可以使用批处理、powershell脚本或vbs等,只要能返回状态信息和返回值(见文章开头第一段说明)。
例如如使用批处理,可以使用echo命令返回状态信息;使用exit跟数字0、1、2、3返回状态值。如下面的一段批处理脚本可以实现对进程状态进行监控:
@echo off
:: 监控进程是否运行
::%1表示使用中的第一个参数,即进程名称
tasklist |find "%1" >NUL
IF ERRORLEVEL 1 GOTO err
IF ERRORLEVEL 0 GOTO ok
:err
echo CRITICAL!Process %1 is not exist!
exit 2
::返回值为2,表示警告
: ok
echo OK!Process %1 is exist!
exit 0
::返回值为0,表示正常
将上述命令作为批处理保存在C:\Program Files\NSClient++\scripts路径下如check_run.bat,注意,在返回的状态信息中尽量不要用中文。
4.2 客户端脚本命令配置:
编辑C:\Program Files\NSClient++\nsclient.ini,找到[/settings/external scripts/scripts]一行,在下面加入如下内容:
Command_alias=scripts\check_run.bat Process_Name.exe
注意:等号前面的别名为服务器端调用的命令,等号后面接具体的脚本,脚本后面跟参数进程名称,该参数会被脚本使用%1变量进行调用。如我要监控【视频监控主机】的视频录像程序是否启动,可替换为check_manager=scripts\check_run.bat VideoManager.exe
4.3 服务器端服务配置():
定义服务后:
define service{
use generic-service
host_name Monitor
service_description 管理平台
check_command check_nrpe!check_manager
}
4.4 重启Nagios服务:service nagios restart
<a class="cboxElement" href="http://www.toxingwang.com/wp-content/uploads/2013/02/n3.png" rel="example4" 257"="">
通过上述默认支持的监控项目和自定义脚本,基本能实现Windows所有需要的监控(对部分服务的详细监控需要很复杂的脚本才能实现)。