Lm Sensors Monitoring How-To
Subscribe

From OpenNMS

Jump to: navigation, search

Preparation

First check if lm_sensors are reachable via snmp:

snmpwalk -v2c -cpublic 127.0.0.1 .1.3.6.1.4.1.2021.13.16

You should get something like:

 .1.3.6.1.4.1.2021.13.16.2.1.1.1 = INTEGER: 0
 .1.3.6.1.4.1.2021.13.16.2.1.1.2 = INTEGER: 1
 .1.3.6.1.4.1.2021.13.16.2.1.1.3 = INTEGER: 2
 .1.3.6.1.4.1.2021.13.16.2.1.1.4 = INTEGER: 3
 .1.3.6.1.4.1.2021.13.16.2.1.1.5 = INTEGER: 4
 .1.3.6.1.4.1.2021.13.16.2.1.1.6 = INTEGER: 5
 .1.3.6.1.4.1.2021.13.16.2.1.1.7 = INTEGER: 6
 .1.3.6.1.4.1.2021.13.16.2.1.2.1 = STRING: Core0 Temp
 .1.3.6.1.4.1.2021.13.16.2.1.2.2 = STRING: Core1 Temp
 .1.3.6.1.4.1.2021.13.16.2.1.2.3 = STRING: Core0 Temp
 .1.3.6.1.4.1.2021.13.16.2.1.2.4 = STRING: Core1 Temp
 .1.3.6.1.4.1.2021.13.16.2.1.2.5 = STRING: temp1
 .1.3.6.1.4.1.2021.13.16.2.1.2.6 = STRING: temp2
 .1.3.6.1.4.1.2021.13.16.2.1.2.7 = STRING: temp3
 .1.3.6.1.4.1.2021.13.16.2.1.3.1 = Gauge32: 57000
 .1.3.6.1.4.1.2021.13.16.2.1.3.2 = Gauge32: 59000
 .1.3.6.1.4.1.2021.13.16.2.1.3.3 = Gauge32: 62000
 .1.3.6.1.4.1.2021.13.16.2.1.3.4 = Gauge32: 56000
 .1.3.6.1.4.1.2021.13.16.2.1.3.5 = Gauge32: 59000
 .1.3.6.1.4.1.2021.13.16.2.1.3.6 = Gauge32: 33000
 .1.3.6.1.4.1.2021.13.16.2.1.3.7 = Gauge32: 28500
 .1.3.6.1.4.1.2021.13.16.3.1.1.1 = INTEGER: 0
 .1.3.6.1.4.1.2021.13.16.3.1.1.2 = INTEGER: 1
 .1.3.6.1.4.1.2021.13.16.3.1.1.3 = INTEGER: 2
 .1.3.6.1.4.1.2021.13.16.3.1.2.1 = STRING: fan1
 .1.3.6.1.4.1.2021.13.16.3.1.2.2 = STRING: fan2
 .1.3.6.1.4.1.2021.13.16.3.1.2.3 = STRING: fan3
 .1.3.6.1.4.1.2021.13.16.3.1.3.1 = Gauge32: 0
 .1.3.6.1.4.1.2021.13.16.3.1.3.2 = Gauge32: 0
 .1.3.6.1.4.1.2021.13.16.3.1.3.3 = Gauge32: 0
 .1.3.6.1.4.1.2021.13.16.4.1.1.1 = INTEGER: 0
 .1.3.6.1.4.1.2021.13.16.4.1.1.2 = INTEGER: 1
 .1.3.6.1.4.1.2021.13.16.4.1.1.3 = INTEGER: 2
 .1.3.6.1.4.1.2021.13.16.4.1.1.4 = INTEGER: 3
 .1.3.6.1.4.1.2021.13.16.4.1.1.5 = INTEGER: 4
 .1.3.6.1.4.1.2021.13.16.4.1.1.6 = INTEGER: 5
 .1.3.6.1.4.1.2021.13.16.4.1.1.7 = INTEGER: 6
 .1.3.6.1.4.1.2021.13.16.4.1.1.8 = INTEGER: 7
 .1.3.6.1.4.1.2021.13.16.4.1.1.9 = INTEGER: 8
 .1.3.6.1.4.1.2021.13.16.4.1.2.1 = STRING: VCore 1
 .1.3.6.1.4.1.2021.13.16.4.1.2.2 = STRING: VCore 2
 .1.3.6.1.4.1.2021.13.16.4.1.2.3 = STRING: +3.3V
 .1.3.6.1.4.1.2021.13.16.4.1.2.4 = STRING: +5V
 .1.3.6.1.4.1.2021.13.16.4.1.2.5 = STRING: +12V
 .1.3.6.1.4.1.2021.13.16.4.1.2.6 = STRING: -12V
 .1.3.6.1.4.1.2021.13.16.4.1.2.7 = STRING: -5V
 .1.3.6.1.4.1.2021.13.16.4.1.2.8 = STRING: V5SB
 .1.3.6.1.4.1.2021.13.16.4.1.2.9 = STRING: VBat
 .1.3.6.1.4.1.2021.13.16.4.1.3.1 = Gauge32: 1504
 .1.3.6.1.4.1.2021.13.16.4.1.3.2 = Gauge32: 1424
 .1.3.6.1.4.1.2021.13.16.4.1.3.3 = Gauge32: 3312
 .1.3.6.1.4.1.2021.13.16.4.1.3.4 = Gauge32: 5107
 .1.3.6.1.4.1.2021.13.16.4.1.3.5 = Gauge32: 12099
 .1.3.6.1.4.1.2021.13.16.4.1.3.6 = Gauge32: 4294955512
 .1.3.6.1.4.1.2021.13.16.4.1.3.7 = Gauge32: 4294962551
 .1.3.6.1.4.1.2021.13.16.4.1.3.8 = Gauge32: 5322
 .1.3.6.1.4.1.2021.13.16.4.1.3.9 = Gauge32: 3040
 .1.3.6.1.4.1.2021.13.16.5.1.1.1 = INTEGER: 0
 .1.3.6.1.4.1.2021.13.16.5.1.1.2 = INTEGER: 1
 .1.3.6.1.4.1.2021.13.16.5.1.1.3 = INTEGER: 2
 .1.3.6.1.4.1.2021.13.16.5.1.2.1 = STRING: vid
 .1.3.6.1.4.1.2021.13.16.5.1.2.2 = STRING: vrm
 .1.3.6.1.4.1.2021.13.16.5.1.2.3 = STRING: alarms
 .1.3.6.1.4.1.2021.13.16.5.1.3.1 = Gauge32: 1550
 .1.3.6.1.4.1.2021.13.16.5.1.3.2 = Gauge32: 2400
 .1.3.6.1.4.1.2021.13.16.5.1.3.3 = Gauge32: 3272000

