yp1234 发表于 2015-9-8 09:41:16

Nagios 利用NSClient++的check_nrpe方式使用自定义脚本监控windows

分类
  NsClient++来监控windows主机有三种方式:check_nt、check_nrpe、nsca。check_nt自带很多功能,但是扩展性差,check_nrpe可以通过执行自己定义的脚本做到很好地扩展(官方推荐)。

原理
  监控端通过check_nrpe把要监控的指令发送给被监控端,被监控端在本机执行监控任务,并把执行的结果发送回被监控端。


实现
  以NSClient++0.3为例,示例的功能是监控某个进程是否运行。
  1. 编辑NSClient配置文件NSC.ini,去掉以下几行前面的“;”号(去掉注释,使其生效)



NRPEListener.dll
script_dir=scripts\
CheckExternalScripts.dll

  2. 在NSClient安装目录下的scripts文件夹下,新建一个check_run.bat批处理文件,如下  
  文件名:check_run.bat



@echo off
tasklist |find "%1" >NUL
IF ERRORLEVEL 1 GOTO err
IF ERRORLEVEL 0 GOTO ok
:err
echo CRITICAL: Process does not exist
exit /B 1
:ok
echo OK: The process of normal
exit /B 0
  3. 在NSC.ini文件中下面添加如下行:



check_run=scripts\check_run.bat   chrome.exe
  注:是而不是
  4. 重启NSClinet
  5. 可以在被监控端check_nrpe所在的目录(CentOs默认的安装目录为:/usr/lib64/nagios/plugins/)



./check_nrpe -H hostip -c check_run

  注:-H后写刚才脚本所在的机器,-c后写命令,这里对应配置文件中的check_run
  如果结果与预期的一致,那么就可以继续配置监控端了
  6. 配置监控端
  修改commands.cfg
  增加



define command{
command_name    check_run
command_line    /usr/lib64/nagios/plugins/check_nrpe -H yourip -c check_run
}
  修改windows.cfg



define service{
use                     generic-service-urgent,srv-pnp
host_name               youip   ;要展示信息的机器的ip
service_description   check_fileexistspan
check_command         check_run
}
  效果
页: [1]
查看完整版本: Nagios 利用NSClient++的check_nrpe方式使用自定义脚本监控windows