一、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           
联系人邮箱
       }
         definecontactgroup{
       contactgroup_name       admins
       alias                   NagiosAdministrators
       members                nagiosadmin
       }

这里可以使用默认的admins告警组,也可以自己新建告警组,将不同的监控指标报告给不同的组员。

另外,由于公司用的是腾讯企业邮箱,可以绑定微信,所以在填写联系人邮箱时使用企业邮箱,将告警邮件及时通过微信提醒组员。需要注意的是,将nagios产生的邮件加入到邮箱的白名单中,要不然收不到邮件提醒。


https://blog.51cto.com/jackyxin/1664563