Raspberry Pi Monitoring mit Grafana
Dank eines findigen Lesers bin ich auf mein neuen Artikel zu Raspberry Pi Monitoring mit Grafana aufmerksam gemacht worden. Grafana ist ein 100% Open Source Monitoring Dienst mit dem man Server und headless (also ohne Monitor und Eingabegeräten im Netzwerk) betriebene Computer überwachen lassen kann. In diesem Artikel zeige ich euch wie man das Tool mit dem Raspberry Pi verwendet.
Raspberry Pi Monitoring mit Grafana
Das Tool gibt es auf der offiziellen Homepage gratis als Download. Wie so oft bei Open Source Software gibt es alternativ auch einen Enterprise Support, weshalb die Software auch in kommerziellen Systemen verwendet wird und durch das eingenommene Geld der Dienst weiter entwickelt werden kann.
Installation
Die Installationsanleitung findet man direkt auf der Homepage. Laut dieser wären genau 2 Zeilen auf der Kommandozeile einzugeben:
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_4.4.3_amd64.deb sudo dpkg -i grafana_4.4.3_amd64.deb
Leider bringt uns das am Raspberry Pi nicht weiter, da es das Package nur für 64-bit Systeme gibt:
Nachdem wir auf Linux mit Open Source Software unterwegs sind hält uns das nicht auf. Entweder wir kompilieren uns die Software nun selbst ODER wir finden jemand der das bereits gemacht hat.
ARM Binary
Glücklicherweise hatte bereits jemand das selbe Problem und hat auf GitHub die entsprechenden Dateien bereitgestellt. Vorbereitet für Raspberry Pi 1 (ARM6) und Raspberry Pi 2-3 (ARM7). Ich habe mir für meinen Pi 3 die entsprechende ARM 7 Version gezogen, falls ihr das auf einem Raspberry Pi 1 macht, bitte einfach das entsprechend andere Package verwenden.
Über einen alternativen Link holen wir uns nun ähnlich wie zuvor mittels wget das korrekte arm *.deb Paket.
Welches wir mit dem bereits weiter oben gezeigten dpkg Befehl installieren:
Insgesamt ist die Installation für ARM etwas mühsamer, aber durchaus möglich. Weiter geht es nun mit der Konfiguration und dem Betrieb der Grafana Monitoring Lösung für unseren Raspberry Pi.
Konfiguration
Die Installation des *.deb Packages liefert bereits einige Hinweise auf die Konfiguration des Dienstes (siehe Screenshot). Der Dienst wird mit folgendem Befehl gestartet:
sudo /bin/systemctl start grafana-server
Damit der Dienst auf bei jedem Neustart automatisch im Hintergrund gestartet wird können wir das mit folgenden Befehlen festlegen:
sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable grafana-server
Nachdem auf der Kommandozeile keine weiteren Ausgaben erfolgen beantwortet die Taskübersicht (zum Beispiel top) ob der Server auch tatsächlich läuft. Wie es scheint läuft dieser bei mir mit einer mäßigen Auslastung von 6 % CPU und knapp 2 % RAM…
Auswertung
Grafana bietet zahlreiche Möglichkeit auf dessen Daten zuzugreifen. Es gibt beispielsweise eine API über die man sich die Auswertungen zahlreicher Systeme auf eine zentrale Stelle zusammenstellen lassen kann. Zusätzlich hat jeder Server ein eigenes Webinterface. Am Raspberry Pi kann man sich lokal (oder über das Netzwerk von einem externen Rechner) diese Daten ansehen. Das Webinterface ruft man standardmäßig im Browser mit:
IP-vom-Pi:3000
auf, also dem Port 3000. Das geht lokal am eigenen Rechner so:
Der Default Login für Grafana ist übrigens admin und als Passwort admin. Diese sollte man aber dringendst in der Konfigurationsdatei /etc/grafana/grafana.ini ändern. Infomrationen zur Konfiguration findet ihr in der offiziellen Dokumentation.
Die Stärke von Grafana ist dessen komplett individuell zusammenstellbares Monitoring. Ihr könnt selber definieren welche Daten ihr visualisiert haben wollt, in welcher Art diese Daten angezeigt werden und wie mit den Werten umgegangen werden soll. Das Tool ist demnach extrem mächtig und perfekt für einen motivierten Administrator, der das Tool auf seine individuellen Wünsche anpassen kann.
Monitoring kurz erklärt
Wofür benötigt man eigentlich Monitoring Software auf einem Rechner? Gerade Server stehen irgendwo, verrichten ihr Dienste und fallen nur auf, wenn sie nicht funktionieren. Ein Administrator hat selten die Zeit all diese Systeme täglich zu prüfen, weshalb er dort Monitoring Software installiert. Diese liefert ihm Übersichtlich alle notwendigen Daten um eine Aussage über deren Funktion zu liefern. Solche Daten können beispielsweise sein:
- durchschnittliche CPU Auslastung
- CPU Auslastung Spitzen
- RAM Auslastung
- freier Speicherplatz
- laufende Prozesse
- Besonderheiten aus den Log Dateien
- uvm.
Die tatsächlich erhobenen Daten unterscheiden sich meist vom eingesetzten Dienst. Bei einem Webserver ist dessen Reaktionszeit und Auslastung interessant, bei einem FTP Server eher dessen freier Speicherplatz. Ja nach Dienst kann man diese Daten öfter oder weniger oft erheben lassen und spezielle Warn-Levels festlegen (zum Beispiel eine Information per SMS an den Admin, wenn die Auslastung 90% erreicht).
Fazit
Grafana ist ein mächtiges Open Source Tool um Server im Netzwerk zu kontrollieren. Es ist Betriebssystem unabhängig und zudem vollkommen frei konfigurierbar. Für ein einfaches Monitoring am Raspberry Pi bietet es fast zu viele Funktionen. Für einen professionellen Einsatz in einem größeren Unternehmen ist es dafür (insbesondere wegen dem Enterprise Support) empfehlenswert. Die Frage ist ob es für so große Systeme auch gut skaliert, des konnte ich in meinem „kleinen“ Test leider nicht feststellen.
Hat jemand von euch bereits Erfahrung mit dem Tool im Einsatz? Gibt es besondere Stärken oder Schwächen die erst im professionellen Einsatz im großen Netzwerk auffallen?
Danke für den Artikel. Doch leider endet er wo es interessant wird. Wo kommen die Daten her? Wie bindet man sie ein?
Das alles hat nur noch mit der Verwendung der Software zu tun und kann aus der Dokumentation entnommen werden. Also nichts Raspberry Pi spezifisches mehr.
Das ist die Installation aber auch, die ist Debian spezifisch. Einzige wirklich RasP-spezifische ist die Auswahl des Pakets. Gut dass du mehr gemacht hattest, sonst wäre der Artikel sehr kurz und langweilig geworden.
Kurze Umformulierung der Fragen, damit es RasPi-spezifisch wird: Wie bekomme ich die CPU-Auslastung meines RasPi im Grafana angezeigt?
recht einfach: du legst am Pi eine Datenbank an, erstellst ein Skript (z.B. Python) mit dem du in gewünschter Frequenz die Last speicherst. In Grafana musst du dann nur noch eine neue Datenquelle erstellen (die Datenbank verbinden) und einen Graphen für eine Abfrage wie z.B. Select cpu_usage from cpu erstellen. Schon siehst du die Auslastung aus der DB schön als Kurve in Grafana ausgegeben.
Empfehlen kann man in diesem Zusammenhang „Telegraf“ und „InfluxDB“. ich selber verwende beides zusammen mit Grafana. einfach mal googlen 🙂
influxDB stellt eine Datenbank bereit, Telegraf schreibt Daten hinein und Grafana stellt sie graphisch dar. Telegraf sammelt Daten von unterschiedlichen Stellen, zB systemintern (CPU Load, Festplattenauslastung, -benutzung, Ramauslastung, Netzwerkauslastung,…..) oder auch per SNMP von anderen Geräten. So überwache ich meinen ESXi Server, diverse VMs, den Pi3, meine Firewall/Switch/Accesspoint.
Auf dieser Seite wurde zum Beispiel ein Kapazitiver Bodenfeuchtefühler zur Messung der Erdfeuchte von Blumen eingesetzt.
Ich finde DAS ein richtig schönes Beispiel für den Einsatz von Grafana.
Grafana Seite: http://bss135.selfhost.eu:58888/dashboard/db/erdfeuchte-topfdaten?from=1487977200000&to=now
Beschreibung zum Einrichten der Seite: http://www.n8chteule.de/zentris-blog/
Eingesetzter Sensor: https://www.ramser-elektro.at/shop/bausaetze-und-platinen/giesomat-kapazitiver-bodenfeuchtesensor-erdfeuchtesensor-mit-beschichtung/
Nett geschrieben und nett bebildert. Schade nur, dass die beiden Links von alternativer Datei und Installation nicht als Source (copy/paste ready) mit im Text sind.
stimmt. hier der „missing link“
https://bintray.com/fg2it/deb/download_file?file_path=main%2Fg%2Fgrafana_5.1.3_armhf.deb
sudo dpkg -i download_file?file_path=main%2Fg%2Fgrafana_5.1.3_armhf.deb
entpacken
Es gibt nun offizielle Pakete von Grafana für ARM
https://grafana.com/grafana/download?platform=arm
Grafana ist in den Raspbian Repos enthalten, der Vorteil ist neben einer einfachen Installation auch das es, per apt installiert, gut ins System integriert ist und somit auch automatisch aktualisiert wird bei einem apt full-upgrade.
apt install grafana
danke für diese Information. Anscheinend ist grafana mittlerweile im Debian Paketmanagement dabei.