From OpenNMS
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" \






