a time ago, I had the idea of making SMART-data available via SNMP. I
like this idea because there are lots of tools for monitoring and
graphing SNMP-data ( MRTG, OpenNMS, Cacti etc).
Attached is a patch which makes some of this SMART infomation available
The patch modifies smartd in a way that in addition to doing its normal
jobs, smartd also serves the agentX-interface of net-snmp. The
agentX-interface works via a UNIX-socket-interface, so its not security
The patch was developed against net-snmp-5.2.1-3, You will need
net-snmp-devel, also, ( from net-snmp.sourceforge.net) to make it
compile. Anyway, it was tested on RedHat 3.0 und FC2 ( you have to
enable agentx in snmpd and make the tree readable, also).
For the moment, only ATA is supported. The MIB-tree I took is
not-official, some work to do here.
[root@... root]# snmpwalk -c public -v 2c localhost enterprises.99999
SMARTCTL-MIB::smartctlDevice.1 = STRING: "/dev/hda"
SMARTCTL-MIB::smartctlDevice.2 = STRING: "/dev/hdb"
SMARTCTL-MIB::smartctlType.1 = INTEGER: 1
SMARTCTL-MIB::smartctlType.2 = INTEGER: 1
SMARTCTL-MIB::smartctlPort.1 = INTEGER: 0
SMARTCTL-MIB::smartctlPort.2 = INTEGER: 0
SMARTCTL-MIB::smartctlModel.1 = STRING: "Maxtor 6Y120P0"
SMARTCTL-MIB::smartctlModel.2 = STRING: "Maxtor 6Y120P0"
SMARTCTL-MIB::smartctlSerialNumber.1 = STRING: "Y32LB46E"
SMARTCTL-MIB::smartctlSerialNumber.2 = STRING: "Y32DV3XE"
SMARTCTL-MIB::smartctlStatus.1 = INTEGER: 0
SMARTCTL-MIB::smartctlStatus.2 = INTEGER: 0
SMARTCTL-MIB::smartctlTemperature.1 = INTEGER: 46
SMARTCTL-MIB::smartctlTemperature.2 = INTEGER: 43
SMARTCTL-MIB::smartctlRawReadErrorRate.1 = INTEGER: 0
SMARTCTL-MIB::smartctlRawReadErrorRate.2 = INTEGER: 0
SMARTCTL-MIB::smartctlSeekErrorRate.1 = INTEGER: 0
SMARTCTL-MIB::smartctlSeekErrorRate.2 = INTEGER: 0
SMARTCTL-MIB::smartctlPowerOnHours.1 = Gauge32: 971
SMARTCTL-MIB::smartctlPowerOnHours.2 = Gauge32: 932
SMARTCTL-MIB::smartctlRelocationCount.1 = Gauge32: 1
SMARTCTL-MIB::smartctlRelocationCount.2 = Gauge32: 188