Configuration

datacollection-config.xml

<resourceType name="lmTempIndex" label="Temp Table Index (lmSensors MIB)" 
    resourceLabel="${lms-tempdevice} (index ${index})">
  <persistenceSelectorStrategy class="org.opennms.netmgt.collectd.PersistAllSelectorStrategy"/>
  <storageStrategy class="org.opennms.netmgt.dao.support.IndexStorageStrategy"/>
</resourceType>

<resourceType name="lmFanIndex" label="Fan Table Index (lmSensors MIB)"
    resourceLabel="${lms-fandevice} (index ${index})">
  <persistenceSelectorStrategy class="org.opennms.netmgt.collectd.PersistAllSelectorStrategy"/>
  <storageStrategy class="org.opennms.netmgt.dao.support.IndexStorageStrategy"/>
</resourceType>

<resourceType name="lmVoltIndex" label="Volt Table Index (lmSensors MIB)"
    resourceLabel="${lms-voltdevice} (index ${index})">
  <persistenceSelectorStrategy class="org.opennms.netmgt.collectd.PersistAllSelectorStrategy"/>
  <storageStrategy class="org.opennms.netmgt.dao.support.IndexStorageStrategy"/>
</resourceType>

<!-- lmsensors MIBs -->
<group name="lmsensors-temp" ifType="all">
  <mibObj oid=".1.3.6.1.4.1.2021.13.16.2.1.2" instance="lmTempIndex" alias="lms-tempdevice" type="string"/>
  <mibObj oid=".1.3.6.1.4.1.2021.13.16.2.1.3" instance="lmTempIndex" alias="lms-temp" type="gauge32"/>
</group>
<group name="lmsensors-fan" ifType="all">
  <mibObj oid=".1.3.6.1.4.1.2021.13.16.3.1.2" instance="lmFanIndex" alias="lms-fandevice" type="string"/>
  <mibObj oid=".1.3.6.1.4.1.2021.13.16.3.1.3" instance="lmFanIndex" alias="lms-fan" type="gauge32"/>
