RRD Graphen über SNMP erstellen
Sonntag, Januar 30th, 2011Hier Dokumentire ich mal wie wir im Wohnheim den Cisco Catalist 4006 über SNMP abfragen um RRD Graphen zu erstellen. Zuerst muss man auf den Cisco natürlich SNMP einschalten und ein Passwort Sätzen.
snmp-server community password RO
snmp-server enable traps tty
Als erstes müssen vollende Pakete installiert werden:
apt-get install php-cli snmp rrdtool
Dann habe ich ein Script geschrieben das die insgesamt 195 Port abfragt.
#!/usr/bin/php5
//CISCO
for($i=1;$i<=195;$i++)
{
// RRD ERSTELLEN
//system("rrdtool create bandwidth-". $i .".rrd --start N DS:in:COUNTER:600:U:U
DS:out:COUNTER:600:U:U RRA:AVERAGE:0.5:1:432");
// RRD LOGGEN
system("/usr/bin/rrdupdate /usr/local/rrd/bandwidth-". $i .".rrd N:
`/usr/bin/snmpget -v1 -c password 192.168.1.1 -Oqv IF-MIB::ifInOctets.". $i ."`:
`/usr/bin/snmpget -v1 -c password 192.168.1.1 -Oqv IF-MIB::ifOutOctets.". $i ."`");
// RRD GRAPH
system("/usr/bin/rrdtool graph /usr/local/rrd/img/bandwidth-". $i .".png
-a PNG -w 500 -h 150 -M -s -129600 -v \
`/usr/bin/snmpget -v1 -c password 192.168.1.1 -Oqv IF-MIB::ifDescr.". $i ."` \
'DEF:in=/usr/local/rrd/bandwidth-". $i .".rrd:in:AVERAGE' \
'DEF:out=/usr/local/rrd/bandwidth-". $i .".rrd:out:AVERAGE' \
'CDEF:kbin=in,1024,/' \
'CDEF:kbout=out,1024,/' \
'AREA:in#00FF00:Bandwidth In' \
'LINE1:out#0000FF:Bandwidth Out\j' \
'GPRINT:kbin:LAST:Last Bandwidth In\: %3.2lf KBps' \
'GPRINT:kbout:LAST:Last Bandwidth Out\: %3.2lf KBps\j' \
'GPRINT:kbin:AVERAGE:Average Bandwidth In\: %3.2lf KBps' \
'GPRINT:kbout:AVERAGE:Average Bandwidth Out\:%3.2lf KBps\j'");
}
?>
Das ganze sieht dann so aus, hier ist der Aktelle Graph des Netzwerk Trafik des Wohnheims: