SNMP Agent Usage - tjko/fanpico GitHub Wiki

FanPico SNMP Agent Usage

Starting from firmware version v1.7.4, SNMP Agent is available. By default SNMP agent is not active, so it must be first enabled before SNMP functionality is available.

FanPico MIBs

FanPico uses Private MIB to expose Fan and Sensor information.

FanPico MIBs (these are available in the GIT repository under mibs/ directory)

Configure SNMP Agent

To use SNMP features, SNMP Agent must be enabled:

SYS:SNMP:AGENT ON

Next, configure system location (sysLocation) and contact (sysContact) information:

SYS:SNMP:LOCATION Server Rack
SYS:SNMP:CONTACT Sys Admin

It is also advisable to change SNMP Community strings from their default values ("public" and "private"):

SYS:SNMP:COMMUNITY secretstring1
SYS:SNMP:WRITECOMM secretstring2

Finally, save changes and reboot the unit for changes to take effect:

CONF:SAVE
*RST

Examples

These examples assume that SNMP Community string is left to default value "public" and unit is on IP 192.168.4.170.

Test that agent works:

$ snmpwalk -v1 -c public 192.168.4.170
SNMPv2-MIB::sysDescr.0 = STRING: FanPico-0804D Fan Controller v1.7.4beta
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.63264.1.1
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (747296) 2:04:32.96
SNMPv2-MIB::sysContact.0 = STRING: System Administrator
SNMPv2-MIB::sysName.0 = STRING: fanpico1
SNMPv2-MIB::sysLocation.0 = STRING: Server Rack
SNMPv2-MIB::sysServices.0 = INTEGER: 72
IF-MIB::ifNumber.0 = INTEGER: 1
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifDescr.1 = STRING: w0
IF-MIB::ifType.1 = INTEGER: 0
IF-MIB::ifMtu.1 = INTEGER: 1500
IF-MIB::ifSpeed.1 = Gauge32: 0
...

To query all MIBs, add "." as last parameter:

$ snmpwalk -v1 -c public 192.168.4.170 .

Note, unless FanPico MIB (TJKO-FanPico-MIB) is installed (on your system) above command will not display names but raw OID numbers for the private MIB entries.

If FanPico MIBs are installed on the system then the Private MIB can be queried as follows:

