Nagios对Windows机器的监控

运维 系统运维
Nagios对Windows机器的监控:Nagios是一个监控系统运行状态和网络信息的监控系统。Nagios能监控所指定的本地或远程主机以及服务,同时提供异常通知功能等。这篇文章讲述的是Nagios对Windows机器的监控。

  NagiosWindows机器的监控

  监控方法的选择

  其实Nagios对服务器的监控方法有很多,但大体上可以分为三种:

  1. 通过snmp协议编写脚本使用snmpwalk或snmpget等client程序对远程主机进行数据的抓取

  2. 走c/s方式,通过特定的客户端用他们自己的协议对服务器进行数据抓取,这一类需要在目标服务器上安装服务器端(即Listener),服务器端通过自己的程序对服务器上的数据进行收集(wmi,vbscript),***再由nagios服务器上的客户端来取数据。这类的代表应用有NSClient++,pNSClient,nrpe_nt等等

  3. 还是走c/s方式,只不过这次nagios本机变成了服务器端,目标监控服务器上通过安装客户端向nagios服务器推送本机的相关数据。这类的代表应用有NSCA等

  鉴于我需要用到performance data来使用pnp进行绘图,而本人编程能力非常有限,再加上我是个非常懒的SA。所以,我选择了上面的第二类方式对我的所有Windows服务器进行监控,选择的应用是NSClient++。

  NSClient++

  NSClient++是针对Windows操作系统的一款简单但是功能强大又安全的监控服务器端,同时兼容了NSClient/NRPE/NSCA三种方式。它能监控cpu,内存,硬盘,进程,服务状态,性能计数器等等。NSClient++提供的CheckCommands

#p#

  服务器端配置

  安装NSClient++

  下载NSClient++

  将下载的压缩包解压到任意路径,这里举例解压到D盘根目录并重命名为NSClient。从命令行进行安装

  1.   D:\>”NSClient\NSClient++.exe” -install  
  2.  

  安装成功会看到下面两行提示

  1.   Service NSClientpp installed…  
  2.  
  3.   l NSClient++.cpp(224) Service installed!  
  4.  

  修改配置文件

  编辑nsc.ini,只针对需要修改的地方

  1.   [modules]  
  2.  
  3.   FileLogger.dll  
  4.  
  5.   CheckSystem.dll  
  6.  
  7.   CheckDisk.dll  
  8.  
  9.   NSClientListener.dll  
  10.  
  11.   NRPEListener.dll  
  12.  
  13.   CheckEventLog.dll  
  14.  
  15.   CheckHelpers.dll  
  16.  
  17.   CheckWMI.dll  
  18.  
  19.   CheckExternalScripts.dll  
  20.  
  21.   LUAScript.dll  
  22.  
  23.   CheckTaskSched.dll  
  24.  
  25.   [Settings]  
  26.  
  27.   #允许访问的主机IP,多个主机用,分隔  
  28.  
  29.   allowed_hosts=127.0.0.1/32  
  30.  
  31.   #使用此ini文件作为配置文件  
  32.  
  33.   use_file=1 
  34.  
  35.   [log]  
  36.  
  37.   file=nsclient.log  
  38.  
  39.   date_mask=%Y-%m-%d %H:%M:%S  
  40.  
  41.   root_folder=exe 
  42.  
  43.   [NSClient]  
  44.  
  45.   #允许访问的主机IP,多个主机用,分隔  
  46.  
  47.   allowed_hosts=127.0.0.1/32  
  48.  
  49.   #监听端口  
  50.  
  51.   port=5666 
  52.  
  53.   socket_timeout=30 
  54.  
  55.   [NRPE]  
  56.  
  57.   #监听端口  
  58.  
  59.   port=5667 
  60.  
  61.   command_timeout=60 
  62.  
  63.   #不使用ssl,否则容易出错  
  64.  
  65.   use_ssl=0 
  66.  
  67.   #允许访问的主机IP,多个主机用,分隔  
  68.  
  69.   allowed_hosts=127.0.0.1/32  
  70.  
  71.   socket_timeout=30 
  72.  
  73.   #启用performance_data(关键,就看着他画图呢)  
  74.  
  75.   performance_data=1 
  76.  
  77.   [NRPE Handlers]  
  78.  
  79.   #定义NRPE的命令  
  80.  
  81.   #监测内存  
  82.  
  83.   check_mem=inject checkMem MaxWarn=80MaxCrit=90ShowAll=long type=physical 
  84.  

  编辑完成以后保存关闭,然后在Windows的服务里面找到新装的NSClientpp服务,启动它。

