Tutorial: Diagrammerstellung mit Gnuplot

Mit Hilfe der freien Software Gnuplot können Sie Messwerte, die Querx während eines Tages erfasst hat, automatisiert herunterladen und daraus aussagekräftige Diagramme erstellen.

Querx: Visualisierung von Daten mit Gnuplot
Querx: Visualisierung von Daten mit Gnuplot

In diesem Tutorial werden Shellscripts verwendet, um zunächst die Messdaten der Querx Sensoren im CSV-Format herunterzuladen und dann aus diesen Werten automatisch Diagramme zu erzeugen. Über einen Cronjob wird der Vorgang täglich um 8.00 Uhr angestoßen, um die Messwerte des Vortags zu verarbeiten.

Die Daten des im Messgerät integrierten Datenloggers werden über das HTTP-Interface ausgelesen. Das Interface ist über den URL http://<HOST>/tpl/document.cgi?tpl/j/csv.tpl&start=<START>&end=<END>&step=<RES> erreichbar.
Hierbei steht <HOST> für die IP-Adresse oder den Hostnamen des Geräts. <START> und <END> grenzen den Zeitraum ein, für den Daten heruntergeladen sollen und werden als Unix-Timestamp angegeben. <RES> ist die Anzahl der Sekunden zwischen zwei CSV-Einträgen.

Schritt 1:
Vorbereitung

Die Shellscripts benötigen neben der bash, die standardmäßig auf einem Linux-System vorhanden ist, das Paket wget und das Paket gnuplot. Installieren Sie diese mit dem folgenden Kommando:

$ sudo apt-get install wget gnuplot

Laden Sie die Datei daily_exports.tar_.gz herunter und entpacken Sie sie. Kopieren Sie dann den Inhalt des Archivs in das Home-Verzeichnis des Benutzers querx und weisen Sie diesem Zugriffsrechte zu. Fahren Sie als Benutzer querx fort.

$ tar -xvzf daily_exports.tar.gz
$ sudo cp -r egnite /home/querx
$ cd /home/querx/
$ sudo chown -R querx:querx egnite
$ cd egnite
$ su querx

Schritt 2:
Messgeräte verwalten

Je nach eingesetztem Messgerät unterscheiden sich die erfassten Messwerte und somit sowohl die CSV-Dateien, als auch die Diagramme, die letztlich generiert werden. Aus diesem Grund werden die Querx Sensoren nach Geräteklassen unterteilt. Die Querx TH Geräte, die Sie überwachen möchten, werden in die Datei hosts_th eingetragen, die Querx PT Geräte in die Datei hosts_pt, jeweils mit einer IP-Adresse bzw. einem Hostnamen pro Zeile.

$ cat hosts_pt
192.168.1.100
192.168.1.101
$ cat hosts_th
192.168.1.110
192.168.1.111

Schritt 3:
Export-Script anpassen

Öffnen Sie die Datei exports.sh in einem Texteditor wie vim oder nano.

Das Verhalten des Scripts bestimmen folgende Variablen: WORKDIR ist das Verzeichnis, in dem sich das Script befindet. CSVDIR ist das Verzeichnis, in welches die CSV-Dateien heruntergeladen werden. PDFDIR ist das Verzeichnis, in dem die erzeugten Diagramme als PDF-Datei abgelegt werden.

WORKDIR='/home/martin/egnite/'
CSVDIR='./csv/'
PDFDIR='./pdf/'

Über die Variablen TIME, PERIOD und RESOLUTION legen Sie den Inhalt der CSV-Dateien fest: TIME bestimmt die Uhrzeit des letzten Eintrags am Tage des Aufrufs. PERIOD ist die Anzahl der Stunden, die insgesamt exportiert werden sollen und RESOLUTION bestimmt den zeitlichen Abstand zwischen zwei Einträgen.
Mit den unten angegeben Werten werden also die Daten zwischen 0.00 Uhr des Vortags bis 0.00 Uhr am Tag des Aufrufs mit einer Schrittweite von 10 Minuten heruntergeladen.

#Time of last record in CSV:
TIME="00:00:00"
#Export Period in Hours
PERIOD=24
#Time resolution in minutes
RESOLUTION=10

Schritt 4:
Gnuplot anpassen

Nachdem eine CSV-Datei heruntergeladen wurde, wird sie, abhängig vom Gerätetyp, an gnuplot_th.sh oder gnuplot_pt.sh übergeben, um aus den Daten Diagramme zu erzeugen. Haben Sie Veränderungen im Export-Script vorgenommen, kann es notwendig sein, hier Anpassungen vorzunehmen. Beispielsweise sorgt der Befehl set xtics 3600 dafür, dass ein Schritt auf der X-Achse der Diagramme einer Stunde entspricht. Detaillierte Informationen zu Gnuplot finden Sie auf der Website des Projekts.

Schritt 5:
Cronjob einrichten

Zuletzt konfigurieren Sie einen Cronjob so, dass das Script export.sh einmal täglich aufgerufen wird. Geben Sie dazu ein:

crontab -e

Wurde die Umgebungsvariable EDITOR nicht gesetzt, müssen Sie nun einen Editor wählen. Fügen Sie im Editor dann den folgenden Eintrag hinzu:

0 8 * * * /home/querx/egnite/export.sh

Dieser bewirkt, dass das Script an jedem Wochentag, in jedem Monat und an jedem Tag eines Monats um 8.00 Uhr ausgeführt wird.
Weitere Informationen über Cronjobs finden Sie im deutschen Ubuntu-Wiki.

Nun werden die Daten der von Ihnen angegebenen Querxe jeden Morgen um 8.00 Uhr abgefragt, die CSV-Dateien im Verzeichnis csv gespeichert und daraus im Verzeichnis pdf Diagramme generiert.