Opsview MRTG graphs Problem
Opsview MRTG graphs Problem
Mir ist aufgefallen das ich bei einigen VM´s keine MRTG Graphen in Opsview bekomme.
Nach ein bisschen suchen ist mir aufgefallen das bei der mrtg.cfg in dem Kommentar folgendes drin steht
### Interface 2 >> Descr: 'eth0' | Name: 'eth0' | Ip: '192.168.70.110' | Eth: '00-16-3e-74-40-37' ### ### The following interface is commented out because: ### * has no ifSpeed property
Und der Rest der Konfiguration für dieses Interface wird dann natürlich dann nicht verwendet da MRTG hier kein Interface Speed erkannt hat.
Das mag bei echten Netzwerkkarten OK sein, aber ein der Paravirtualisierung Umgebung hab ich halt kein IFSpeed auf einer Virtuellen Netzwerkkarte.
Aber das Problem lässt sich relativ einfach lösen.
Zum erstellen der Graphen benutzt Opsview den User Nagios und dessen Cronjob.
[stextbox id=“info“]# OPSVIEW-START
# Do not remove comment above. Everything between OPSVIEW-START and OPSVIEW-END
# will be automatically installed as part of an Opsview install/upgrade
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/nagios/bin/mrtg_genstats.sh > /dev/null 2>&1[/stextbox]
Dieses Script wiederum nutzt die /usr/local/nagios/etc/mrtg.cfg. Die aber von Opsview dynamisch erstellt wird.
Da Opsview die mrtg.cfg dynamisch generiert muss man eine kleine Änderung an dem Script vornehmen das die Konfiguration erstellt.
Dieses Script findet man unter /usr/local/nagios/bin/mrtgconfgen.pl
Hier muss man nur einen kleinen Option hinzufügen, und dann bekommt man auch Daten von den Interfaces die kein ifspeed haben.
Man suche nach dieser Zeile:
cfgmaker --output=$mrtgcfg --global 'Forks: $mrtg_forks' --global 'Refresh: $mrtg_refresh' --global 'HtmlDir: $imgpath' --global 'ImageDir: $imgpath' --global 'Options[_]: growright,bits' --global 'LogDir: $rrdpath' --global 'LogFormat: rrdtool' --global 'IconDir: /images/mrtg' @communities
Und fügt –zero-speed=1000000000 hinzu. (1000000000 = 1Gbps)
cfgmaker --output=$mrtgcfg --zero-speed=1000000000 --global 'Forks: $mrtg_forks' --global 'Refresh: $mrtg_refresh' --global 'HtmlDir: $imgpath' --global 'ImageDir: $imgpath' --global 'Options[_]: growright,bits' --global 'LogDir: $rrdpath' --global 'LogFormat: rrdtool' --global 'IconDir: /images/mrtg' @communities
Die Option kann man auch über die cfgmaker Hilfe erfahren
[stextbox id=“bash“]/usr/bin/cfgmaker –help[/stextbox]
--zero-speed=spd use this speed in bits-per-second as the interface speed for all interfaces that return a speed of 0 via ifSpeed/ifHighSpeed. 100Mbps = 100000000
Dann für man als User Nagios folgende Befehle aus.
[stextbox id=“bash“]/usr/local/nagios/bin/mrtgconfgen.pl –full[/stextbox]
Hier wird dann eine neue mrtg.cfg erstellt mit all den Servern die man in Opsview mit mrtg abfragen konfiguriert hat.
Und anschließend lässt man die mrtg Graphen erstellen
[stextbox id=“bash“]/usr/local/nagios/bin/mrtg_genstats.sh[/stextbox]
Nun sollte man die Graphen schon mal im Opsview sehen können. Auch wenn sie noch leer sein sollten.
Das Logfile von dem mrtg_genstats.sh Script findet man unter /usr/local/nagios/var/log/mrtg_genstats.log
Schreibe einen Kommentar