-
Notifications
You must be signed in to change notification settings - Fork 2
Net SNMP_and_lm sensors_on_Ubuntu_10.04
This is a Wiki tutorial for using Net-SNMP and lm-sensors on Ubuntu 10.04.
You can download the latest sources of Net-SNMP from here:
Net-SNMP`` ``Download`` ``Page
You can download the latest sources of lm-sensors from here:
lm-sensors`` ``Download`` ``Page
Ubuntu 10.04 includes lm-sensors 3.1.2 pre-installed. To verify your version of lm-sensors, run:
> sensors -v
sensors version 3.1.2 with libsensors version 3.1.2
Lm-sensors needs to be configured using sensors-detect before it can be used. Sensors-detect is an interactive script for detecting hardware sensor chips. Run the following command, and then follow the on-screen instructions:
> sudo sensors-detect
Reboot your system, or use the following command to load the necessary kernel modules:
> sudo /etc/init.d/module-init-tools start
To verify that lm-sensors is operating properly, use the sensors command. Example output is shown below.
> sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +36.0°C (high = +82.0°C, crit = +100.0°C)
coretemp-isa-0001
Adapter: ISA adapter
Core 3: +36.0°C (high = +82.0°C, crit = +100.0°C)
coretemp-isa-0002
Adapter: ISA adapter
Core 1: +36.0°C (high = +82.0°C, crit = +100.0°C)
coretemp-isa-0003
Adapter: ISA adapter
Core 2: +32.0°C (high = +82.0°C, crit = +100.0°C)
it8718-isa-0290
Adapter: ISA adapter
in0: +1.34 V (min = +0.00 V, max = +4.08 V)
in1: +1.98 V (min = +0.00 V, max = +4.08 V)
in2: +3.30 V (min = +0.00 V, max = +4.08 V)
in3: +2.93 V (min = +0.00 V, max = +4.08 V)
in4: +0.80 V (min = +0.00 V, max = +4.08 V)
in5: +0.21 V (min = +0.14 V, max = +0.26 V)
in6: +0.10 V (min = +0.00 V, max = +4.08 V)
in7: +3.06 V (min = +0.00 V, max = +4.08 V)
Vbat: +3.23 V
fan1: 0 RPM (min = 0 RPM)
fan2: 0 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan4: 1834 RPM (min = 0 RPM)
temp1: +37.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp2: +27.0°C (low = +127.0°C, high = +127.0°C) sensor = thermal diode
temp3: -2.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
cpu0_vid: +1.219 V
Ubuntu 10.04 does not have Net-SNMP pre-installed. To install basic Net-SNMP functionality, run the following:
> sudo apt-get install snmp
> sudo apt-get install snmpd
Several other SNMP packages are available for Ubuntu. The Ubuntu Software Center (Applications > Ubuntu Software Center) is a good resource for determining which packages are currently installed (search for "snmp").
To test that the SNMP Daemon was successfully installed, run the following:
> snmpwalk -v 2c -c public localhost system
General system information should be printed to the terminal window. An example is shown below.
SNMPv2-MIB::sysDescr.0 = STRING: Linux ubuntu 2.6.32-29-generic-pae #58-Ubuntu SMP Fri Feb 11 19:15:25 UTC 2011 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1218) 0:00:12.18
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmpd.local.conf)
SNMPv2-MIB::sysName.0 = STRING: ubuntu
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (configure /etc/snmp/snmpd.local.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
...
The SNMP Daemon requires additional setup. The snmpconf command is an interactive script for configuring Net-SNMP functionality (it can be used to generate snmp.conf and snmpd.conf). Run the following:
> sudo snmpconf -i -g basic_setup
NOTE: If you are unfamiliar Net-SNMP, it might be easier to create a simple snmpd.conf file manually. Using a text editor, create a file named "snmpd.conf". Add the following text:
rocommunity public
Copy the new snmpd.conf file to the correct path (In Ubuntu, the default paths for Net-SNMP applications are slightly different):
> sudo mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.old
> sudo cp /usr/share/snmp/snmpd.conf /etc/snmp/snmpd.conf
Restart the SNMP daemon:
>sudo /etc/init.d/snmpd restart
* Restarting network management services:
Use snmpwalk to test the lm-sensors MIB. The OID for the lm-sensors MIB is 1.3.6.1.4.1.2021.13.16.
> snmpwalk -v 2c -c public localhost lmSensors
> snmpwalk -v 2c -c public localhost 1.3.6.1.4.1.2021.13.16
Example Output:
LM-SENSORS-MIB::lmMiscSensorsIndex.1 = INTEGER: 0
LM-SENSORS-MIB::lmMiscSensorsIndex.2 = INTEGER: 1
LM-SENSORS-MIB::lmMiscSensorsIndex.3 = INTEGER: 2
LM-SENSORS-MIB::lmMiscSensorsIndex.4 = INTEGER: 3
LM-SENSORS-MIB::lmMiscSensorsIndex.5 = INTEGER: 4
LM-SENSORS-MIB::lmMiscSensorsIndex.6 = INTEGER: 5
LM-SENSORS-MIB::lmMiscSensorsIndex.7 = INTEGER: 6
LM-SENSORS-MIB::lmMiscSensorsIndex.8 = INTEGER: 7
LM-SENSORS-MIB::lmMiscSensorsIndex.9 = INTEGER: 8
LM-SENSORS-MIB::lmMiscSensorsIndex.10 = INTEGER: 9
LM-SENSORS-MIB::lmMiscSensorsIndex.11 = INTEGER: 10
LM-SENSORS-MIB::lmMiscSensorsIndex.12 = INTEGER: 11
LM-SENSORS-MIB::lmMiscSensorsIndex.13 = INTEGER: 12
LM-SENSORS-MIB::lmMiscSensorsIndex.14 = INTEGER: 13
LM-SENSORS-MIB::lmMiscSensorsIndex.15 = INTEGER: 14
LM-SENSORS-MIB::lmMiscSensorsIndex.16 = INTEGER: 15
LM-SENSORS-MIB::lmMiscSensorsIndex.17 = INTEGER: 16
LM-SENSORS-MIB::lmMiscSensorsIndex.18 = INTEGER: 17
LM-SENSORS-MIB::lmMiscSensorsIndex.19 = INTEGER: 18
LM-SENSORS-MIB::lmMiscSensorsIndex.20 = INTEGER: 19
LM-SENSORS-MIB::lmMiscSensorsDevice.1 = STRING: Core 0
LM-SENSORS-MIB::lmMiscSensorsDevice.2 = STRING: Core 0
LM-SENSORS-MIB::lmMiscSensorsDevice.3 = STRING: Core 0
LM-SENSORS-MIB::lmMiscSensorsDevice.4 = STRING: Core 0
LM-SENSORS-MIB::lmMiscSensorsDevice.5 = STRING: Core 1
LM-SENSORS-MIB::lmMiscSensorsDevice.6 = STRING: Core 1
LM-SENSORS-MIB::lmMiscSensorsDevice.7 = STRING: Core 1
LM-SENSORS-MIB::lmMiscSensorsDevice.8 = STRING: Core 1
LM-SENSORS-MIB::lmMiscSensorsDevice.9 = STRING: Core 3
LM-SENSORS-MIB::lmMiscSensorsDevice.10 = STRING: Core 3
LM-SENSORS-MIB::lmMiscSensorsDevice.11 = STRING: Core 3
LM-SENSORS-MIB::lmMiscSensorsDevice.12 = STRING: Core 3
LM-SENSORS-MIB::lmMiscSensorsDevice.13 = STRING: Core 2
LM-SENSORS-MIB::lmMiscSensorsDevice.14 = STRING: Core 2
LM-SENSORS-MIB::lmMiscSensorsDevice.15 = STRING: Core 2
LM-SENSORS-MIB::lmMiscSensorsDevice.16 = STRING: Core 2
LM-SENSORS-MIB::lmMiscSensorsDevice.17 = STRING: in0
LM-SENSORS-MIB::lmMiscSensorsDevice.18 = STRING: in0
LM-SENSORS-MIB::lmMiscSensorsDevice.19 = STRING: in0
LM-SENSORS-MIB::lmMiscSensorsDevice.20 = STRING: in0
LM-SENSORS-MIB::lmMiscSensorsValue.1 = Gauge32: 37000
LM-SENSORS-MIB::lmMiscSensorsValue.2 = Gauge32: 82000
LM-SENSORS-MIB::lmMiscSensorsValue.3 = Gauge32: 100000
LM-SENSORS-MIB::lmMiscSensorsValue.4 = Gauge32: 0
LM-SENSORS-MIB::lmMiscSensorsValue.5 = Gauge32: 39000
LM-SENSORS-MIB::lmMiscSensorsValue.6 = Gauge32: 82000
LM-SENSORS-MIB::lmMiscSensorsValue.7 = Gauge32: 100000
LM-SENSORS-MIB::lmMiscSensorsValue.8 = Gauge32: 0
LM-SENSORS-MIB::lmMiscSensorsValue.9 = Gauge32: 36000
LM-SENSORS-MIB::lmMiscSensorsValue.10 = Gauge32: 82000
LM-SENSORS-MIB::lmMiscSensorsValue.11 = Gauge32: 100000
LM-SENSORS-MIB::lmMiscSensorsValue.12 = Gauge32: 0
LM-SENSORS-MIB::lmMiscSensorsValue.13 = Gauge32: 33000
LM-SENSORS-MIB::lmMiscSensorsValue.14 = Gauge32: 82000
LM-SENSORS-MIB::lmMiscSensorsValue.15 = Gauge32: 100000
LM-SENSORS-MIB::lmMiscSensorsValue.16 = Gauge32: 0
LM-SENSORS-MIB::lmMiscSensorsValue.17 = Gauge32: 1344
LM-SENSORS-MIB::lmMiscSensorsValue.18 = Gauge32: 0
LM-SENSORS-MIB::lmMiscSensorsValue.19 = Gauge32: 4080
LM-SENSORS-MIB::lmMiscSensorsValue.20 = Gauge32: 0
UPDATE: The Ubuntu 10.04 packages 'snmp' and 'snmpd' include Net-SNMP version 5.4.2.1. According to the lm-sensors installation page, Net-SNMP 5.5 or higher is required. All sensors appear within the "MiscSensors" category.
An excellent tutorial for installing Net-SNMP (from source) for Ubuntu is located here: Net-Snmp on Ubuntu
Specific details needed for lm-sensors are discussed below.
Download the latest Net-SNMP source package (v 5.6.1 was used for this tutorial), and unzip it.
Install the libperl-dev and libsensors4-dev packages for Ubuntu:
>sudo apt-get install libperl-dev
>sudo apt-get install libsensors4-dev
Use the following commands to configure and install Net-SNMP:
>cd net-snmp-5.6.1/
>./configure --with-mib-modules="ucd-snmp/lmsensorsMib" --with-ldflags="-lsensors"
>make
>sudo make install
Results from configure (accepted all defaults):
---------------------------------------------------------
Net-SNMP configuration summary:
---------------------------------------------------------
SNMP Versions Supported: 1 2c 3
Building for: linux
Net-SNMP Version: 5.6.1
Network transport support: Callback Unix Alias TCP UDP IPv4Base SocketBase TCPBase UDPIPv4Base UDPBase
SNMPv3 Security Modules: usm
Agent MIB code: ucd-snmp/lmsensorsMib default_modules => hardware/sensors snmpv3mibs mibII ucd_snmp notification notification-log-mib target agent_mibs agentx disman/event disman/schedule utilities host
MYSQL Trap Logging: unavailable
Embedded Perl support: enabled
SNMP Perl modules: building -- embeddable
SNMP Python modules: disabled
Crypto support from: internal
Authentication support: MD5 SHA1
Encryption support: DES AES
---------------------------------------------------------
Results from make:
...
make[2]: Leaving directory `/home/admin/net-snmp-5.6.1/perl/TrapReceiver'
make[1]: Leaving directory `/home/admin/net-snmp-5.6.1/perl'
Results from make install:
...
Installing /usr/local/man/man3/SNMP.3
Appending installation info to /usr/local/lib/perl/5.10.1/perllocal.pod
make[1]: Leaving directory `/home/admin/net-snmp-5.6.1/perl'
The following Ubuntu packages need to be removed to avoid conflicts:
>sudo apt-get remove snmp
>sudo apt-get remove snmpd
>sudo apt-get remove libsnmp15
>sudo apt-get remove libsnmp-base
Configure the new SNMP daemon:
> sudo snmpconf -i -g basic_setup
Start the SNMP daemon:
> sudo snmpd -f -Le
NET-SNMP version 5.6.1
In a new terminal window, run an snmpwalk on the lm-sensors MIB. Example output is provided:
>snmpwalk -v 2c -c public localhost lmSensors
LM-SENSORS-MIB::lmTempSensorsIndex.1 = INTEGER: 1
LM-SENSORS-MIB::lmTempSensorsIndex.2 = INTEGER: 2
LM-SENSORS-MIB::lmTempSensorsIndex.3 = INTEGER: 3
LM-SENSORS-MIB::lmTempSensorsIndex.4 = INTEGER: 4
LM-SENSORS-MIB::lmTempSensorsIndex.18 = INTEGER: 18
LM-SENSORS-MIB::lmTempSensorsIndex.19 = INTEGER: 19
LM-SENSORS-MIB::lmTempSensorsIndex.20 = INTEGER: 20
LM-SENSORS-MIB::lmTempSensorsDevice.1 = STRING: Core 0
LM-SENSORS-MIB::lmTempSensorsDevice.2 = STRING: Core 1
LM-SENSORS-MIB::lmTempSensorsDevice.3 = STRING: Core 3
LM-SENSORS-MIB::lmTempSensorsDevice.4 = STRING: Core 2
LM-SENSORS-MIB::lmTempSensorsDevice.18 = STRING: temp1
LM-SENSORS-MIB::lmTempSensorsDevice.19 = STRING: temp2
LM-SENSORS-MIB::lmTempSensorsDevice.20 = STRING: temp3
LM-SENSORS-MIB::lmTempSensorsValue.1 = Gauge32: 37000
LM-SENSORS-MIB::lmTempSensorsValue.2 = Gauge32: 38000
LM-SENSORS-MIB::lmTempSensorsValue.3 = Gauge32: 35000
LM-SENSORS-MIB::lmTempSensorsValue.4 = Gauge32: 32000
LM-SENSORS-MIB::lmTempSensorsValue.18 = Gauge32: 37000
LM-SENSORS-MIB::lmTempSensorsValue.19 = Gauge32: 26000
LM-SENSORS-MIB::lmTempSensorsValue.20 = Gauge32: 4294965296
LM-SENSORS-MIB::lmFanSensorsIndex.14 = INTEGER: 14
LM-SENSORS-MIB::lmFanSensorsIndex.15 = INTEGER: 15
LM-SENSORS-MIB::lmFanSensorsIndex.16 = INTEGER: 16
LM-SENSORS-MIB::lmFanSensorsIndex.17 = INTEGER: 17
LM-SENSORS-MIB::lmFanSensorsDevice.14 = STRING: fan1
LM-SENSORS-MIB::lmFanSensorsDevice.15 = STRING: fan2
LM-SENSORS-MIB::lmFanSensorsDevice.16 = STRING: fan3
LM-SENSORS-MIB::lmFanSensorsDevice.17 = STRING: fan4
LM-SENSORS-MIB::lmFanSensorsValue.14 = Gauge32: 0
LM-SENSORS-MIB::lmFanSensorsValue.15 = Gauge32: 0
LM-SENSORS-MIB::lmFanSensorsValue.16 = Gauge32: 0
LM-SENSORS-MIB::lmFanSensorsValue.17 = Gauge32: 1834
LM-SENSORS-MIB::lmVoltSensorsIndex.5 = INTEGER: 5
LM-SENSORS-MIB::lmVoltSensorsIndex.6 = INTEGER: 6
LM-SENSORS-MIB::lmVoltSensorsIndex.7 = INTEGER: 7
LM-SENSORS-MIB::lmVoltSensorsIndex.8 = INTEGER: 8
LM-SENSORS-MIB::lmVoltSensorsIndex.9 = INTEGER: 9
LM-SENSORS-MIB::lmVoltSensorsIndex.10 = INTEGER: 10
LM-SENSORS-MIB::lmVoltSensorsIndex.11 = INTEGER: 11
LM-SENSORS-MIB::lmVoltSensorsIndex.12 = INTEGER: 12
LM-SENSORS-MIB::lmVoltSensorsIndex.13 = INTEGER: 13
LM-SENSORS-MIB::lmVoltSensorsIndex.21 = INTEGER: 21
LM-SENSORS-MIB::lmVoltSensorsDevice.5 = STRING: in0
LM-SENSORS-MIB::lmVoltSensorsDevice.6 = STRING: in1
LM-SENSORS-MIB::lmVoltSensorsDevice.7 = STRING: in2
LM-SENSORS-MIB::lmVoltSensorsDevice.8 = STRING: in3
LM-SENSORS-MIB::lmVoltSensorsDevice.9 = STRING: in4
LM-SENSORS-MIB::lmVoltSensorsDevice.10 = STRING: in5
LM-SENSORS-MIB::lmVoltSensorsDevice.11 = STRING: in6
LM-SENSORS-MIB::lmVoltSensorsDevice.12 = STRING: in7
LM-SENSORS-MIB::lmVoltSensorsDevice.13 = STRING: Vbat
LM-SENSORS-MIB::lmVoltSensorsDevice.21 = STRING: cpu0_vid
LM-SENSORS-MIB::lmVoltSensorsValue.5 = Gauge32: 1327
LM-SENSORS-MIB::lmVoltSensorsValue.6 = Gauge32: 1983
LM-SENSORS-MIB::lmVoltSensorsValue.7 = Gauge32: 3296
LM-SENSORS-MIB::lmVoltSensorsValue.8 = Gauge32: 2911
LM-SENSORS-MIB::lmVoltSensorsValue.9 = Gauge32: 800
LM-SENSORS-MIB::lmVoltSensorsValue.10 = Gauge32: 208
LM-SENSORS-MIB::lmVoltSensorsValue.11 = Gauge32: 96
LM-SENSORS-MIB::lmVoltSensorsValue.12 = Gauge32: 3072
LM-SENSORS-MIB::lmVoltSensorsValue.13 = Gauge32: 3232
LM-SENSORS-MIB::lmVoltSensorsValue.21 = Gauge32: 1218
Data within the lm-sensors MIB is presented in tables. The snmptable command can be used to show the data in a table format:
>snmptable -v 2c -c public localhost lmTempSensorsTable
SNMP table: LM-SENSORS-MIB::lmTempSensorsTable
lmTempSensorsIndex lmTempSensorsDevice lmTempSensorsValue
1 Core 0 37000
2 Core 1 36000
3 Core 3 36000
4 Core 2 37000
18 temp1 38000
19 temp2 27000
20 temp3 4294965296
>snmptable -v 2c -c public localhost lmFanSensorsTable
SNMP table: LM-SENSORS-MIB::lmFanSensorsTable
lmFanSensorsIndex lmFanSensorsDevice lmFanSensorsValue
14 fan1 0
15 fan2 0
16 fan3 0
17 fan4 1839
>snmptable -v 2c -c public localhost lmVoltSensorsTable
SNMP table: LM-SENSORS-MIB::lmVoltSensorsTable
lmVoltSensorsIndex lmVoltSensorsDevice lmVoltSensorsValue
5 in0 1343
6 in1 1983
7 in2 3296
8 in3 2927
9 in4 800
10 in5 208
11 in6 96
12 in7 3072
13 Vbat 3232
21 cpu0_vid 1218
>snmptable -v 2c -c public localhost lmMiscSensorsTable
LM-SENSORS-MIB::lmMiscSensorsTable: No entries
The snmptranslate command can be used to draw the lm-sensors MIB tree structure:
>snmptranslate -Tp -IR lmSensors
+--lmSensors(16)
|
+--lmSensorsMIB(1)
|
+--lmTempSensorsTable(2)
| |
| +--lmTempSensorsEntry(1)
| | Index: lmTempSensorsIndex
| |
| +-- -R-- Integer32 lmTempSensorsIndex(1)
| | Range: 0..65535
| +-- -R-- String lmTempSensorsDevice(2)
| | Textual Convention: DisplayString
| | Size: 0..255
| +-- -R-- Gauge lmTempSensorsValue(3)
|
+--lmFanSensorsTable(3)
| |
| +--lmFanSensorsEntry(1)
| | Index: lmFanSensorsIndex
| |
| +-- -R-- Integer32 lmFanSensorsIndex(1)
| | Range: 0..65535
| +-- -R-- String lmFanSensorsDevice(2)
| | Textual Convention: DisplayString
| | Size: 0..255
| +-- -R-- Gauge lmFanSensorsValue(3)
|
+--lmVoltSensorsTable(4)
| |
| +--lmVoltSensorsEntry(1)
| | Index: lmVoltSensorsIndex
| |
| +-- -R-- Integer32 lmVoltSensorsIndex(1)
| | Range: 0..65535
| +-- -R-- String lmVoltSensorsDevice(2)
| | Textual Convention: DisplayString
| | Size: 0..255
| +-- -R-- Gauge lmVoltSensorsValue(3)
|
+--lmMiscSensorsTable(5)
|
+--lmMiscSensorsEntry(1)
| Index: lmMiscSensorsIndex
|
+-- -R-- Integer32 lmMiscSensorsIndex(1)
| Range: 0..65535
+-- -R-- String lmMiscSensorsDevice(2)
| Textual Convention: DisplayString
| Size: 0..255
+-- -R-- Gauge lmMiscSensorsValue(3)