Chinaunix首页 | 论坛 | 博客
  • 博客访问: 409165
  • 博文数量: 56
  • 博客积分: 842
  • 博客等级: 准尉
  • 技术积分: 761
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-22 21:20
文章分类

全部博文(56)

文章存档

2018年(2)

2017年(3)

2016年(8)

2015年(1)

2014年(8)

2013年(7)

2012年(9)

2011年(5)

2010年(2)

2009年(11)

我的朋友

分类: 系统运维

2014-01-26 15:04:12

使用opennms网管软件监控设备cpu、内存性能


一、windows系统的cpu、内存性能数据采集
在Windows系统里面安装informant-std采集代理,在http://www.snmp-informant.com/downloads.htm下载,安装后重启snmp服务,然后再
opennms里面即可看到cpu、内存等数据。

二、交换机、防火墙等的cpu、内存性能数据采集
以h3c交换机为例:
1. 安装net-snmp,net-snmp-utils在opennms服务器上,以便使用snmpwalk

2. 编辑 /opt/opennms/etc/datacollection-config.xml
   增加一行
  
   前面 
   
3. 转换mib文件
    将H3C的mib文件拷贝到/opt/opennms/contrib/mibparser/mibs里面
    cd /opt/opennms/contrib/mibparser/mibs
   /opt/opennms/contrib/mibparser/dist/parseMib.sh huawei-3com-oid.mib h3c-common-system.mib h3c-entity-ext.mib >h3ccompact.txt
    
    资源使用情况的oid定义在h3c-entity-ext.mib,这个h3c-entity-ext.mib的转换依赖于huawei-3com-oid.mib和h3c-common-system.mib两个文件。
    转换后的信息放在h3ccompact.txt文件中,方便以后使用
    h3ccompact.txt文件中的内容:
    Looking for a good java...
    Using java in user's path...
    Checking Java version for 1.4+...
    Version is: java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
    Checking for JAVA_HOME...
    JAVA_HOME not set, trying to find it...
    java path is in /usr/bin, looking for actual HOME...
    Checking Java version for 1.4+...
    Version is: java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
    JAVA_HOME set to: /usr/java/default.
    Calling parser...


ndex" alias="h3cEntityExtCpuUsageTOOLONG" type="INTEGER" />
ndex" alias="h3cEntityExtCpuUsageThresholdTOOLONG" type="INTEGER" />
ndex" alias="h3cEntityExtMemUsageTOOLONG" type="INTEGER" />
ndex" alias="h3cEntityExtMemUsageThresholdTOOLONG" type="INTEGER" />
Index" alias="h3cEntityExtMemSize" type="INTEGER" />
Index" alias="h3cEntityExtUpTime" type="INTEGER" />   

注意:
   alias="h3cEntityExtMemUsageTOOLONG"    这个表示别名太长,名字不能超过19个字符
   在后面的h3c.xml文件里面要改别名

按照H3C官方文档使用snmpwalk工具取值看看结果
 snmpwalk -v 2c -c COMMUNITY device_ip .1.3.6.1.4.1.2011.10.2.6.1.1.1.1.6
结果如下:
 SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.1 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.2 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.6 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.7 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.8 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.9 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.10 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.11 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.30 = INTEGER: 74
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.31 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.33 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.34 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.54 = INTEGER: 0
SNMPv2-SMI::enterprises.2011.10.2.6.1.1.1.1.8.55 = INTEGER: 0
..........
结果里面只有一个有效值,记住这个有效值里面的oid值
  
4. 编辑/opt/opennms/etc/datacollection/h3c.xml

               ##定义采集群名称 ,这个name要跟datacollection-config.xml文件里面的dataCollectionGroup="h3c"的值一致

   
                 resourceLabel="${index}">       ##定义资源 ,name和label用个容易识别的
     
     
   


    
                 resourceLabel="${index}">
     
     
   

    
     
         ##定义采集群
              ##instance的值要用上面snmpwalk -v 2c -c COMMUNITY
                                                                                                                  ##device_ip .1.3.6.1.4.1.2011.10.2.6.1.1.1.1.6里面有有效值的oid的最后一节的值
          
         
        
     
      
     
                
         
     

     
                
         
     

      

            ##定义设备
        .1.3.6.1.4.1.25506.1.    ##这个oid在opennms自动扫描设备后可以看到里面有设备sysObjectID
       
          h3c-entity-ext
       
     
      
     
        .1.3.6.1.4.1.25506.1.1
       
          h3c-S5500-EI
       
     
      
     
        .1.3.6.1.4.1.25506.1.9
       
          h3c-S5500-SI
       
     



注意:
  alias="h3cCpuUsage"    别名不能超过19个字符

编辑 /opt/opennms/etc/snmp-graph.properties.d/h3c-graph.properties

 ##############################################################################
##
##  Please add report definition in a new line to make it easier
##  for script based sanity checks
##
##################################################

reports=h3c.cpuusage, \
h3c.MemUsage


