gkrellm_snmp: GKrellM SNMP monitor Plugin Author: Christian W. Zuckschwerdt <zany@triq.net> Homepage: http://triq.net/gkrellm/ A plugin for GKrellM, that let's you monitor SNMP vars. Prerequisites: =============== You need a SNMP library to run this plugin. You also need the header (include) files for building. Tested with UCD-SNMP >= 4.1 ( http://ucd-snmp.ucdavis.edu/ ). (If you want to try -old- CMU-SNMP or UCD-SNMP <= 4.0, please be so kind and mail some feedback). This means for e.g. Redhat (7.1) you need to install ucd-smp as well as ucd-snmp-devel! Compiling: =========== * For linux: just run the normal 'make'. * For freebsd: run 'make freebsd'. Installing: =========== Running 'make install-user' will place the plugin in your current home directory under ~/.gkrellm/plugins. Running 'make install' as superuser will place the plugin under /usr/share/gkrellm/plugins. You can also manually place the resulting gkrellm_snmp.so under ~/.gkrellm/plugins. After restarting gkrellm, you should be able to enable it in the gkrellm plugins configuration menu. Troubleshooting: ================ If you have trouble compiling the plugin. Make sure you have gtk 1.2 and gkrellm >= 0.9.8 and you've installed the gkrellm header files in /usr/include/gkrellm or /usr/local/include/gkrellm. If you have placed the header files in some other dir, edit GKRELLM_INCLUDE in the Makefile Bugs: ===== I do consider this version stable. please mail any problems/bugs to me... Some example: ============= (1) The ambiente temperature sensor for Oldenburg i.O., Germany (see http://www.PMNET.uni-oldenburg.de/temperatur.php3) is world readable Peer: 134.106.172.2 Port: 161 Community: public OID: extOutput.1 (= .1.3.6.1.4.1.2021.8.1.101.1 from UCD-SNMP-MIB) If you have the needed MIB you can use the symbolic OID from. The name is unambiguous but only available if you have the MIB installed. (2) Server CPU load using a string ranging from 0.00 to 1.00 (e.g. the load factor for the first cpu on PMNET's Stan ) Peer: 134.106.120.1 Port: 161 Community: public OID: laLoad.1 (= .1.3.6.1.4.1.2021.10.1.3.1 from UCD-SNMP-MIB) (3) Server CPU load using integer variable ranging from 0 to 100 (e.g. the percentile load for the first cpu on PMNET's Kyle) Peer: 134.106.172.2 Port: 161 Community: public OID: laLoadInt.1 (= .1.3.6.1.4.1.2021.10.1.5.1 from UCD-SNMP-MIB) (4) Most devices don't support gauges for interface load. They just count octets. You can get around that limitation with the delta monitoring feature. (eg. monitor packet counters instead of gauges) Peer: 134.106.172.2 Port: 161 Community: public OID: ifInOctets.1 (= .1.3.6.1.2.1.2.2.1.10.1 from RFC1213-MIB) or OID: ifOutOctets.1 (= .1.3.6.1.2.1.2.2.1.16.1 from RFC1213-MIB) Be sure to check the button "Delta". You can convert the symbolic OID to numbers and vice-versa with snmptranslate: $ snmptranslate -m all -IR laLoadInt.1 .1.3.6.1.4.1.2021.10.1.5.1 $ snmptranslate -m all -OnS .1.3.6.1.4.1.2021.10.1.5.1 UCD-SNMP-MIB::laLoadInt.1 More interessting OIDs: ======================= - Chasis inlet temperature (tested on cisco7204VXR) CISCO-SMI::ciscoMgmt.13.1.3.1.3.1 .1.3.6.1.4.1.9.9.13.1.3.1.3.1 - Dominik Winter found the following OID's in Cisco's Vendor-MIB (works for his cisco-2514 w/ IOS Version 11.2(5)) locIfInBitsSec.n inbound traffic measured in bit/s .1.3.6.1.4.1.9.2.2.1.1.6.<interface_nr> locIfOutBitsSec.n outbound traffic measured in bit/s .1.3.6.1.4.1.9.2.2.1.1.8.<interface_nr> locIfInPktsSec.n inbound traffic measured in pkts/s .1.3.6.1.4.1.9.2.2.1.1.7.<interface_nr> locIfOutPktsSec.n outbound traffic measured in pkts/s .1.3.6.1.4.1.9.2.2.1.1.9.<interface_nr> avgBusy1 CPU-load sampled over 1 minute .1.3.6.1.4.1.9.2.1.57 avgBusy5 CPU-load sampled over 5 minutes .1.3.6.1.4.1.9.2.1.58 Where <interface> means the number of the interface you wish to monitor. Be aware that software routers are likely to have this setup ifDescr.1 = lo0 ; ifDescr.2 = eth0 ;ifDescr.3 = eth1 So if you mean eth0 you need to write "2"! Be always sure to prepend the leading dot "." it's much like the root "/" in path names. Mostly there is a trailing ".0" do not omit it -- it selects the first row (E.g. there could be more that just one value). You can specify the cpu or interface appending a .1 or .2 and so on. Call for features! ================== Do you want/need monitor multiple oid's on the same server? (snmp bulk get) charts instead of krells? SNMP v1, v2, v3 support? SNMP privacy options? Enter peer, port, community and oid in separate fields or as snmp://community@peer:port/oid ? other SNMP lib instead of UCD-SNMPD ? GKrellM pre 0.9.8 support/compatibility? instance mapping? Diffential monitors (eg. monitor packet counters instead of gauges)? Please help: ============ Can you give some usage examples? Tested on: ========== FreeBSD 4.0 Release w/ ucd-snmp-4.0.1 libcrypt not needed SuSE Linux 6.4 w/ ucd-snmp-4.0.1 SuSE Linux 6.4 w/ ucd-snmp-4.1.1 RedHad Linux 6.1 Thanks to: ========== Bill Wilson <billw@wt.net> (valuable feedback and last but not least making GKrellM!) Eike Bernhardt <teefax@pmnet.uni-oldenburg.de> (Makefile improvements, Testing on FreeBSD) Shamada Diundra <shamada@pmnet.uni-oldenburg.de> (Testing on RedHad Linux) Stefan Raab <stefan.raab@nextel.com> (Fixed ASN.1 return type strangeness with cisco7204VXR router bug report and cisco7204VXR access) Mikael Blomqvist <micke@altcom.se> (GKrellM 1.0.4 changes) Sami Haahtinen <ressu@debian.org> (requested delta monitoring) Peter Herz <peterh@connectnet.com> (suggestions on divisor/scaling) Ben Winslow <rain@bluecherry.net> (fixed a bug in clist handling) Lasse Aagren <lasse@aagren.org> (reported config file reading error) Eric Lindvall <eric@5stops.com> (fixed a bug concerning the error state) AUTHOR AND WEBPAGE: =================== Christian W. Zuckschwerdt <zany@triq.net> GKrellM SNMP can be found at http://triq.net/gkrellm/ and also at GKrellM homepage http://web.wt.net/~billw/gkrellm/gkrellm.html