OpenNMS可以监控可用性和性能参数。下面看看OpenNMS监控Windows服务器的三种情况。
第一种情况:
Windows机器上没有安装SNMP服务,在自动发现了这个节点后,它会被加入节点列表,之后它被定期的轮询。如果这个节点断网了,OpenNMS会报警;同时这个节点的可用性被计算。自动发现还会发现这个机器上的服务。ICMP是肯定会有的,还可能有http等其他的服务;这些服务也会被定时的轮询,如果某个服务停了,这个节点的整个的可用性受到影响。这种情况下该节点的所有服务的响应时间会被OpenNMS收集并保持历史数据。
第二种情况:
安装了SNMP服务。先说一下windows服务的安全性,默认情况下public是默认的只读密码;为了更加安全可以配置其他的只读密码,并指定某些特定的IP才能访问这个节点。这个策略在Windows的觉策略中很容易实现,或者说建议使用域控制器来管理这个策略,比较方便。假定OpenNMS能访问该节点的snmp服务的情况下。这些数据会增加:SNMP Attributes;在选择了资源图后,可以看到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服务器的可用性和性能管理。
2007-12-14
订阅:
博文评论 (Atom)
第四种方式
回复删除可以采用nsclient++
可以采集 更多指标
Documentation
Information
Commands/Modules
CheckDisk
CheckFileSize
CheckDriveSize
CheckFile
CheckEventLog
CheckSystem
CheckCPU
CheckUpTime
CheckServiceState
CheckProcState
CheckMem
CheckCounter
CheckHelpers
CheckAlwaysOK
CheckAlwaysCRITICAL
CheckAlwaysWARNING
CheckMultiple
FileLogger
NRPEListener
NSClientListener
SysTray
CheckWMI
CheckWMIValue
RemoteConfiguration
CheckExternalScripts
LUAScript
Guide
NSCAAgent
Donate