diff options
Diffstat (limited to 'source/00_content/articles/2011-03-31_sheevaplug_ueberwachung.md')
-rw-r--r-- | source/00_content/articles/2011-03-31_sheevaplug_ueberwachung.md | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/source/00_content/articles/2011-03-31_sheevaplug_ueberwachung.md b/source/00_content/articles/2011-03-31_sheevaplug_ueberwachung.md new file mode 100644 index 0000000..74dfa88 --- /dev/null +++ b/source/00_content/articles/2011-03-31_sheevaplug_ueberwachung.md @@ -0,0 +1,81 @@ +# SheevaPlug Überwachung + +Um den Überblick über die Auslastung und den Traffic meines SheevaPlugs zu behalten setze ich [Conky](http://conky.sourceforge.net/), [dstat](http://freshmeat.net/projects/dstat/) und [gnuplot](http://www.gnuplot.info/) ein. + +Den Systemmonitor Conky lasse ich mit dem Befehl `ssh -X -vv -Y -p 22 adrian@asterix "conky -c /home/adrian/.conkyrc"` über X-forwarding in meiner XFCE-Session anzeigen. Das klappt einwandfrei und ergibt zusammen mit dieser [Conky-Konfiguration](http://adrianktools.redirectme.net/files/.conkyrc) und einer lokalen Conky-Instanz folgendes Bild: + +<a href="http://imgur.com/2JuGZl"><img alt="Zwei Conky-Instanzen unter XFCE" src="http://i.imgur.com/2JuGZl.jpg" title="Zwei Conky-Instanzen unter XFCE" width="354" height="268" class="full" /></a> + +Zusätzlich loggt der SheevaPlug regelmäßig die aktuellen Systemdaten wie CPU-Auslastung, Netzwerkverkehr und belegten Arbeitsspeicher und generiert sie zu Graphen die mir dann jede Nacht per eMail zugesand werden. +Zum Loggen der Daten verwende ich dstat das mit folgendem, von einem Cron-Job gestarteten Befehl aufgerufen wird: + + dstat -tcmn 2 1 | tail -1 >> /var/log/systat.log + +Die Argumente -tcmn geben hierbei die zu loggenden Systemdaten und deren Reihenfolge an – heraus kommen Zeilen wie diese: + + 31-03 19:40:04 | 2 4 95 0 0 0 | 141M 11.3M 71.6M 277M | 684B 736B + +Um 0 Uhr wird dann die Log-Datei von einem Cron-Job mit diesem Script wegkopiert, Graphen werden von gnuplot generiert und dann mit einem kleinen Python-Programm versendet. + + #!/bin/sh + mv /var/log/systat.log /root/sys_graph/stat.dat + cd /root/sys_graph/ + ./generate_cpu.plot + ./generate_memory.plot + ./generate_network.plot + ./send_report.py + +Hier das gnuplot-Script zur Erzeugung des CPU-Graphen als Beispiel: + + #!/usr/bin/gnuplot + set terminal png + set output "cpu.png" + set title "CPU usage" + set xlabel "time" + set ylabel "percent" + set xdata time + set timefmt "%d-%m %H:%M:%S" + set format x "%H:%M" + plot "stat.dat" using 1:4 title "system" with lines, \ + "stat.dat" using 1:3 title "user" with lines, \ + "stat.dat" using 1:5 title "idle" with lines + +… und hier noch das Python-Programm zum Versenden per Mail: + + #!/usr/bin/python2 + import smtplib + from time import * + from email.mime.image import MIMEImage + from email.mime.multipart import MIMEMultipart + + lt = localtime() + + # Mail-Header + msg = MIMEMultipart() + msg['Subject'] = strftime('Leistungsreport – %d%m%Y', lt) + msg['From'] = 'reports@asterix' + msg['To'] = 'mail@mail.mail' + + msg.preamble = strftime('Leistungsreport – %d%m%Y', lt) + + # Attachments + fileArray = ['cpu.png','memory.png','network.png'] + for file in fileArray: + fp = open(file, ‘rb’) + img = MIMEImage(fp.read()) + fp.close() + msg.attach(img) + + # Login in SMTP-Server + s = smtplib.SMTP('smtpmail.t-online.de') + s.login('mail@mail.mail', '#####') + + s.sendmail('mail@mail.mail', 'mail@mail.mail', msg.as_string()) + s.quit() + +Als Endergebniss erhalte ich dann täglich solche Grafiken per Mail: + +<a href="http://imgur.com/tHGcG"><img alt="CPU-Graph" class="clear full" src="http://i.imgur.com/tHGcGl.jpg" title="CPU-Graph" /></a> + +Ich finde es immer wieder erstaunlich mit wie wenigen Zeilen Quelltext man interessante Sachen unter Linux erzeugen kann – oder besser wie viel Programme wie gnuplot mit nur wenigen Anweisungen erzeugen können. So hat das komplette Schreiben dieser Scripts mit Recherche nur etwa 1,5 Stunden gedauert – inklusive Testen. +Alle verwendeten Programme sind in den ArchLinux Paketquellen vorhanden – auch in denen von PlugBox-Linux, einer Portierung von ArchLinux auf ARM-Plattformen die ich nur immer wieder empfehlen kann – besonders nach den jetzt oft erscheinenden Paket-Updates. Aber dazu auch dieser Artikel: [Plugbox Linux – Ein ArchLinux Port für den SheevaPlug](/article/plugbox_linux_ein_archlinux_port_fuer_den_sheevaplug/). |