</group>
<group name="lmsensors-volt" ifType="all">
  <mibObj oid=".1.3.6.1.4.1.2021.13.16.4.1.2" instance="lmVoltIndex" alias="lms-voltdevice" type="string"/>
  <mibObj oid=".1.3.6.1.4.1.2021.13.16.4.1.3" instance="lmVoltIndex" alias="lms-volt" type="gauge32"/>
</group>

<systemDef name="Net-SNMP">
  <sysoidMask>.1.3.6.1.4.1.8072.3.</sysoidMask>
  <collect>
    <includeGroup>mib2-host-resources-system</includeGroup>
    <includeGroup>mib2-host-resources-memory</includeGroup>
    <includeGroup>mib2-X-interfaces</includeGroup>
    <includeGroup>net-snmp-disk</includeGroup>
    <includeGroup>openmanage-coolingdevices</includeGroup>
    <includeGroup>openmanage-temperatureprobe</includeGroup>
    <includeGroup>openmanage-powerusage</includeGroup>
    <includeGroup>ucd-loadavg</includeGroup>
    <includeGroup>ucd-memory</includeGroup>
    <includeGroup>ucd-sysstat</includeGroup>
    <includeGroup>ucd-sysstat-raw</includeGroup>
    <includeGroup>ucd-sysstat-raw-more</includeGroup>
    <includeGroup>lmsensors-temp</includeGroup>
    <includeGroup>lmsensors-fan</includeGroup>
    <includeGroup>lmsensors-volt</includeGroup>
  </collect>
</systemDef>

snmp-graph.properties

 lmsensors.temp, lmsensors.fan, lmsensors.volt
 ...
 report.lmsensors.temp.name=lmSensors Temperature Sensor
 report.lmsensors.temp.columns=lms-temp
 report.lmsensors.temp.type=lmTempIndex
 report.lmsensors.temp.propertiesValues=lms-tempdevice
 report.lmsensors.temp.command=--title="Temperature on {lms-tempdevice}" \
  DEF:dtemp={rrd1}:lms-temp:AVERAGE \
  DEF:minDtemp={rrd1}:lms-temp:MIN \
  DEF:maxDtemp={rrd1}:lms-temp:MAX \
  CDEF:btemp=dtemp,1024,/ \
  CDEF:minBtemp=minDtemp,1024,/ \
  CDEF:maxBtemp=maxDtemp,1024,/ \
  LINE2:btemp#0000ff:"Temperature:" \
  GPRINT:btemp:AVERAGE:" Avg  \\: %8.2lf %s" \
  GPRINT:btemp:MIN:"Min  \\: %8.2lf %s" \
  GPRINT:btemp:MAX:"Max  \\: %8.2lf %s\\n" \
 
 report.lmsensors.fan.name=lmSensors Fan Sensor
 report.lmsensors.fan.columns=lms-fan
 report.lmsensors.fan.type=lmFanIndex
 report.lmsensors.fan.propertiesValues=lms-fandevice
 report.lmsensors.fan.command=--title="Fan Speed on {lms-fandevice}" \
  DEF:dfan={rrd1}:lms-fan:AVERAGE \
  DEF:minDfan={rrd1}:lms-fan:MIN \
  DEF:maxDfan={rrd1}:lms-fan:MAX \
  LINE2:dfan#0000ff:"Fan Speed:" \ 
  GPRINT:dfan:AVERAGE:" Avg  \\: %8.2lf %s" \
  GPRINT:dfan:MIN:"Min  \\: %8.2lf %s" \
  GPRINT:dfan:MAX:"Max  \\: %8.2lf %s\\n" \
 
 report.lmsensors.volt.name=lmSensors Volt Sensor
 report.lmsensors.volt.columns=lms-volt
 report.lmsensors.volt.type=lmVoltIndex
 report.lmsensors.volt.propertiesValues=lms-voltdevice
 report.lmsensors.volt.command=--title="Volt on {lms-voltdevice}" \
  DEF:dvolt={rrd1}:lms-volt:AVERAGE \
  DEF:minDvolt={rrd1}:lms-volt:MIN \
  DEF:maxDvolt={rrd1}:lms-volt:MAX \
  CDEF:bvolt=dvolt,1024,/ \
  CDEF:minBvolt=minDvolt,1024,/ \
  CDEF:maxBvolt=maxDvolt,1024,/ \
  LINE2:bvolt#0000ff:"Volt Speed:" \
  GPRINT:bvolt:AVERAGE:" Avg  \\: %8.2lf %s" \
  GPRINT:bvolt:MIN:"Min  \\: %8.2lf %s" \
  GPRINT:bvolt:MAX:"Max  \\: %8.2lf %s\\n" \