一、NSClient与nrpe最大的区别就是:
(1)被监控机上安装有nrpe,并且还有插件,最终的监控是由这些插件来进行的.当监控主机将监控请求发给nrpe后,nrpe调用插件来完成监控.
(2)NSClient则不同,被监控机上只安装NSClient,没有任何的插件.当监控主机将监控请求发给NSClient后,NSClient直接完成监控,所有的监控是由NSClient完成的.
二、安装windows监控引擎
下载NSClient++的安装包,注意根据实际的32/64CPU来下载
下载地址 http://sourceforge.net/projects/nscplus
安装方式,解压缩到C:\NSClient++
在指令模式下,在该目录下面运行以下命令,注册NSCient++的服务
nsclient++ /install
将NSCient++作为启动进程
nsclient++ SysTray
在服务列表中找到NSClientpp的服务。双击打开该服务的配置窗口则在登录分页中将“允许服务与桌面交互”勾选上。
编辑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.1.34
在[NSClient]部分将port前的注释去掉,确认port的端口号是12489
启动nsclient++服务
nsclient/start
可以使用netstat –an查看端口。
二、配置nagios监控端
在/usr/local/nagios/etc/nagios.cfg中将cfg_file=/usr/local/nagios/etc/objects/windows.cfg前的#号取消掉。
监控Windows主机,只需在/usr/local/nagios/etc/objects/windows.cfg中添加host和service即可。
打开window.cfg,添加主机
definehost{
use windows-server
host_name ysx
alias My Windows Server
address 192.168.1.34
}
在这台主机上有tomcat和mysql,且tomcat的端口改为8003。这样的话可以在command.cfg中自己编写一个command:
definecommand{
command_name tcp8003
command_line $USER1$/check_tcp-H $HOSTADDRESS$ -p 8003 -v CLIENTVERSION
}
这样在编写服务时就可以直接调用tcp8003了。在windows.cfg中编写service:
defineservice{
use generic-service
host_name ysx
service_description tcp_8003
check_command tcp8003
max_check_attempts 2
normal_check_interval 1
retry_check_interval 1
check_period 24x7
notification_interval 2
notification_period 24x7
notification_options w,u,c,r
contact_groups admins,chanpin
}
这样就可以监控Tomcat的8003端口了。
监控mysql时,可以打开任务管理器,可以找到服务“MySQL”,在windows.cfg中添加service如下:
defineservice{
use generic-service
host_name ysx
service_description mysqld_service
check_command check_nt!SERVICESTATE!-d SHOWALL -l MySQL
max_check_attempts 2
normal_check_interval 1
retry_check_interval 1
check_period 24x7
notification_interval 2
notification_period 24x7
notification_options w,u,c,r
contact_groups admins,chanpin
}
这里主要是check_nt的应用。使用SERVICESTATE参数来进行监控。
添加完毕后,使用/usr/local/nagios/bin/nagios-v /usr/local/nagios/etc/nagios.cfg来检查各个配置文件是否有错误。如检查正确可以使用/etc/init.d/nagios reload进行加载。
配置监控,产生告警事件,告知运维和开发人员,则需要配置contact.cfg文件
definecontact{
contact_name nagiosadmin
use generic-contact
alias NagiosAdmin
email 联系人邮箱
}
definecontactgroup{
contactgroup_name admins
alias NagiosAdministrators
members nagiosadmin
}
这里可以使用默认的admins告警组,也可以自己新建告警组,将不同的监控指标报告给不同的组员。
另外,由于公司用的是腾讯企业邮箱,可以绑定微信,所以在填写联系人邮箱时使用企业邮箱,将告警邮件及时通过微信提醒组员。需要注意的是,将nagios产生的邮件加入到邮箱的白名单中,要不然收不到邮件提醒。