$ snmpwalk  -m +TJKO-FanPico-MIB -v1 -c public 192.168.4.170 fanpico
TJKO-FanPico-MIB::fanCount.0 = INTEGER: 8
TJKO-FanPico-MIB::fanID.1 = INTEGER: 1
TJKO-FanPico-MIB::fanID.2 = INTEGER: 2
TJKO-FanPico-MIB::fanID.3 = INTEGER: 3
TJKO-FanPico-MIB::fanID.4 = INTEGER: 4
TJKO-FanPico-MIB::fanID.5 = INTEGER: 5
TJKO-FanPico-MIB::fanID.6 = INTEGER: 6
TJKO-FanPico-MIB::fanID.7 = INTEGER: 7
TJKO-FanPico-MIB::fanID.8 = INTEGER: 8
TJKO-FanPico-MIB::fanName.1 = STRING: fan1
TJKO-FanPico-MIB::fanName.2 = STRING: fan2
TJKO-FanPico-MIB::fanName.3 = STRING: fan3
TJKO-FanPico-MIB::fanName.4 = STRING: fan4
TJKO-FanPico-MIB::fanName.5 = STRING: fan5
TJKO-FanPico-MIB::fanName.6 = STRING: fan6
TJKO-FanPico-MIB::fanName.7 = STRING: fan7
TJKO-FanPico-MIB::fanName.8 = STRING: fan8
TJKO-FanPico-MIB::fanRPM.1 = Gauge32: 1311
TJKO-FanPico-MIB::fanRPM.2 = Gauge32: 0
TJKO-FanPico-MIB::fanRPM.3 = Gauge32: 0
TJKO-FanPico-MIB::fanRPM.4 = Gauge32: 0
TJKO-FanPico-MIB::fanRPM.5 = Gauge32: 0
TJKO-FanPico-MIB::fanRPM.6 = Gauge32: 0
TJKO-FanPico-MIB::fanRPM.7 = Gauge32: 0
TJKO-FanPico-MIB::fanRPM.8 = Gauge32: 0
TJKO-FanPico-MIB::fanFrequency.1 = Gauge32: 4371
TJKO-FanPico-MIB::fanFrequency.2 = Gauge32: 0
TJKO-FanPico-MIB::fanFrequency.3 = Gauge32: 0
TJKO-FanPico-MIB::fanFrequency.4 = Gauge32: 0
TJKO-FanPico-MIB::fanFrequency.5 = Gauge32: 0
TJKO-FanPico-MIB::fanFrequency.6 = Gauge32: 0
TJKO-FanPico-MIB::fanFrequency.7 = Gauge32: 0
TJKO-FanPico-MIB::fanFrequency.8 = Gauge32: 0
TJKO-FanPico-MIB::fanDutyCycle.1 = Gauge32: 70
TJKO-FanPico-MIB::fanDutyCycle.2 = Gauge32: 40
TJKO-FanPico-MIB::fanDutyCycle.3 = Gauge32: 0
TJKO-FanPico-MIB::fanDutyCycle.4 = Gauge32: 0
TJKO-FanPico-MIB::fanDutyCycle.5 = Gauge32: 70
TJKO-FanPico-MIB::fanDutyCycle.6 = Gauge32: 40
TJKO-FanPico-MIB::fanDutyCycle.7 = Gauge32: 0
TJKO-FanPico-MIB::fanDutyCycle.8 = Gauge32: 0
TJKO-FanPico-MIB::mbfanCount.0 = INTEGER: 4
TJKO-FanPico-MIB::mbfanID.1 = INTEGER: 1
TJKO-FanPico-MIB::mbfanID.2 = INTEGER: 2
TJKO-FanPico-MIB::mbfanID.3 = INTEGER: 3
TJKO-FanPico-MIB::mbfanID.4 = INTEGER: 4
TJKO-FanPico-MIB::mbfanName.1 = STRING: mbfan1
TJKO-FanPico-MIB::mbfanName.2 = STRING: mbfan2
TJKO-FanPico-MIB::mbfanName.3 = STRING: mbfan3
TJKO-FanPico-MIB::mbfanName.4 = STRING: mbfan4
TJKO-FanPico-MIB::mbfanRPM.1 = Gauge32: 1311
TJKO-FanPico-MIB::mbfanRPM.2 = Gauge32: 0
TJKO-FanPico-MIB::mbfanRPM.3 = Gauge32: 0
TJKO-FanPico-MIB::mbfanRPM.4 = Gauge32: 0
TJKO-FanPico-MIB::mbfanFrequency.1 = Gauge32: 4371
TJKO-FanPico-MIB::mbfanFrequency.2 = Gauge32: 0
TJKO-FanPico-MIB::mbfanFrequency.3 = Gauge32: 0
TJKO-FanPico-MIB::mbfanFrequency.4 = Gauge32: 0
TJKO-FanPico-MIB::mbfanDutyCycle.1 = Gauge32: 70
TJKO-FanPico-MIB::mbfanDutyCycle.2 = Gauge32: 40
TJKO-FanPico-MIB::mbfanDutyCycle.3 = Gauge32: 0
TJKO-FanPico-MIB::mbfanDutyCycle.4 = Gauge32: 0
TJKO-FanPico-MIB::sensorCount.0 = INTEGER: 3
TJKO-FanPico-MIB::sensorID.1 = INTEGER: 1
TJKO-FanPico-MIB::sensorID.2 = INTEGER: 2
TJKO-FanPico-MIB::sensorID.3 = INTEGER: 3
TJKO-FanPico-MIB::sensorName.1 = STRING: sensor1
TJKO-FanPico-MIB::sensorName.2 = STRING: sensor2
TJKO-FanPico-MIB::sensorName.3 = STRING: pico_temp
TJKO-FanPico-MIB::sensorTemperature.1 = INTEGER: 23.9
TJKO-FanPico-MIB::sensorTemperature.2 = INTEGER: 23.5
TJKO-FanPico-MIB::sensorTemperature.3 = INTEGER: 34.6
TJKO-FanPico-MIB::sensorDutyCycle.1 = Gauge32: 13
TJKO-FanPico-MIB::sensorDutyCycle.2 = Gauge32: 12
TJKO-FanPico-MIB::sensorDutyCycle.3 = Gauge32: 49
TJKO-FanPico-MIB::vsensorCount.0 = INTEGER: 8
TJKO-FanPico-MIB::vsensorID.1 = INTEGER: 1
TJKO-FanPico-MIB::vsensorID.2 = INTEGER: 2
TJKO-FanPico-MIB::vsensorID.3 = INTEGER: 3
TJKO-FanPico-MIB::vsensorID.4 = INTEGER: 4
TJKO-FanPico-MIB::vsensorID.5 = INTEGER: 5
TJKO-FanPico-MIB::vsensorID.6 = INTEGER: 6
TJKO-FanPico-MIB::vsensorID.7 = INTEGER: 7
TJKO-FanPico-MIB::vsensorID.8 = INTEGER: 8
TJKO-FanPico-MIB::vsensorName.1 = STRING: vsensor1
TJKO-FanPico-MIB::vsensorName.2 = STRING: vsensor2
TJKO-FanPico-MIB::vsensorName.3 = STRING: vsensor3
TJKO-FanPico-MIB::vsensorName.4 = STRING: vsensor4
TJKO-FanPico-MIB::vsensorName.5 = STRING: vsensor5
TJKO-FanPico-MIB::vsensorName.6 = STRING: vsensor6
TJKO-FanPico-MIB::vsensorName.7 = STRING: vsensor7
TJKO-FanPico-MIB::vsensorName.8 = STRING: vsensor8
TJKO-FanPico-MIB::vsensorTemperature.1 = INTEGER: 23.2
TJKO-FanPico-MIB::vsensorTemperature.2 = INTEGER: 24.7
TJKO-FanPico-MIB::vsensorTemperature.3 = INTEGER: 22.6
TJKO-FanPico-MIB::vsensorTemperature.4 = INTEGER: .0
TJKO-FanPico-MIB::vsensorTemperature.5 = INTEGER: .0
TJKO-FanPico-MIB::vsensorTemperature.6 = INTEGER: .0
TJKO-FanPico-MIB::vsensorTemperature.7 = INTEGER: .0
TJKO-FanPico-MIB::vsensorTemperature.8 = INTEGER: .0
TJKO-FanPico-MIB::vsensorHumidity.1 = Gauge32: 37.2
TJKO-FanPico-MIB::vsensorHumidity.2 = Gauge32: 43.2
TJKO-FanPico-MIB::vsensorHumidity.3 = Gauge32: .0
TJKO-FanPico-MIB::vsensorHumidity.4 = Gauge32: .0
TJKO-FanPico-MIB::vsensorHumidity.5 = Gauge32: .0
TJKO-FanPico-MIB::vsensorHumidity.6 = Gauge32: .0
TJKO-FanPico-MIB::vsensorHumidity.7 = Gauge32: .0
TJKO-FanPico-MIB::vsensorHumidity.8 = Gauge32: .0
TJKO-FanPico-MIB::vsensorPressure.1 = Gauge32: .0
TJKO-FanPico-MIB::vsensorPressure.2 = Gauge32: .0
TJKO-FanPico-MIB::vsensorPressure.3 = Gauge32: 994.4
TJKO-FanPico-MIB::vsensorPressure.4 = Gauge32: .0
TJKO-FanPico-MIB::vsensorPressure.5 = Gauge32: .0
TJKO-FanPico-MIB::vsensorPressure.6 = Gauge32: .0
TJKO-FanPico-MIB::vsensorPressure.7 = Gauge32: .0
TJKO-FanPico-MIB::vsensorPressure.8 = Gauge32: .0
TJKO-FanPico-MIB::vsensorDutyCycle.1 = Gauge32: 11
TJKO-FanPico-MIB::vsensorDutyCycle.2 = Gauge32: 16
TJKO-FanPico-MIB::vsensorDutyCycle.3 = Gauge32: 9
TJKO-FanPico-MIB::vsensorDutyCycle.4 = Gauge32: 0
TJKO-FanPico-MIB::vsensorDutyCycle.5 = Gauge32: 0
TJKO-FanPico-MIB::vsensorDutyCycle.6 = Gauge32: 0
TJKO-FanPico-MIB::vsensorDutyCycle.7 = Gauge32: 0
TJKO-FanPico-MIB::vsensorDutyCycle.8 = Gauge32: 0
End of MIB