OpenNMS扩展 – SNMP报表配置
SNMP报表的显示主要由两个文件,datacollection-config.xml与snmp-graph.properties。
定制SNMP图形报表主要步骤如下:
1. 通过SNMP获取数据(datacollection-config.xml)
在datacollection-config.xml文件中定义OID捕获数据,在此例中将捕获系统中CPU的占用情况(蓝色字体部分):
<group name = "windows-host" ifType = "ignore">
<mibObj oid=".1.3.6.1.2.1.25.3.3.1.2" instance="1" alias="cpuPercentBusy" type="integer" />
<!-- Drive information is from the hrStorage table. -->
<!-- I'm cheating and assuming that the second and third -->
<!-- entries refer to Drive_C and Drive_D -->
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.3" instance="2" alias="hrDescDisk2" type="string"/>
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.4" instance="2" alias="hrUnitsDisk2" type="integer" />
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.5" instance="2" alias="hrSizeDisk2" type="integer" />
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.6" instance="2" alias="hrUsedDisk2" type="integer" />
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.3" instance="3" alias="hrDescDisk3" type="string"/>
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.4" instance="3" alias="hrUnitsDisk3" type="integer" />
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.5" instance="3" alias="hrSizeDisk3" type="integer" />
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.6" instance="3" alias="hrUsedDisk3" type="integer" />
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.3" instance="4" alias="hrDescDisk4" type="string"/>
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.4" instance="4" alias="hrUnitsDisk4" type="integer" />
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.5" instance="4" alias="hrSizeDisk4" type="integer" />
<mibObj oid=".1.3.6.1.2.1.25.2.3.1.6" instance="4" alias="hrUsedDisk4" type="integer" />
<!-- Memory in KBytes -->
<mibObj oid=".1.3.6.1.2.1.25.2.2" instance="0" alias="memorySize" type="integer" />
<!-- the total system's CPU resources consumed -->
<!—instance表示OID索引位置,alias表示别名 -->
<mibObj oid=".1.3.6.1.2.1.25.5.1.1.1" instance="1" alias="hrSWRunPerfCPU" type="integer" />
</group>
请注意,确保给定的OID能够在系统中找到,否则将不会产生RRDTool文件(RRDTool文件通常存储在$OPENNMS_HOME/share/rrd/snmp/目录下),可通过snmpget检测是否可以找到此OID。
[root@localhost /]# snmpget -v 1 -c public 192.168.6.21 .1.3.6.1.2.1.25.5.1.1.1.1
HOST-RESOURCES-MIB::hrSWRunPerfCPU.1 = INTEGER: 482801
2. 编辑SNMP图形属性文件(snmp-graph.properties)
2.1 检查RRDTOOL数据文件
定制的图形报表需定义如下属性:
l 名字(name):用来显示报表的名字。
l 列(colunms):显示RRDTool文件中的数据。
l 类型(type):如果状态跟每个网络接口有关联,则使用“interface”类型,如果影响整个结点的,则使用“node”类型。
一种获取RRDTool文件信息的方法是采用rrdtool info 命令行的方式,如下:
[root@localhost 13]# rrdtool info hrSWRunPerfCPU.rrd
filename = "hrSWRunPerfCPU.rrd"
rrd_version = "0001"
step = 300
last_update = 1211338458
ds[hrSWRunPerfCPU].type = "GAUGE"
ds[hrSWRunPerfCPU].minimal_heartbeat = 600
ds[hrSWRunPerfCPU].min = NaN
ds[hrSWRunPerfCPU].max = NaN
ds[hrSWRunPerfCPU].last_ds = "UNKN"
ds[hrSWRunPerfCPU].value = 3.5009052000e+08
ds[hrSWRunPerfCPU].unknown_sec = 0
rra[0].cf = "AVERAGE"
rra[0].rows = 8928
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[1].cf = "AVERAGE"
rra[1].rows = 8784
rra[1].pdp_per_row = 12
rra[1].xff = 5.0000000000e-01
rra[1].cdp_prep[0].value = 1.0469351560e+07
rra[1].cdp_prep[0].unknown_datapoints = 0
rra[2].cf = "MIN"
rra[2].rows = 8784
rra[2].pdp_per_row = 12
rra[2].xff = 5.0000000000e-01
rra[2].cdp_prep[0].value = 7.9226661000e+05
rra[2].cdp_prep[0].unknown_datapoints = 0
rra[3].cf = "MAX"
rra[3].rows = 8784
rra[3].pdp_per_row = 12
rra[3].xff = 5.0000000000e-01
rra[3].cdp_prep[0].value = 1.3079840700e+06
rra[3].cdp_prep[0].unknown_datapoints = 0
如果由于某种原因,如果rrdtool数据文件的一部分没有定义或没有数据,则相应的图形也将不会显示在Web上。
记得随时检查rrdtool数据文件的内容,输入:
rrdtool dump hrSWRunPerfCPU.rrd(按日期显示大量采集的数据)
2.2 添加图形定义
可以随时检查定义生成的数据文件产生的图形显示效果,用RRDTool图形生成命令行可以做到:
rrdtool graph hrSWRunPerfCPU.png --title " The total system's CPU resources consumed " --vertical-label \
Days "DEF:timeticks=hrSWRunPerfCPU.rrd:hrSWRunPerfCPU:AVERAGE" \
"CDEF:days=timeticks,8640000,/" AREA:days#FF0000:"Days" \
GPRINT:days:AVERAGE:"Avg \\:%8.1lf%s" GPRINT:days:MIN:"Min \\:%8.1lf%s" \
GPRINT:days:MAX:"Max \\:%8.1lf%s"
如下是snmp-graph.properties文件中hrSWRunPerfCPU图形报表属性配置:
report.microsoft.hrSWRunPerfCPU.name=CPU resources consumed
report.microsoft.hrSWRunPerfCPU.columns=hrSWRunPerfCPU
report.microsoft.hrSWRunPerfCPU.type=node
report.microsoft.hrSWRunPerfCPU.command=--title="The total system's CPU resources consumed" \
--vertical-label Days \
DEF:hrSWRunPerfCPU={rrd1}:hrSWRunPerfCPU:AVERAGE \
CDEF:days=hrSWRunPerfCPU,8640000,/ \
AREA:days#FF0000:"Days" \
GPRINT:days:AVERAGE:"Avg \\: %8.1lf %s" \
GPRINT:days:MIN:"Min \\: %8.1lf %s" \
GPRINT:days:MAX:"Max \\: %8.1lf %s" \
如果,定义的其中report.microsoft.hrSWRunPerfCPU.columns=hrSWRunPerfCPU中的hrSWRunPerfCPU是datacollection-config.xml文件中MIB的别名。报表的定义的key规则:report.+reports key中定义的报表名称+属性。
3. 添加新报表到报表属性
最后,为了显示产生的报表,需要在snmp-graph.properties文件的reports key 中添加microsoft.hrSWRunPerfCPU,并加逗号与\结束。
#report keys, list ALL prefab reports here!
reports=mib2.bits, mib2.discards, mib2.errors, mib2.HCbits, mib2.packets, \
mib2.tcpopen, mib2.tcperrs, mib2.tcpsegs, \
mib2.traffic-inout, \
mib2.ups-amp, mib2.ups-charge, mib2.ups-temp, mib2.ups-time, mib2.ups-volt, \
mib2printer.lifeCount, mib2printer.powerOnCount, \
apc.load, apc.percent, apc.temp, apc.time, apc.vac, \
checkpoint.pktsAccepted, checkpoint.pktsDropped, checkpoint.pktsLogged, checkpoint.pktsRejected, \
cisco.altigaactsess, cisco.altigacpu, cisco.altigafanspeed, cisco.altigatemp, \
cisco.altigatput, cisco.altigavoltage, cisco.altiga3volt, cisco.altiga5volt, \
cisco.avgbusy5, cisco.bufferfails, cisco.buffhits, cisco.buffmiss, \
cisco.ccmcti, cisco.ccmgs, cisco.ccmgw, cisco.ccmmd, cisco.ccmphones, \
cisco.ccmps, cisco.ccmvm, \
cisco.cike-bits, cisco.cike-dn, cisco.cike-fail, cisco.cike-init, cisco.cike-pkts, \
cisco.cike-p2ex, cisco.cike-p2exinv, cisco.cike-p2exrej, cisco.cike-tunnels, \
cisco.dropsin, cisco.dropsout, cisco.freemem, \
cisco.firewall, cisco.memory, \
cisco.pkts, cisco.protoin, cisco.protoout, cisco.temp, \
cisco.4bb, cisco.80bb, cisco.256bb, cisco.1550bb, \
extreme.currentTemp, \
foundry.actualTemp, foundry.cpuUtil1Min, foundry.dynMemUtil, \
hp.swbuffcorrupt, hp.swbufferfree, hp.swbufferinit, hp.swbuffermin, \
hp.swbuffermiss, hp.swbuffersize, hp.swfreemem, hp.switchcpu, hp.swmemalloc, hp.swtotalmem, \
hpux.cpu, hpux.memory, hpux.numFsMounted, hpux.numProcs, hpux.numUsers, hpux.swap, \
juniper.bufferPoolUtil, juniper.cpu, juniper.temp, \
mge.ambtemp, mge.ambhumid, mge.current, mge.level, mge.temp, mge.time, mge.voltage, \
microsoft.cpuPercentBusy, microsoft.hrDisk2, microsoft.hrDisk3, microsoft.hrDisk4, microsoft.hrSWRunPerfCPU, \
netsnmp.context, \
netsnmp.disk1, netsnmp.disk1percent, netsnmp.disk2, netsnmp.disk2percent, \
netsnmp.disk3, netsnmp.disk3percent, netsnmp.disk4, netsnmp.disk4percent, netsnmp.disk5, netsnmp.disk5percent, \
netsnmp.hrMemory, netsnmp.hrNumUsers, netsnmp.interrupts, \
netsnmp.hrSystemUptime, netsnmp.loadavg, netsnmp.swapinout, \
netBotz.air, netBotz.humid, netBotz.temp, \
nortel.kernelmem, nortel.kerneltasks, \
novell.cacheBuffers, novell.codeDataMemory, novell.diskSpaceSys, \
novell.diskSpaceVol2, novell.licensedConnections, novell.numberOfNLMsLoaded, novell.openFiles, \
sinf.availmem, sinf.mempool, sinf.paging, sinf.processes, sinf.sysmem, \
sinf.cpu0percent, sinf.cpu1percent, sinf.cpu2percent, sinf.cpu3percent, sinf.cputotalpercent, \
sinf.diskfreeC, sinf.diskfreeD, sinf.diskfreeE, sinf.diskfreetotal, \
sinf.exchange-is.vmfreeblks, sinf.exchange-is.users, \
sun.cpuTime, sun.diskxfer, sun.interrupts, sun.packets, sun.paging, sun.procs, \
sun.swap, sun.swapping, \
netsnmp.memStats, \
netsnmp.cpuStats, \
netsnmp.connectNums
我们定义的报表是microsoft.hrSWRunPerfCPU,如果没有在这里定义,当试图运行这个性能报表时,将会在Web页面上抛出一个异常:
Missing Parameter
The request you made was incomplete. It was missing the report parameter.
The following parameters are required:
report
node
4. 重启Tomcat与OpenNMS
su - tomcat -c "/usr/local/tomcat/bin/startup.sh"
/usr/local/opennms/source/work/bin/opennms.sh restart
大约过一两分钟RDD数据文件就会生成。
如果只是修改snmp-graph.properties文件,则不需重启OpenNMS,因为报表程序每次会重新读取此文件。
分享到:
相关推荐
1. **数据采集**:OpenNMS通过SNMP、JMX、WMI等方式收集网络设备的性能数据,如CPU利用率、内存使用情况、接口带宽等。 2. **数据可视化**:系统提供了丰富的图表和仪表盘,用于展示性能数据,帮助你识别潜在问题。...
在IT行业中,网络管理是至关重要的环节,而OpenNMS作为一款开源的网络管理系统,以其强大的功能和灵活的可扩展性,深受广大网络管理员的喜爱。"opennms-source.tar.gz_SNMP_openNMS"这个压缩包,便是OpenNMS源码的...
OpenNMS安装、配置详解 OpenNMS是一个流行的开源网络管理平台,提供了强大的网络监控和管理功能。本文将详细介绍如何在Ubuntu系统上安装和配置OpenNMS。 一、安装OpenNMS 1. 首先,需要编辑Ubuntu的sources.list...
NULL 博文链接:https://yinbangmin.iteye.com/blog/2414070
OpenNMS数据采集配置是这个系统中非常重要的一个环节,涉及到从网络设备中采集各种性能指标数据的过程,以及后续数据的存储、展示和告警的处理机制。接下来我们将详细介绍OpenNMS数据采集配置的相关知识点。 首先,...
对于OpenNMS的新用户,或者希望进一步了解如何配置和使用该系统的用户,提供了相关的安装、配置视频下载地址,方便用户快速入门和掌握系统使用。 需要注意的是,由于内容中有OCR技术识别的误差,实际操作时应核对...
本文将深入介绍如何在OpenNMS中配置邮件通知,让管理员能够通过邮件接收来自OpenNMS的事件通知。 首先,我们需要了解邮件服务器的配置。在OpenNMS中,邮件服务器的配置主要通过修改配置文件来实现。默认情况下,...
SNMP学习资料,对学SNMP的非常有帮助: 在不同操作系统中安装SNMP代理.mht SNMP的5种协议数据单元.mht SNMP基础简介.mht SNMP Informant How-To - OpenNMS.mht SnmpTrap工具的用法.txt
3. **JMX(Java管理扩展)**:用于管理和监控系统资源,OpenNMS通过JMX暴露管理接口,便于监控自身状态和配置。 4. **SNMP(简单网络管理协议)**:OpenNMS广泛使用SNMP协议来探测和管理网络设备,收集性能数据并...
openNMS1.6.5源码,最新稳定的版本。OpenNMS是第一个开发在...目前:OpenNMS专注与以下三个方面:服务轮询 - 检查应用服务的可用性,产生可用性报表。数据收集 - 收集、保存和报表网络信息数据,并设定和触发门限值
OpenNMS Introduction,OpenNMS architecture,OpenNMS SNMP Data Collection,Data Collection Configuration example
SNMP(简单网络管理协议)是网络设备之间交换管理信息的一种标准协议,OpenNMS支持通过SNMP来收集网络设备的状态信息和陷阱(traps),这些陷阱通常由网络设备在发生异常时主动发送。 "OpenNMS SNMP traps to RSS" ...
它是OpenNMS中最重要的配置文件之一,因为几乎所有监控任务都依赖于SNMP协议。 **示例代码片段:** ```xml <!-- snmp-config.xml 示例 --> <snmp-config retry="3" timeout="800" read-community="public" write-...
此配置流程的关键在于将OpenNMS与Newts及Cassandra有效集成,通过这种方式可以大大提升大规模监控场景下数据处理的性能和扩展性。Cassandra作为一个分布式NoSQL数据库,在高写入吞吐和水平扩展方面表现出色,这使得...
OpenNMS KSC Grafana 是一个非常实用的工具,它的主要功能是将OpenNMS Key Service Center (KSC) 报表转换为Grafana仪表板。这个工具极大地简化了网络监控数据的可视化过程,使得用户能够更直观地理解OpenNMS系统中...
7. **自动化和脚本**:openNMS支持自动化任务和脚本执行,例如通过RANCID(Really Awesome New Cisco INTF Detector)进行配置备份,或使用Perl、Python等脚本语言进行定制操作。 通过分析`opennms-1.10.3-1`源代码...
OpenNMS是由许多个人及组织,在OpenNMS软件专案这支大旗下,所共同打造的网络管理系统。从最初到2002年,程序代码是由Oculan Corporation开发并以GPL释出,后来后案的管理移交给 Tarus Balog。
这通常包括编辑配置文件(例如`/etc/opennms.properties`),设置数据库连接信息、SNMP配置等。如果需要修改性能图表的后端引擎,可能需要将图表引擎的配置更改为了"backshift"。 6. **启动OpenNMS**:配置完成后,...
向 openNMS 发送 snmp 陷阱的 Logback appender 当在应用程序中使用 logback 记录错误时,Logback SNMP appender 将事件发送到 OpenNMS。 Logback 示例配置 <? xml version = " 1.0 " encoding = " UTF-8 " ?...