Home > privates, programmieren > Mein erstes Munin Plugin: VMware CPU Monitoring

Mein erstes Munin Plugin: VMware CPU Monitoring

14. November 2007

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

Kategorienprivates, programmieren Tags:
  1. 28. Februar 2008, 01:04 | #1

    Benutze
    VMX=(„/var/lib/vmware/Virtual Machines//Other Linux.vmx“ „/var/lib/vmware/Virtual Machines//Other Linux2.vmx“)

    Dann sparst du dir das Nummerieren.

  2. Pfeffer
    23. Juni 2008, 19:36 | #2

    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

  3. 23. Juni 2008, 19:43 | #3

    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.

  4. Pfeffer
    24. Juni 2008, 10:16 | #4

    Dazu habe ich noch folgendes gefunden.

  5. Pfeffer
    24. Juni 2008, 16:30 | #5

    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

Kommentare sind geschlossen