######
###### Reports Generated From H3C OIDs
######

 
 
 
report.h3c.cpuusage.name=CPU Usage (H3C)                  ##report.h3c.cpuusage此处要跟上面的列表一致
report.h3c.cpuusage.columns=h3cCpuUsage                   ##h3cCpuUsage这个要跟h3c.xml里面的别名一致
report.h3c.cpuusage.type=nodeSnmp                         ##nodeSnmp  这个表示从snmp采集数据
report.h3c.cpuusage.command=--title="CPU Usage (H3C)" \    ##这个是图片上面的标题
 --vertical-label="Percent Utilization" \                 ##这后面的是rrdtool的参数
 --upper-limit 100 \
 DEF:h3cCpuUsage={rrd1}:h3cCpuUsage:AVERAGE \
 DEF:minh3cCpuUsage={rrd1}:h3cCpuUsage:MIN \
 DEF:maxh3cCpuUsage={rrd1}:h3cCpuUsage:MAX \
 CDEF:dpercent10=0,h3cCpuUsage,GT,0,h3cCpuUsage,IF \
 CDEF:dpercent20=10,h3cCpuUsage,GT,0,h3cCpuUsage,IF \
 CDEF:dpercent30=20,h3cCpuUsage,GT,0,h3cCpuUsage,IF \
 CDEF:dpercent40=30,h3cCpuUsage,GT,0,h3cCpuUsage,IF \
 CDEF:dpercent50=40,h3cCpuUsage,GT,0,h3cCpuUsage,IF \
 CDEF:dpercent60=50,h3cCpuUsage,GT,0,h3cCpuUsage,IF \
 CDEF:dpercent70=60,h3cCpuUsage,GT,0,h3cCpuUsage,IF \
 CDEF:dpercent80=70,h3cCpuUsage,GT,0,h3cCpuUsage,IF \
 CDEF:dpercent90=80,h3cCpuUsage,GT,0,h3cCpuUsage,IF \
 CDEF:dpercent100=90,h3cCpuUsage,GT,0,h3cCpuUsage,IF \
 COMMENT:"\\n" \
 COMMENT:"CPU average busy 1 min in %\\n" \
 AREA:dpercent10#5ca53f:"0-10% " \
 AREA:dpercent20#75b731:"11-20%" \
 AREA:dpercent30#90c22f:"21-30%" \
 AREA:dpercent40#b8d029:"31-40%" \
 AREA:dpercent50#e4e11e:"41-50%" \
 COMMENT:"\\n" \
 AREA:dpercent60#fee610:"51-60%" \
 AREA:dpercent70#f4bd1b:"61-70%" \
 AREA:dpercent80#eaa322:"71-80%" \
 AREA:dpercent90#de6822:"81-90%" \
 AREA:dpercent100#d94c20:"91-100%\\n" \
 COMMENT:"\\n" \
 LINE2:h3cCpuUsage#46683b:"CPU average busy 1 min in %" \
 GPRINT:h3cCpuUsage:AVERAGE:"Avg \\: %7.3lf%s" \
 GPRINT:h3cCpuUsage:MIN:"Min \\: %7.3lf%s" \
 GPRINT:h3cCpuUsage:MAX:"Max \\: %7.3lf%s\\n"
 
report.h3c.MemUsage.name=Mem Usage (H3C)
report.h3c.MemUsage.columns=h3cMemUsage
report.h3c.MemUsage.type=nodeSnmp
report.h3c.MemUsage.command=--title="Mem Usage (H3C)" \
 --vertical-label="Percent Utilization" \
 --upper-limit 100 \
 DEF:h3cMemUsage={rrd1}:h3cMemUsage:AVERAGE \
 DEF:minh3cMemUsage={rrd1}:h3cMemUsage:MIN \
 DEF:maxh3cMemUsage={rrd1}:h3cMemUsage:MAX \
 CDEF:dpercent10=0,h3cMemUsage,GT,0,h3cMemUsage,IF \
 CDEF:dpercent20=10,h3cMemUsage,GT,0,h3cMemUsage,IF \
 CDEF:dpercent30=20,h3cMemUsage,GT,0,h3cMemUsage,IF \
 CDEF:dpercent40=30,h3cMemUsage,GT,0,h3cMemUsage,IF \
 CDEF:dpercent50=40,h3cMemUsage,GT,0,h3cMemUsage,IF \
 CDEF:dpercent60=50,h3cMemUsage,GT,0,h3cMemUsage,IF \
 CDEF:dpercent70=60,h3cMemUsage,GT,0,h3cMemUsage,IF \
 CDEF:dpercent80=70,h3cMemUsage,GT,0,h3cMemUsage,IF \
 CDEF:dpercent90=80,h3cMemUsage,GT,0,h3cMemUsage,IF \
 CDEF:dpercent100=90,h3cMemUsage,GT,0,h3cMemUsage,IF \
 COMMENT:"\\n" \
 COMMENT:"Mem average busy 1 min in %\\n" \
 AREA:dpercent10#5ca53f:"0-10% " \
 AREA:dpercent20#75b731:"11-20%" \
 AREA:dpercent30#90c22f:"21-30%" \
 AREA:dpercent40#b8d029:"31-40%" \
 AREA:dpercent50#e4e11e:"41-50%" \
 COMMENT:"\\n" \
 AREA:dpercent60#fee610:"51-60%" \
 AREA:dpercent70#f4bd1b:"61-70%" \
 AREA:dpercent80#eaa322:"71-80%" \
 AREA:dpercent90#de6822:"81-90%" \
 AREA:dpercent100#d94c20:"91-100%\\n" \
 COMMENT:"\\n" \
 LINE2:h3cMemUsage#46683b:"Mem average busy 1 min in %" \
 GPRINT:h3cMemUsage:AVERAGE:"Avg \\: %7.3lf%s" \
 GPRINT:h3cMemUsage:MIN:"Min \\: %7.3lf%s" \
 GPRINT:h3cMemUsage:MAX:"Max \\: %7.3lf%s\\n"

 
 一台联想防火墙的内存数据采集示例:
 
 转换mib文件   /opt/opennms/contrib/mibparser/dist/parseMib.sh at-smi.mib at-sysinfo.mib,得到结果,节选部分:
