Nachdem wir die Datenerfassung mit Prometheus bewerkstelligt haben, ist es nun natürlich sinnvoll auch eine Datenvisualisierung einzurichten. Hier kommt Grafana1 ins Spiel.
Prometheus1 sammelt Metriken von verschiedenen Quellen und bietet leistungsstarke Funktionen zur Analyse und Visualisierung dieser Metriken. Prometheus ermöglicht das Erkennen von Anomalien, das Überwachen von Service-Level-Agreements (SLAs) und das Generieren von Warnungen bei Abweichungen. Es bietet eine flexible Abfragesprache namens PromQL, zur Abfrage von Metriken und zur Durchführung komplexer Auswertungen. Es ist in der Cloud-Native- und DevOps-Welt weit verbreitet und wird häufig mit anderen Tools wie Grafana zur Visualisierung verwendet.
Es kommt leider immer mal wieder vor, dass ein automatisierter Prozess auf ein Problem stößt und daher seine Verarbeitung abbricht. Das ist meistens kein Problem, man schaut nach woran es gelegen hat, behebt das Problem und führt den Prozess erneut aus. In manchen Fällen nimmt ein Script aber bestimmte Vorarbeiten vor, die ein erneutes Ausführen behindern, z.B. könnte ein Script Snapshots erzeugen und Mounten. Versucht man dies ein zweites Mal, wird dies zu Fehlermeldungen führen. Nutzt ein Script dann z.B. set -e
1 um bei Fehlern die weitere Ausführung abzubrechen, haben wir ein Problem und müssen die abschließenden Arbeiten des Scripts einmal manuell ausführen. Das kann realtiv komplex werden, vor allem weil man solche - eigentlich automatisierten - Vorgänge ja meist nicht mehr so wirklich auf dem Schirm hat.
Immer wieder gibt es Prozesse die sehr lange dauern und die auf keinen Fall doppelt gestartet werden sollten. Vor vielen Jahren bin ich über eine Lösung für Lockfiles in Bash-Scripten gestolpert, die ich seitdem in fast jedem Script mit potenziell langer Laufzeit nutze.
Das Backuptool borg
1 habe ich hier ein wenig beschrieben. Nun soll es darum gehen mittels borg saubere Backups zu erstellen und auch sicherzustellen, diese jederzeit wiederherstellen zu können.
Backups sind ein leidiges aber eben auch wichtiges Thema. Zum Glück gibt es heutzutage wirklich tolle Tools um auch umfangreiche Backup zu erzeugen. Wenn dabei dann noch die anfallenden Datenmengen klein genug werden, dass selbst eine normale DSL-Leitung ausreicht um das Backup zu externen Speichern zu übertragen, ist man Nahe dran am heiligen Backupgral.
Lange Zeit habe ich nach Tools gesucht, die ein Backup in kurzer Zeit, mit geringen Bandbreitenbedarf, Verschlüsselung, einwandfreier und vollständiger Überprüfbarkeit und einfacher Wiederherstellung gewährleisten.
LVM (Logical Volume Manager) erlaubt im Grunde die flexiblere Verwaltung von "Partitionen" einer Festplatte. Anstatt die Partitionen beim Einrichten eines Datenträgers (z.B. mittels fdisk
) einmal - mehr oder weniger - fix festzulegen, erzeugt man mit LVM sog. Volume Groups
(VG). Eine solche Volume Group
kann mehrere physikalische Datenträger umfassen1. Innerhalb der Volume Groups
werden dann die eigentlichen Logical Volumes
(LV) erzeugt. Diese können dann wie physikalische Datenträger behandelt und mit beliebigen Dateisystemen versehen werden.
Ein weiteres Feature von LVM sind sog. Snapshots
. Ein Snapshot
friert den Zustand des Dateisystems zum Zeitpunkt der Erstellung des Snapshots quasi ein. Die Daten im Snapshot verändern sich nicht mehr. Technisch funktioniert dies über das sog. Copy on write
2. Dies ist sehr hilfreich um konsistente Backups erstellen zu können.
Verschiedene Betriebssysteme haben jeweils ihre eigenen Stärken und Schwächen. Ich nutze daher gern Multibootsysteme, auf denen mehrere Betriebssysteme (hoffentlich) friedlich koexistieren. In der Vergangenheit waren Multibootsetups oft etwas hakelig, da man sich mit den Konfigurationsdateien der jeweiligen Bootloader (z.B. GRUB1) beschäftigen musste, die mitunter sehr kryptisch sind.
Hier schaffen EFI-Bootmanager wie rEFInd2 Abhilfe, diese erkennen die anderen Systeme automatisch und bieten zudem eine optische ansprechende Oberfläche. Zudem kann rEFInd unabhängig von den jeweiligen Betriebssystemen installiert werden, wenn man ein System nicht mehr benötigen sollte, können dessen Partition(en) einfach gelöscht werden und der Eintrag in rEFInd verschwindet automatisch.
Immer wieder stolpere ich über interessante Webseiten, habe aber in dem Moment nicht immer die Zeit, mich intersiver damit zu befassen. Lange Zeit habe ich mir dann einfach einen Bookmark im Browser gesetzt und ihn dann meist nie wieder aufgerufen. Zum einen weil die Bookmarks zwischen verschiedenen Geräten nicht synchronisiert wurden, zum andren weil ich oft gar nicht mehr wusste, was ich da eigentlich gebookmarked hatte.
Für das Sync-Problem gibt es mittlerweile natürlich jede Menge Tools und Services. Aber keiner davon hat mir bisher so wirklich gut gefallen. Entweder waren es Datenkraken und/oder total überladene Produkte.
Irgendwann bin ich dann über Wallabag1 gestolpert.
Um den Einstieg in ein Selbstbau-SmartHome zu machen, bieten sich ESP82661 oder ESP322 Mikrocontroller an. Sie sind klein, günstig, brauchen wenig Strom und sind leicht zu programmieren. Ein sehr einfaches Gerät, könnte ein Raumthermometer sein. So etwas kann man sich sehr einfach mit einem ESP8266, einem 4,7 kOhm Widerstand, einem DHT223 Sensor und ein paar Kabeln basteln. Programmiert werden kann so ein ESP8266 z.B. über die Arduino Entwicklungsumgebung4, die kostenlos heruntergeladen werden kann.