Mein erstes Munin Plugin: VMware CPU Monitoring
Ich habe lange auf den Moment gewartet mal ein eigenes Plugin für Munin zu schreiben, das es bisher noch nicht gab 🙂
Gestern war es soweit und ich habe mal ein kleines Plugin zusammen gehackt das die CPU Last einzelner VMware VMs überwacht.
Als kleinen Beitrag zur OpenSource Gemeinschaft habe ich es bei MuninExchange veröffentlicht.
Da es ein Shell Script ist kann es sich dort jeder anschauen, holen und einsetzen.
Die Konfiguration ist relativ simpel:
Es gibt ein Array VMX (erkennbar an [0], [1]…), dort müssen einfach die Pfade der VMX Dateien eingetragen werden.
Wem 4 nicht reichen oder zuviel sind: Einfach die Liste kürzen oder erweitern.
Es wird dann mit vmware-cmd die PID und der Name ausgelesen und über PS die CPU Last des Prozesses abgefragt.
Bei mir funktioniert es sehr gut und ich werde heute Abend noch einen Demo Graph hochladen.
Würde mich über Feedback dazu freuen!
Viel Spaß damit!
Viele Grüße,
Christian
Benutze
VMX=(„/var/lib/vmware/Virtual Machines//Other Linux.vmx“ „/var/lib/vmware/Virtual Machines//Other Linux2.vmx“)
Dann sparst du dir das Nummerieren.
So muss man die VMs nicht einzeln einpflegen
#!/bin/bash
IFS_tmp=$IFS
IFS="
"
i=0
for element in `/usr/bin/vmware-cmd -l`; do
VMX[$i]=$element
i=`expr $i + 1`
done
IFS=$IFS_tmp
if [ "$1" = "autoconf" ]; then
echo yes
exit 0
fi
if [ "$1" = "config" ]; then
echo 'graph_title VMware CPU-Load'
echo 'graph_args --base 1000 -l 0'
echo 'graph_vlabel Load of VMware VMs'
echo 'graph_category VMware'
while [ $i -lt ${#VMX[*]} ]
do
NAME=`vmware-cmd "${VMX[i]}" getconfig displayName |sed 's!getconfig(displayName) = !!' | sed 's! !!g' | sed 's!-!_!g'`
echo $NAME.label $NAME
i=`expr $i + 1`
done
exit 0
fi
i=0
while [ $i -lt ${#VMX[*]} ]
do
PID=`vmware-cmd "${VMX[$i]}" getpid | sed 's!getpid() = !!'`
NAME=`vmware-cmd "${VMX[i]}" getconfig displayName |sed 's!getconfig(displayName) = !!' | sed 's! !!g' | sed 's!-!_!g'`
CPU=`ps -o %cpu -p $PID --no-header`
echo $NAME."value" $CPU
i=`expr $i + 1`
done
Wow, danke!
Ich habs schon auf Munin Exchange gesehen, das es auch die Möglichkeit über -l gibt.
Leider konnt ichs bisher noch nich testen.
Ich hab jetz in 2 Tagen Abschlussprüfung, danach schau ich mir deins mal genauer an und pass das Script an.
Dazu habe ich noch folgendes gefunden.
Oben sollte eigentlich noch der Link
http://munin.projects.linpro.no/wiki/plugin-vmware_gsx_
drin sein. Vielleicht kanns der Moderator reineditieren.
EDIT By Beck: Hab den Link unten eingebaut, sieht echt interessant aus