em" type="Integer32" />

编辑LENOVOFireWall.xml文件



   
     
     
   

    
    
     
     
        
        
     
      
     
        
        
     
      
      

     
        .1.3.6.1.4.1.9833.1.1.
       
          LENOVOFireWallCPU
          LENOVOFireWallMEM
       
     



 编辑 /opt/opennms/etc/snmp-graph.properties.d/LENOVOFireWall-graph.properties
 
report.LENOVOFireWall.Memory.name=LenvoFireWallMemory
report.LENOVOFireWall.Memory.columns=srMemFree,srMemTotal
report.LENOVOFireWall.Memory.type=nodeSnmp
report.LENOVOFireWall.Memory.command=--title="LenovoFireWall Memory" \
 --vertical-label="Bytes" \
 --lower-limit 0 \
 --base=1024 \
 DEF:srMemFree={rrd1}:srMemFree:AVERAGE \
 DEF:minsrMemFree={rrd1}:srMemFree:MIN \
 DEF:maxsrMemFree={rrd1}:srMemFree:MAX \
 DEF:srMemTotal={rrd2}:srMemTotal:AVERAGE \
 DEF:minsrMemTotal={rrd2}:srMemTotal:MIN \
 DEF:maxsrMemTotal={rrd2}:srMemTotal:MAX \
 CDEF:srMemUsed=srMemTotal,srMemFree,- \            ##这两个数据的差值,逆波兰表示法
 CDEF:minMemUsed=srMemTotal,maxsrMemFree,- \
 CDEF:maxMemUsed=srMemTotal,minsrMemFree,- \
 AREA:srMemUsed#204a87:"Used    " \
 GPRINT:srMemUsed:AVERAGE:"Avg  \\: %8.2lf %s" \
 GPRINT:srMemUsed:MIN:"Min  \\: %8.2lf %s" \
 GPRINT:srMemUsed:MAX:"Max  \\: %8.2lf %s\\n" \
 STACK:srMemFree#73d216:"Free    " \
 GPRINT:srMemFree:AVERAGE:"Avg  \\: %8.2lf %s" \
 GPRINT:srMemFree:MIN:"Min  \\: %8.2lf %s" \
 GPRINT:srMemFree:MAX:"Max  \\: %8.2lf %s\\n" \
 LINE2:srMemTotal#ff0000:"Total Memory" \
 GPRINT:srMemTotal:AVERAGE:" Avg  \\: %8.2lf %s" \
 

如果内存大小显示的单位不正确,请将采集的数据乘以1024以变成正确的单位。

配置采集日志记录信息

vi /opt/opennms/etc/log4j.properties
log4j.category.OpenNMS.Collectd=DEBUG, COLLECTD

 重启opennms服务

现在在opennms里面就可以看到定义设备的cpu、内存等的使用率数据了。






排错:
可以看日志文件
 more /opt/opennms/logs/collectd.log |grep .1.3.6.1.4.1.2011.10.2.6.1.1.1.1.6.13
看有否采集到数据 
查看rrd文件,
ll /opt/opennms/share/rrd/snmp/
看里面的文件时间有否更新看数据是否写入。如是没有数据写入,修改别名试试。



阅读(4444) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

lnwu2014-11-12 09:02:21

rdsgf:你好,按照你的配置了,可我在opennms中找不到cpu的显示,如何进入呢?谢谢

配置正确的话会有显示的。
你先看看日志里面有没有采集到数据。
没有显示估计是/opt/opennms/etc/snmp-graph.properties.d里面的自建的文件有问题。
我碰到好多次都是自建的文件问题,仔细看你的graph.properties文件,肯定是有问题的,
注意里面的变量名要短些。

回复 | 举报

rdsgf2014-05-07 10:39:41

你好,按照你的配置了,可我在opennms中找不到cpu的显示,如何进入呢?谢谢