如何用通过OpenNMS监控Windows 服务器[ZT]

OpenNMS可以监控可用性和性能参数。下面看看OpenNMS监控Windows服务器的三种情况。

第一种情况:
Windows机器上没有安装SNMP服务,在自动发现了这个节点后,它会被加入节点列表,之后它被定期的轮询。如果这个节点断网了,OpenNMS会报警;同时这个节点的可用性被计算。自动发现还会发现这个机器上的服务。ICMP是肯定会有的,还可能有http等其他的服务;这些服务也会被定时的轮询,如果某个服务停了,这个节点的整个的可用性受到影响。这种情况下该节点的所有服务的响应时间会被OpenNMS收集并保持历史数据。

第二种情况:
安装了SNMP服务。先说一下windows服务的安全性,默认情况下public是默认的只读密码;为了更加安全可以配置其他的只读密码,并指定某些特定的IP才能访问这个节点。这个策略在Windows的觉策略中很容易实现,或者说建议使用域控制器来管理这个策略,比较方便。假定OpenNMS能访问该节点的snmp服务的情况下。这些数据会增加:SNMPAttributes;在选择了资源图后,可以看到snmp的节点数据和接口数据。进入后可以看到,其实收集的是一个tcp/ip接口上基本的信息:流量,连接数,丢包,错包等。个人认为流量是个最有用的数据,特别是对于一些简单的web/ftp服务器也就够用了。

第三种情况:
我们需要监控到操作系统的性能数据cpu/disk/RAM等。就需要安装一个snmp代理,这个代理可以提供这些信息,opennms才能通过snmp协议收集这些数据。需要到下面网址下载一个免费的snmp代理,当然这个产品也有收费版本:http://www.wtcs.org/informant/download.htm这个代理很小需要在windows机器上安装一下。默认情况下OpenNMS的对windows采集模板中包含了对cpu/disk/ram等数据的采集,等到下一次OpenNMS在采集这个机器的时候相关数据就会被显示在节点snmp数据下面。

这里是通过这个免费的snmp代理能采集到的数据:

/Program Files/SNMP Informant/standard/mibs/informant-std-tree.txt 