#p#

  客户端配置(即nagios监控机)

  修改commands.cfg,增加使用NSClient和NRPE收集数据的命令,因为NSClient监测到的内存大小都大于实际的物理内存(估计可能是总计),所以使用NRPE监测内存

 

  1.   # ‘check_remote_nt_disk’ command definition,监测硬盘使用量  
  2.  
  3.   define command{  
  4.  
  5.   command_name check_remote_nt_disk  
  6.  
  7.   command_line $USER1$/check_nt -H $ARG1$ -p $ARG2$ -v $ARG3$ -l $ARG4$ -w $ARG5$ -c $ARG6$  
  8.  
  9.   }  
  10.  
  11.   # ‘check_remote_nt_cpu’ command definition,监测cpu负载  
  12.  
  13.   define command{  
  14.  
  15.   command_name check_remote_nt_cpu  
  16.  
  17.   command_line $USER1$/check_nt -H $ARG1$ -p $ARG2$ -v $ARG3$ -l $ARG4$  
  18.  
  19.   }  
  20.  
  21.   # ‘check_nt_mem_nrpe’ command definition,监测内存使用量  
  22.  
  23.   define command{  
  24.  
  25.   command_name check_nt_mem_nrpe  
  26.  
  27.   command_line $USER1$/check_nrpe -H $ARG1$ -n -p $ARG2$ -c $ARG3$  
  28.  
  29.   }  
  30.  
  31.   # ‘check_avg_disk_queue’ command definition,监测硬盘读写队列  
  32.  
  33.   define command{  
  34.  
  35.   command_name check_avg_disk_queue  
  36.  
  37.   command_line $USER1$/check_nt -H $ARG1$ -p $ARG2$ -v $ARG3$ -l $ARG4$ -d $ARG5$ -w $ARG6$ -c $ARG7$  
  38.  
  39.   }  
  40.  

  修改localhost.cfg中service定义里面的check_command

  1.   define service{  
  2.  
  3.   use web-service,service-pnp  
  4.  
  5.   host_name web1  
  6.  
  7.   service_description disk-d  
  8.  
  9.   check_command check_remote_nt_disk!10.10.10.11!5666!USEDDISKSPACE!d!85!90  
  10.  
  11.   }  
  12.  
  13.   define service{  
  14.  
  15.   use web-service,service-pnp  
  16.  
  17.   host_name web1  
  18.  
  19.   service_description mem  
  20.  
  21.   check_command check_nt_mem_nrpe!10.10.10.11!5667!check_mem  
  22.  
  23.   }  
  24.  
  25.   define service{  
  26.  
  27.   use web-service,service-pnp  
  28.  
  29.   host_name web4  
  30.  
  31.   service_description avg-disk-queue  
  32.  
  33.   check_command check_avg_disk_queue!10.10.10.24!5666!COUNTER!”\\PhysicalDisk(_Total)\\Avg. Disk Queue Length”,”%.2f”!SHOWALL!14!28  
  34.  
  35.   }  
  36.  

  修改完以后重新配置nagios使配置生效

  1.   #/etc/init.d/nagios reload  
  2.  

  至此所有配置完成。

【编辑推荐】

Nagios监控mysql从服务器状态

Nagios监控Mysql的方法

Nagios监控数据库的方法

责任编辑:zhaolei 来源: nagiostutorial
相关推荐

2011-03-21 13:10:13

NagiosWindows

2011-03-24 11:03:05

Nagios监控Linux

2011-07-01 10:26:15

NagiosWindows Ser

2011-03-25 14:25:38

NagiosWindows监控

2011-03-25 11:05:39

Nagioswindows

2011-04-06 14:24:27

Nagios监控Linux

2011-08-22 11:33:48

nagios

2011-03-04 10:47:06

Nagios监控Sphinx

2011-03-24 10:08:39

Nagios监控oracle

2011-03-24 10:59:09

Nagios监控Mysql

2011-03-28 17:18:57

nagios监控iostat

2011-03-21 14:53:27

Nagios监控Linux

2011-04-01 15:42:13

CactiNagios

2011-03-31 16:11:22

Redhat配置nagios

2012-02-22 22:21:15

nagios开源

2011-03-21 14:43:42

2011-03-22 09:07:12

nagios监控oracle

2011-03-22 13:00:49

Nagios监控

2011-03-21 13:10:15

Nagios监控

2011-03-23 10:17:24

点赞
收藏

51CTO技术栈公众号