Linux SNMP OID’s for CPU,Memory and Disk Statistics
Posted by Admin on September 12th, 2006
If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!
SNMP MIBs, OIDs Overview
MIB stands for Management Information Base and is a collection of information organized hierarchically. These are accessed using a protocol such as SNMP. There are two types of MIBs: scalar and tabular. Scalar objects define a single object instance whereas tabular objects define multiple related object instances grouped in MIB tables.
MIB files for specific devices or systems can be downloaded from here
OIDs or Object Identifiers uniquely identify manged objects in a MIB hierarchy. This can be depicted as a tree, the levels of which are assigned by different organizations. Top level MIB object IDs (OIDs) belong to different standard organizations. Vendors define private branches including managed objects for their own products.
Here is a sample structure of an OID
Iso (1).org(3).dod(6).internet(1).private(4).transition(868).products(2).chassis(4).card(1).slotCps(2)
.cpsSlotSummary(1).cpsModuleTable(1).cpsModuleEntry(1).cpsModuleModel(3).3562.3
Most of the people may be looking for OID’s for Linux OID’s for CPU,Memory and Disk Statistics for this first you need to install SNMP server and clients. If you want to install SNMP server and client installation in linux check here
CPU Statistics
Load
1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1
5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2
15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3
CPU
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0
Memory Statistics
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0
Disk Statistics
The snmpd.conf needs to be edited. Add the following (assuming a machine with a single ‘/’ partition):
disk / 100000 (or)
includeAllDisks 10% for all partitions and disks
The OIDs are as follows
Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1
Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1
Total size of the disk/partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1
Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1
Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1
Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1
Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1
System Uptime: .1.3.6.1.2.1.1.3.0
Examples
These Commands you need to run on the SNMP server
Get available disk space for / on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.9.1.7.1
this will return available disk space for the first entry in the ‘disk’ section of snmpd.conf; replace 1 with n for the nth entry
Get the 1-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.1
Get the 5-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.2
Get the 15-minute system load on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.3
Get amount of available swap space on the target host
#snmpget -v 1 -c “community” target_name_or_ip .1.3.6.1.4.1.2021.4.4.0


December 4th, 2008 at 4:58 pm
hey thank you very much for the OID. In fact, I served much
Sayonara
January 12th, 2009 at 5:32 pm
There is an error on description for OID .1.3.6.1.4.1.2021.4.6.0
It is not “Total RAM used” as stated here, but instead, is the available real memory.
January 22nd, 2009 at 10:08 am
You are right, Eduardo.
The Mem info coming from OIDs 1.3.6.1.4.1.2021.4.4.0 and 1.3.6.1.4.1.2021.4.6.0 is the just the free Swap memory and the free RAM memory in the machine. So, you can get the used Swap memory and the RAM used memory doing the difference between the Total Swap memory and the free Swap memory for the used Swap memory, and the difference between the Total RAM memory and the free RAM memory for the used RAM memory.
The OID 1.3.6.1.4.1.2021.4.11.0 is for the Total free memory in the machine (free Swap memory + free RAM memory).
Regards.
May 1st, 2009 at 7:48 am
Great article and a nice summary.
May 12th, 2009 at 7:54 am
Hye does anyone know the OID for getting the remote timestamp from the machine that you are querying? if so It would be much appreciated.
Cheers
John
May 21st, 2009 at 7:23 pm
Looks like the following OID returns current date/time
.1.3.6.1.4.1.2021.100.4.0+
sample:
# date;snmpwalk -Cc -On -v2c -c public localhost .1.3.6.1.4.1.2021.100.4.0
Thu May 21 14:21:47 CDT 2009
.1.3.6.1.4.1.2021.100.4.0 = STRING: Thu May 21 14:21:47 2009
May 21st, 2009 at 7:26 pm
snmptranslate .1.3.6.1.4.1.2021.100.4.0
UCD-SNMP-MIB::versionCDate.0
July 16th, 2009 at 4:41 pm
Nice article, thanks. But that error in Total RAM used: .1.3.6.1.4.1.2021.4.6.0 screwed me up. Can you fix that in your article?
Also, something that may be helpful: According to (http://mail.nl.linux.org/linux-mm/2003-03/msg00077.html) if we did this we could get a reasonable reading of our memory:
(Used – buffers – cached) / Total * 100 = % memory used
So you could get the following (expressed as Perl code):
my $memRealTotalOID = '.1.3.6.1.4.1.2021.4.5.0';
my $memRealAvailOID = '.1.3.6.1.4.1.2021.4.6.0';
my $memRealBuffersOID = '.1.3.6.1.4.1.2021.4.14.0';
my $memRealCachedOID = '.1.3.6.1.4.1.2021.4.15.0';
# Memory Calculations
my $memRealUsed = $memRealTotal - $memRealAvail;
Then you can alert on % RAM used:
my $realPercent = (($memRealUsed - $memRealBuffers - $memRealCached )/ $memRealTotal) * 100;
Hope this helps.
August 19th, 2009 at 1:17 pm
Very good article!
But I have a question about monitoring multicore CPUs.
Is it possible to get load of each core via SNMP ?
If so – wchich OID do I have to watch?
Regards
September 1st, 2009 at 6:21 am
hi,
unable to get the disk details.Please let me know how get the details like totaldisk,useddisk and availdisk
Thanks in advance
November 7th, 2009 at 1:51 am
Thank you. It helped a lot to get my redhat system managed.
Please correct the memory mistake (interchanged text of one OID)