Nagios监控Windows主机的方法
创始人
2024-07-23 15:20:59
0

  Nagios监控Windows主机

  一、 介绍

  本文用来说明如何监控Windows主机的本地服务和特性,包括:

  内存占用率

  CPU负载

  Disk利用率

  服务状态

  运行进程

  等等

  在Windows主机上的公众化服务(如HTTP、FTP、POP3等)可以查阅监控公众化服务这篇文档。

  注意:如下的内容是假定你已经按照快速安装指南安装好了Nagios系统之后做的,下面所使用的样例配置文件(如commands.cfg、templates.cfg等)已经在安装过程中安装到位。

  二、概览

  对Windows机器的监控私有服务需要在机器上安装代理程序。代理将会在检测插件与Nagios服务之间起网关代理作用。如果没有在机器上安装代理的话,Nagios将无法对Windows私有服务或属性等进行监控。

  在下面例子中,将在Windows机器上安装NSClient++外部构件并使用check_nt插件检测和与NSClient++构件进行通讯。如果你按照指南来安装的话,check_nt插件已经安装到了Nagios服务器上。

  如果愿意,可以用其他的Windows代理(象NC_Net)替代NSClient++构件所起的作用-只是要稍稍改一下对应的命令和服务定义等。下面将只是讨论安装了NSClient++外部构件的情况。

  三、步骤

  为完成对Windows机器的检测,有几个步骤要做,它们是:

  确认一下首要条件;

  在Windows机器上安装代理(在本例中是安装NSClient++构件);

  给Windows机器创建新的主机和服务对象定义;

  重启动Nagios守护进程。

  四、 已经做了什么?

  为使过程简单,已经完成了少量配置文件的工作:

  已经把check_nt命令加入到了commands.cfg文件中,就可以直接使用check_nt插件来监控Windows服务;

  一个Windows机器的主机对象模板(命名为windows-server)已经在templates.cfg文件里创建好了,可以更容易地加入一个新的Windows主机对象定义。

  常用的配置文件可以在/usr/local/nagios/etc/objects/目录里找到。如果愿意可以对里面的对象进行修改以适应你的要求。但是,如果你没有熟悉配置Nagios之前劝你不要这么做。开始时可以只是按照下面的指令操作来快速完成监控Windows机器。

  五、首要条件

  首次监控一台Winodws机器时需要对Nagios做点额外的工作,记住,仅仅是监控第一台Windows机器时需要做这些工作。

  编辑Nagios的主配置文件

  1.   vi /usr/local/nagios/etc/nagios.cfg  
  2.  

  把下面这行最前面的#号去掉:

  1.   #cfg_file=/usr/local/nagios/etc/objects/windows.cfg  
  2.  

  保存配置文件并退出。

  刚才做的是什么呢?是让Nagios起用/usr/local/nagios/etc/objects/windows.cfg这个配置文件里的对象定义。在这个配置文件里可以加些Windows的主机与服务对象定义。该配置文件里已经包含有几个样例主机、主机组及服务对象定义。对于第一台Windows机器,可以只是简单地修改里面已经有的主机与服务对象定义而不要新创建一个。

  六、安装Windows代理程序

  在用Nagios监控Windows机器的私有服务之前,需要先在机器上安装代理程序。推荐使用NSClient++外部构件,它可以在http://sourceforge.net/projects/nscplus找到。如下指令可以安装一个基本的NSClient++外部构件,同时也配置好Nagios来监控这台Windows机器。

  1.从http://sourceforge.net/projects/nscplus站点下载最新稳定版的NSClient++软件包;

  2.展开软件包到一个目录下,如C:\NSClient++;

  3.打开一个命令行窗口并切换到C:\NSClient++目录下;

  4.用下面命令将NSClient++系统服务注册到系统里:

  1.   nsclient++ /install  
  2.  

  5.用下面命令安装NSClient++系统托盘程序('SysTray'是大小写敏感的):

  1.   nsclient++ SysTray  
  2.  

  6.打开服务管理器并确认NSClientpp服务可以在桌面交互(看一下服务管理器里的'Log On'选项页),如果没有允许桌面交互,点一下里面的选择项打开它。

  

 

  7.编辑NSC.INI文件(位于C:\NSClient++目录)并做如下修改:

  去掉在[modules]段里的列出模块程序的注释,除了CheckWMI.dll和RemoteConfiguration.dll;

  最好是修改一下在[Settings]段里的'password'选项;

  去掉在[Settings]段里的'allowed_hosts'选项注释,把Nagios服务所在主机的IP加到这一行里,或是置为空,让全部主机都可以联入;

  确认一下在[NSClient]段里的'port'选项里已经去掉注释并设置成'12489'(默认端口);

  8.用下面命令启动NSClient++服务:

  1.   nsclient++ /start  
  2.  

  9.如果安装正确,一个新的图标会出现在系统托盘里,是个黄圈里面有个黑色的'M';

  10.完成了。这台Windows机器可以加到Nagios监控配置里了...

  七、配置Nagios

  为监控Windows机器下面要在Nagios配置文件里加几个对象定义。

  编辑方式打开windows.cfg文件。

  1.   vi /usr/local/nagios/etc/objects/windows.cfg  
  2.  

  给Windows机器加一个新的主机对象定义以便监控。如果是被监控的第一台Windows机器,可以只是修改windows.cfg文件里的对象定义。修改host_name、alias和address域以符合那台Windows机器。

  1.   define host{  
  2.  
  3.   use windows-server ; Inherit default values from a Windows server template (make sure you keep this line!)  
  4.  
  5.   host_name winserver  
  6.  
  7.   alias My Windows Server  
  8.  
  9.   address 192.168.1.2  
  10.  
  11.   }  
  12.  

  好了。下面可以加几个服务定义(在同一个配置文件里)以使Nagios监控Windows机器上的不同属性内容。如果是第一台Windows机器,可以只是修改windows.cfg里的服务对象定义。

  注意:用你刚刚加好的主机对象定义里的host_name来替换例子里的"winserver"。

  加入下面的服务定义以监控运行于Windows机器上的NSClient++外部构件的版本。当到时间要升级Windows机器上的外部构件时这信息会很用有,因为它可以告知这台Windows机器上的NSClient++需要升级到最新版本。

  1.   define service{  
  2.  
  3.   use generic-service  
  4.  
  5.   host_name winserver  
  6.  
  7.   service_description NSClient++ Version  
  8.  
  9.   check_command check_nt!CLIENTVERSION  
  10.  
  11.   }  
  12.  

  加入下面的服务定义以监控Windows机器的启动后运行时间。

  1.   define service{  
  2.  
  3.   use generic-service  
  4.  
  5.   host_name winserver  
  6.  
  7.   service_description Uptime  
  8.  
  9.   check_command check_nt!UPTIME  
  10.  
  11.   }  
  12.  

  加入下面的服务定义可监控Windows机器的CPU利用率,并在5分钟CPU负荷高于90%时给出一个紧急警报或是高于80%时给出一个告警警报。

  1.   define service{  
  2.  
  3.   use generic-service  
  4.  
  5.   host_name winserver  
  6.  
  7.   service_description CPU Load  
  8.  
  9.   check_command check_nt!CPULOAD!-l 5,80,90  
  10.  
  11.   }  
  12.  

  加入下面的服务定义可监控Windows机器的内存占用率,并在5分钟内存占用率高于90%时给出一个紧急警报或是高于80%时给出一个告警警报。

  1.   define service{  
  2.  
  3.   use generic-service  
  4.  
  5.   host_name winserver  
  6.  
  7.   service_description Memory Usage  
  8.  
  9.   check_command check_nt!MEMUSE!-w 80 -c 90  
  10.  
  11.   }  
  12.  

  加入下面的服务定义可监控Windows机器的C:盘的磁盘利用率,并在磁盘利用率高于90%时给出一个紧急警报或是高于80%时给出一个告警警报。

  1.   define service{  
  2.  
  3.   use generic-service  
  4.  
  5.   host_name winserver  
  6.  
  7.   service_description C:\ Drive Space  
  8.  
  9.   check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90  
  10.  
  11.   }  
  12.  

  加入下面的服务定义可监控Windows机器上的W3SVC服务状态,并在W3SVC服务停止时给出一个紧急警报。

  1.   define service{  
  2.  
  3.   use generic-service  
  4.  
  5.   host_name winserver  
  6.  
  7.   service_description W3SVC  
  8.  
  9.   check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC  
  10.  
  11.   }  
  12.  

  加入下面的服务定义可监控Windows机器上的Explorer.exe进程,并在进程没有运行时给出一个紧急警报。

  1.   define service{  
  2.  
  3.   use generic-service  
  4.  
  5.   host_name winserver  
  6.  
  7.   service_description Explorer  
  8.  
  9.   check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe  
  10.  
  11.   }  
  12.  

  都好了,已经加好了基础服务定义,可以监控Windows机器了,保存一下配置文件。

  八、 口令保护

  如果想指定保存在Windows机器上NSClient++配置文件里的口令,可以修改check_nt命令定义,让它带着口令。编辑方式打开commands.cfg文件。

  1.   vi /usr/local/nagios/etc/commands.cfg  
  2.  

  修改check_nt命令的定义,带上"-s "命令参数(这里的PASSWORD 要换成你Windows机器的真正口令),象这样:

  1.   define command{  
  2.  
  3.   command_name check_nt  
  4.  
  5.   command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$  
  6.  
  7.   }  
  8.  

  保存文件退出。

  九、重启动Nagios

  如果修改好Nagios配置文件,需要验证你的配置文件并重启动Nagios。

  如果验证配置文件过程中有什么错误信息,在做下一步前一定要修正好配置文件。一定要保证验证过程中不再有出错信息后再启动或重启动Nagios!

 【编辑推荐】

Nagios的插件的使用

nagios的快速启动选项

启动与停止Nagios

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...