Nagios对Windows机器的监控
创始人
2024-07-24 02:21:17
0

  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=80% MaxCrit=90% ShowAll=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监控数据库的方法

相关内容

热门资讯

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