1、工作原理

Nagios服务器使用check_nt工具与客户端程序通讯,客户端程序NSCP使用命令来获取本地客户端的信息并返回给check_nt。

check_nt只是NSCP其中一项服务,Nagios还可以通过check命令(如check_http检查WEB服务)、check_nrpe、NSCA、WMI来监控windows客户端。


2、下载客户端程序

下载地址:http://nsclient.org/nscp/downloads

64位系统下载:NSCP-0.4.1.105-x64.msi

32位系统下载:NSCP-0.4.1.105-Win32.msi


3、安装NSCP(也叫NSClient++)

设置Nagios服务器IP地址、客户端访问密码(后面Nagios设置check_nt命令时要用到)和启用各种监控服务。

配置文件C:\Program Files\NSClient++\nsclient.ini中可以修改Allowed hosts和Password。


4、检查服务、端口状态

启动服务后netstat-an查看使用的端口,check_nt使用12489、check_nrpe使用5666


5、测试监控命令

(1)获取帮助信息:

[root@nagios~]#cd/usr/local/nagios/libexec[root@nagioslibexec]#./check_nt-h

(2)监控运行时间:

[root@nagioslibexec]#./check_nt-H10.188.1.172-vUPTIME-p12489-s123456SystemUptime-0day(s)3hour(s)16minute(s)|uptime=196

-p指定端口,-s指定客户端安装时设置的密码,UPTIME是监控工具。

(3)监控CPU负载-w警告-c紧急-l监测参数(过去5分钟平均值,80%警告,90%紧急):

[root@nagioslibexec]#./check_nt-H10.188.1.172-vCPULOAD-w80-c90-l5,80,90-p12489-s123456CPULoad9%(5minaverage)|'5minavgLoad'=9%;80;90;0;100

(4)监控C盘使用率(-lC指定盘符):

[root@nagioslibexec]#./check_nt-H10.188.1.172-vUSEDDISKSPACE-w80-c90-lC-p12489-s123456C:\-total:35.00Gb-used:31.68Gb(91%)-free3.32Gb(9%)|'C:\UsedSpace'=31.68Gb;28.00;31.50;0.00;35.00

6、配置Nagios监控

(1)修改check_nt命令

[root@nagioslibexec]#cd/usr/local/nagios/etc/objects/[root@nagiosobjects]#vicommand.cfg#'check_nt'commanddefinitiondefinecommand{command_namecheck_ntcommand_line$USER1$/check_nt-H$HOSTADDRESS$-p12489-s123456-v$ARG1$$ARG2$}

(2)创建windows监控主机配置文件夹

[root@nagioslibexec]#mkdirwinserver

(3)创建windows监控主机配置文件

配置文件参考/usr/local/nagios/etc/objects/windows.cfg,可以直接复制过来修改,不过太乱了,自己定义吧:

[root@nagiosobjects]#cdwinserver[root@nagioswinserver]#viwinhost_172.cfg#定义监控主机,设置主机名(不可重复)、别名、IP地址。definehost{usewindows-serverhost_namewinhost_172aliasywzhou_pcaddress10.188.1.172}#定义主机组,在winserver文件下只需要一个文件定义了主机组,其他文件就不要再定义了。definehostgroup{hostgroup_namewindows-serversaliasWindowsServers}#第一部分:定义基于check_nt命令的监控服务。#一个配置文件中的service_description不能重复#监控NSClient++客户端软件版本defineservice{usegeneric-servicehost_namewinhost_172service_descriptionNSClient++Versioncheck_commandcheck_nt!CLIENTVERSION}#监控在线时长defineservice{usegeneric-servicehost_namewinhost_172service_descriptionUptimecheck_commandcheck_nt!UPTIME}#监控CPU负载,超过80%报警,超过90%严重defineservice{usegeneric-servicehost_namewinhost_172service_descriptionCPULoadcheck_commandcheck_nt!CPULOAD!-l5,80,90}#监控内存使用情况,超过80%报警,超过90%严重defineservice{usegeneric-servicehost_namewinhost_172service_descriptionMemoryUsagecheck_commandcheck_nt!MEMUSE!-w80-c90}#监控C盘使用情况,可以复制该组服务来监控其他磁盘defineservice{usegeneric-servicehost_namewinhost_172service_descriptionC:\DriveSpacecheck_commandcheck_nt!USEDDISKSPACE!-lc-w80-c90}#监控系统服务状态(是否启动),默认的W3SVC是IIS的服务,可以复制该组服务来监控其他系统服务#可以在任务管理器中的服务项查看哪些服务器比较重要就监控起来,比如IIS、SQLServer等。defineservice{usegeneric-servicehost_namewinhost_172service_descriptionW3SVCcheck_commandcheck_nt!SERVICESTATE!-dSHOWALL-lW3SVC}#监控程序状态(是否运行),默认的Explorer.exe是桌面进程的程序,可以复制该组服务来监控其他系统服务#可以在任务管理器中的进程项查看哪些服务器比较重要就监控起来。defineservice{usegeneric-servicehost_namewinhost_172service_descriptionExplorercheck_commandcheck_nt!PROCSTATE!-dSHOWALL-lExplorer.exe}#第二部分:定义基于checkplugins的监控服务。#安装NSCP时启用了Enablecommoncheckplugins功能#checkplugins是位于/usr/local/nagios/libexec下的Nagios自带的监控插件#监控ftp服务defineservice{usegeneric-servicehost_namewinhost_172service_descriptionFTPcheck_commandcheck_ftp}#监控http服务defineservice{usegeneric-servicehost_namewinhost_172service_descriptionHTTPcheck_commandcheck_http}#监控ssh服务defineservice{usegeneric-servicehost_namewinhost_172service_descriptionSSHcheck_commandcheck_ssh}#监控dhcp服务defineservice{usegeneric-servicehost_namewinhost_172service_descriptionDHCPcheck_commandcheck_dhcp}#监控pop3服务defineservice{usegeneric-servicehost_namewinhost_172service_descriptionPOPcheck_commandcheck_pop}#监控imap服务defineservice{usegeneric-servicehost_namewinhost_172service_descriptionIMAPcheck_commandcheck_imap}#监控smtp服务defineservice{usegeneric-servicehost_namewinhost_172service_descriptionSMTPcheck_commandcheck_smtp}#监控tcp端口,常用于监控多个网站使用不同端口时,监控端口状态defineservice{usegeneric-servicehost_namewinhost_172service_descriptionTCPcheck_commandcheck_tcp!80}

下面列出所有插件,其中有很多暂时没空去研究,欢迎共同探讨。



(4)载入监控配置并重启nagios

[root@nagioswinserver]#vi/usr/local/nagios/etc/nagios.cfgcfg_dir=/usr/local/nagios/etc/objects/winserver[root@nagioswinserver]#servicenagiosrestart



7、Nagios页面操作

(1)查看Hosts主机页面:



(2)查看Down主机,有两台PING不通(关机了)

(3)查看主机hv02的信息,可以设置各种开关


(4)查看主机hv02的所有监控服务

(5)查看所有报警的监控服务


(6)查看所有监控服务,观察正常状态的状态值status information

(7)在Cacti中通过NPC插件查看Nagios信息