--standard(1.3.6.1.4.1.9600.1.1) 

 | 

 +--logicalDiskTable(1) 

 | | 

 | +--logicalDiskEntry(1) [lDiskInstance] 

 | | 

 | +-- r-n InstanceName lDiskInstance(1) 

 | +-- r-n Gauge32 lDiskPercentDiskReadTime(2) 

 | +-- r-n Gauge32 lDiskPercentDiskTime(3) 

 | +-- r-n Gauge32 lDiskPercentDiskWriteTime(4) 

 | +-- r-n Gauge32 lDiskPercentFreeSpace(5) 

 | +-- r-n Gauge32 lDiskPercentIdleTime(6) 

 | +-- r-n Gauge32 lDiskAvgDiskQueueLength(7) 

 | +-- r-n Gauge32 lDiskAvgDiskReadQueueLength(8) 

 | +-- r-n Gauge32 lDiskAvgDiskWriteQueueLength(9) 

 | +-- r-n Gauge32 lDiskAvgDiskSecPerRead(10) 

 | +-- r-n Gauge32 lDiskAvgDiskSecPerTransfer(11) 

 | +-- r-n Gauge32 lDiskAvgDiskSecPerWrite(12) 

 | +-- r-n Gauge32 lDiskCurrentDiskQueueLength(13) 

 | +-- r-n Gauge32 lDiskDiskBytesPerSec(14) 

 | +-- r-n Gauge32 lDiskDiskReadBytesPerSec(15) 

 | +-- r-n Gauge32 lDiskDiskReadsPerSec(16) 

 | +-- r-n Gauge32 lDiskDiskTransfersPerSec(17) 

 | +-- r-n Gauge32 lDiskDiskWriteBytesPerSec(18) 

 | +-- r-n Gauge32 lDiskDiskWritesPerSec(19) 

 | +-- r-n Gauge32 lDiskFreeMegabytes(20) 

 | +-- r-n Gauge32 lDiskSplitIOPerSec(21) 

 | 

 +--memory(2) 

 | | 

 | +-- r-n Gauge32 memoryAvailableBytes(1) 

 | +-- r-n Gauge32 memoryAvailableKBytes(2) 

 | +-- r-n Gauge32 memoryAvailableMBytes(3) 

 | +-- r-n Gauge32 memoryCommittedBytes(4) 

 | +-- r-n Gauge32 memoryCacheBytes(5) 

 | +-- r-n Gauge32 memoryCacheBytesPeak(6) 

 | +-- r-n Gauge32 memoryPageFaultsPerSec(7) 

 | +-- r-n Gauge32 memoryPagesInputPerSec(8) 

 | +-- r-n Gauge32 memoryPagesOutputPerSec(9) 

 | +-- r-n Gauge32 memoryPagesPerSec(10) 

 | +-- r-n Gauge32 memoryPoolNonpagedBytes(11) 

 | +-- r-n Gauge32 memoryPoolPagedBytes(12) 

 | +-- r-n Gauge32 memoryPoolPagedResidentBytes(13) 

 | +-- r-n Gauge32 memorySystemCacheResidentBytes(14) 

 | +-- r-n Gauge32 memorySystemCodeResidentBytes(15) 

 | +-- r-n Gauge32 memorySystemCodeTotalBytes(16) 

 | +-- r-n Gauge32 memorySystemDriverResidentBytes(17) 

 | +-- r-n Gauge32 memorySystemDriverTotalBytes(18) 

 | 

 +--networkInterfaceTable(3) 

 | | 

 | +--networkInterfaceEntry(1) [netInstance] 

 | | 

 | +-- r-n InstanceName netInstance(1) 

 | +-- r-n Gauge32 netBytesReceivedPerSec(2) 

 | +-- r-n Gauge32 netBytesSentPerSec(3) 

 | +-- r-n Gauge32 netBytesTotalPerSec(4) 

 | +-- r-n Gauge32 netCurrentBandwidth(5) 

 | +-- r-n Gauge32 netOutputQueueLength(6) 

 | +-- r-n Gauge32 netPacketsOutboundDiscarded(7) 

 | +-- r-n Gauge32 netPacketsOutboundErrors(8) 

 | +-- r-n Gauge32 netPacketsReceivedDiscarded(9) 

 | +-- r-n Gauge32 netPacketsReceivedErrors(10) 

 | +-- r-n Gauge32 netPacketsReceivedUnknown(11) 

 | +-- r-n Gauge32 netPacketsReceivedPerSec(12) 

 | +-- r-n Gauge32 netPacketsSentPerSec(13) 

 | +-- r-n Gauge32 netPacketsPerSec(14) 

 | 

 +--objects(4) 

 | | 

 | +-- r-n Gauge32 objectsProcesses(1) 

 | +-- r-n Gauge32 objectsThreads(2) 

 | 

 +--processorTable(5) 

 | | 

 | +--processorEntry(1) [cpuInstance] 

 | | 

 | +-- r-n InstanceName cpuInstance(1) 

 | +-- r-n Gauge32 cpuPercentDPCTime(2) 

 | +-- r-n Gauge32 cpuPercentInterruptTime(3) 

 | +-- r-n Gauge32 cpuPercentPrivilegedTime(4) 

 | +-- r-n Gauge32 cpuPercentProcessorTime(5) 

 | +-- r-n Gauge32 cpuPercentUserTime(6) 

 | +-- r-n Gauge32 cpuAPCBypassesPerSec(7) 

 | +-- r-n Gauge32 cpuDPCBypassesPerSec(8) 

 | +-- r-n Gauge32 cpuDPCRate(9) 

 | +-- r-n Gauge32 cpuDPCsQueuedPerSec(10) 

 | +-- r-n Gauge32 cpuInterruptsPerSec(11) 

 | 

 +--system(6) 

 | 

 +-- r-n Gauge32 systemSystemUpTime(1)




最后记得在看看这个许可证文件:

Program Files/SNMP Informant/standard/license.txt 

LICENSE.TXT 

----------- 

FREE OF CHARGE SOFTWARE PROGRAM LICENSE AGREEMENT for 

SNMP INFORMANT STANDARD EDITION (The Software) 


------------------------------------------------------------------------------ 

Copyright(c) 2005, Informant Systems, Inc. (www.informant-systems.com), and 

Copyright(c) 2003-2005, Williams Technology Consulting Services (www.wtcs.org) 

------------------------------------------------------------------------------ 

Product names used in this document are trademarks of their respective owners. 

* IMPORTANT-PLEASE READ CAREFULLY BEFORE INSTALLING THE SOFTWARE. 

------------------------------------------------------------------------------


后面略....

在安装了snmp代理之后,我们可以看到OpenNMS可以帮助我们完成windows服务器的可用性和性能管理。