So, zurück aus dem Urlaub, da kann es ja weitergehen mit dem bloggen 😉
Wer Munin zum überwachen seine(r/s) Server(s) benutzt (wie ich) kennt wahrscheinlich auch den Graph, der die Speicherauslastung anzeigt. Der sieht ungefähr so aus:
Aber ganz ehrlich: Ich steige da nicht durch… Zum einen ist der Graph blöd skaliert (ich habe nur 200MB RAM, aber er geht bis 25GB), und man kann auch nicht wirklich erkennen, ob man nun noch Speicher hat oder nicht.
Also dachte ich mir, bauen ich doch mein altes Skript etwas um, und integriere es in Munin. Das ist gar nicht schwer, denn es gibt natürlich eine passende Anleitung.
Also das Skript ein bisschen umgeschrieben, und fertig ist das Ding. Um es in Munin zu integrieren muss es natürlich ausführbar gemacht werden (chmod a+x file) und unter /etc/munin/plugins ein Link auf die Datei angelegt werden. Danach noch munin-node neustarten, und fertig ist das eigene Plugin.
Überwacht werden der vorhandene und benutzte RAM und Swap. Die Daten werden aus der Ausgabe von free gewonnen. Ein Bild kann ich leider noch nicht zeigen, ich habe das ja selber erst seit 30min laufen… Aber ich hoffe doch auf ein besseres Bild als das da oben. Hier ist also der komplette Code:
#!/bin/sh #Munin Plugin to monitor the ouput of free #Written by Niklas Rother 2011 case $1 in config) cat <<'EOM' graph_title Memory ussage graph_vlabel Vytes RAM_total.label Total RAM RAM_used.label Used RAM Swap_total.label Total Swap Swap_used.label Used Swap graph_args --base 1024 -l 0 graph_scale yes graph_category other graph_info This graph shows some values of the output of "free". The buffer/cache adjusted values are used. RAM_total.info The total ammount of build in RAM (free total colum) RAM_used.info The ammount of RAM currently used by processes (excluding buffers and caches) Swap_total.info The total ammount of availible available Swap Swap_used.info The ammount of Swap currently used by processes EOM exit 0;; esac echo -n "RAM_total.value " free|grep Mem:|awk '{ print $2 }' echo -n "RAM_used.value " free|grep cache:|awk '{ print $3 }' echo -n "Swap_total.value " free|grep Swap:|awk '{ print $2 }' echo -n "Swap_used.value " free|grep Swap:|awk '{ print $3 }'