使用nagios检测windows服务器
1、安装nagios windows客户端
下载NSClient++的安装包,注意根据实际的32/64CPU来下载
下载地址 http://sourceforge.net/projects/nscplus
安装方法:直接双击登录
在C:/program files/nscplus目录中编辑NSC.INI,做以下更改
在[Module]部分,除了CheckWMI.dll和RemoteConfiguration.dll这两行的注释不要去掉,其他DLL的注释都去掉。
在[Setting]部分的password设定一个密码,并把前面的注释去掉。
password=secret-password 改为 password=123456
在[Setting]部分的allowed_hosts部分设定Nagios的服务器IP或者设定一个IP段,并把前面的注释去掉。
allowed_hosts=192.168.200.249/32
在[NSClient]部分将port前的注释去掉,确认port的端口号是12489
启动nsclient++服务
2、配置Nagios
修改nagios.cfg文件,增加如下行
cfg_dir=/usr/local/nagios/etc/services
然后再/usr/local/nagios/etc/services下建立文件
121.43.151.46.cfg(替换成你自己的IP地址)
3、在host的定义部分,可以修改实例中的host_name,alias,address三个部分来的参数。第一个参数use则是继承了template.cfg中对Windows的监控参数
define host{
use windows-server ; 从template中继承相关监控参数
host_name winserver ; 主机名称
alias My Windows Server ; 别名
address 192.168.1.2 ; IP地址
}
4、也可以自己添加host_group
define hostgroup{
hostgroup_name windows-servers ; The name of the hostgroup
alias Windows Servers ; Long name of the group
}
在Service定义部分
首先需要设定以下内容,用于确认监控对象的NSClient++的版本是否正确
define service{ use generic-service host_name winserver service_description NSClient++ Version check_command check_nt!CLIENTVERSION }
然后是定义监控对象的正常运行时间
check_command check_nt!UPTIME
随后是定义CPU的负载状况,下面的定义表示在5分钟内的平均负载超过80%则发出警告WARNING,而超过90%则是危机报警CRITICAL alert
check_command check_nt!CPULOAD!-l 5,80,90
定义内存负载状况,当内存使用率达到80则warning 90%则CRITICAL alert
check_command check_nt!MEMUSE!-w 80 -c 90
监控C盘空间,使用率达到80则warning 90%则CRITICAL alert
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
监控服务状态的格式,当服务停止了则发送CRITICAL alert
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
监控系统进程,当进程处于非运行状态时,则发送CRITICAL alert
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
8.密码设定
编辑/usr/local/nagios/etc/objects/commands.cfg 在check_nt部分中,command_line后面添加一个参数-s "NSClient主机的密码"
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
可以通过以下指令测试设备响应是否正常
/usr/local/nagios/libexec/check_nt -H 主机IP -p 12489 -s 密码 -v UPTIME
如果反馈的信息是System Uptime - 0 day(s) 8 hour(s) 44 minute(s) 则表示连接正常。
如果显示为could not fetch information from server,则有以下可能
密码不正确(最傻的可能,也是经常发生的可能)
服务器上有防火墙,需要开放12489端口。
在windows上的NSC.INI上的allow_hosts没有添加正确的nagios IP、
9.重新启动Nagios服务
在修改nagios配置文件之后,则可以运行/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
来验证配置文件是否正确。
service nagios restart
看看nagios的管理页面,被监控的windows服务器是否显示