Faultnotify đ§
Faultnotify, Debian (+Derivate)
Wiki-Stand: 21.01.2026
Script-Stand: 19.21.01.2026
Download
đ Vorwort
Faultnotify ist ein leichtgewichtiges, modular aufgebautes Bash-Script zur Ăberwachung von GerĂ€ten und Diensten.
Es wurde mit dem Ziel entwickelt, Störungen zuverlĂ€ssig und frĂŒhzeitig zu erkennen. Dazu ĂŒberprĂŒft Faultnotify GerĂ€te und Dienste fortlaufend und informiert im Fehlerfall automatisch per Benachrichtigung.
Alle benötigten Daten werden zentral in einem festen Verzeichnis abgelegt. Dort befinden sich unter anderem die Konfiguration, Statusinformationen sowie Steuer- und optional auch Sprachdateien. Dadurch bleibt alles ĂŒbersichtlich an einem Ort.
Optional kann Faultnotify um zusÀtzliche Sprachdateien erweitert werden. In diesem Fall ist das Script in der Lage, Benachrichtigungen und Ausgaben in der jeweiligen Sprache bereitzustellen.
Faultnotify eignet sich sowohl fĂŒr einzelne Systeme als auch fĂŒr gröĂere, verteilte Umgebungen. Es kommt bewusst ohne zusĂ€tzliche Software oder Datenbanken aus und bleibt dadurch einfach, robust und wartungsarm.
In verteilten Umgebungen können GerÀte und Dienste zu Gruppen zusammengefasst werden. So wird sichergestellt, dass im Störungsfall nur gezielte und sinnvolle Benachrichtigungen ausgelöst werden.
FĂŒr den Dauerbetrieb empfiehlt sich die Einrichtung als Systemdienst. Dadurch lĂ€uft Faultnotify permanent im Hintergrund und bleibt auch nach Neustarts zuverlĂ€ssig aktiv.
đĄ Allgemein und Funktionsaufbau
Faultnotify legt sein zentrales Arbeitsverzeichnis unter /home/$USER/script-data/faultnotify an.
Falls eine Sprachdatei verwendet wird, ist diese hier einzupflegen: /home/$USER/scrupts-data/faultnotify/lang/xxx.txt.
Faultnotify wird zuerst ĂŒber den Befehl install installiert und eingerichtet. Das Skript fĂŒhrt dabei interaktiv durch die Erstkonfiguration und legt die grundlegenden Einstellungen fest.
WĂ€hrend der Installation prĂŒft Faultnotify, ob alle benötigten Programme auf dem System vorhanden sind. Fehlende AbhĂ€ngigkeiten werden klar angezeigt und mĂŒssen eigenstĂ€ndig nachinstalliert werden.
Im Anschluss wird die gewĂŒnschte Art der Benachrichtigung festgelegt. Zur Auswahl stehen E-Mail oder Telegram. AbhĂ€ngig von der Auswahl werden die erforderlichen Angaben abgefragt und in der Konfiguration gespeichert.
Bei der Einrichtung der Benachrichtigungen wird ein Verifizierungscode an die angegebene E-Mail-Adresse oder den gewÀhlten Telegram-Account gesendet. Dieser Code muss zur BestÀtigung eingegeben werden. Die Verifizierung dient dazu sicherzustellen, dass Benachrichtigungen im Störungsfall tatsÀchlich zugestellt werden und korrekt funktionieren.
Wird die Verifizierung ĂŒbersprungen oder schlĂ€gt sie fehl, wird die Installation dennoch fortgesetzt. Die Benachrichtigungseinstellungen können spĂ€ter manuell angepasst werden, jedoch ohne erneute automatische Verifizierung. In diesem Fall liegt die vollstĂ€ndige Verantwortung fĂŒr eine funktionierende Zustellung beim Nutzer. Es gibt aber einen Workaround: hier.
Neu ist die eingefĂŒhrte Gruppenlogik. Diese entstand aus der praktischen Anforderung heraus, Benachrichtigungsfluten zu vermeiden. Ein typisches Beispiel ist die Ăberwachung einer VPN-Verbindung mit mehreren dahinterliegenden GerĂ€ten oder Diensten.
FĂ€llt in einem solchen Szenario die VPN-Verbindung aus, wĂ€ren die nachgelagerten GerĂ€te zwangslĂ€ufig ebenfalls nicht erreichbar. Ohne Gruppierung wĂŒrde dies zu einer Vielzahl gleichzeitiger Störungsmeldungen fĂŒhren, obwohl die eigentliche Ursache nur der VPN-Ausfall ist.
Durch die Gruppenbildung wird dieses Problem gezielt verhindert. Wird ein GerĂ€t oder Dienst als abhĂ€ngig von der VPN-Ăberwachung angelegt, prĂŒft Faultnotify zuerst den ĂŒbergeordneten Eintrag. Ist dieser nicht erreichbar, werden die untergeordneten PrĂŒfungen ausgesetzt und es erfolgt keine weitere Benachrichtigung fĂŒr die abhĂ€ngigen GerĂ€te.
Erst wenn die VPN-Verbindung wieder verfĂŒgbar ist, werden die nachgelagerten GerĂ€te erneut geprĂŒft. Auf diese Weise bleibt die Benachrichtigung aussagekrĂ€ftig, ĂŒbersichtlich und auf die tatsĂ€chliche Ursache beschrĂ€nkt.
đ GerĂ€teprĂŒfung (TEST)
Das Modul test ist die zentrale PrĂŒffunktion von Faultnotify. Es prĂŒft alle in der Konfiguration hinterlegten GerĂ€te und Dienste und erkennt Störungen sowie Wiederherstellungen.
Bei direktem Aufruf fĂŒhrt test genau einen vollstĂ€ndigen Durchlauf aus. Das bedeutet:
-
Alle GerĂ€te und Dienste werden einmal geprĂŒft.
-
Im Fehlerfall werden Benachrichtigungen ausgelöst.
-
Danach endet der Durchlauf automatisch.
đ Automation (RUN)
Dies ist der Dauerschleifen-Modus. Hier werden permanent mit einem Versatz von 5 Sekunden die in der Konfiguration eingerichteten GerĂ€te und Dienste geprĂŒft.
Hinweis: Wird run direkt im Terminal gestartet, lĂ€uft Faultnotify im Vordergrund und blockiert das Terminal. FĂŒr den Dauerbetrieb wird die Einrichtung als Systemdienst empfohlen. Dadurch lĂ€uft Faultnotify dauerhaft im Hintergrund und der Status ist jederzeit ĂŒber systemctl status faultnotify sichtbar.
â GerĂ€te/Dienste hinzufĂŒgen (ADD)
Mit dem Modul add können neue GerĂ€te und Dienste interaktiv zur Ăberwachung hinzugefĂŒgt werden. Der Vorgang ist dialoggefĂŒhrt aufgebaut und kann mehrfach hintereinander ausgefĂŒhrt werden, um mehrere EintrĂ€ge nacheinander anzulegen.
Zu Beginn ermittelt Faultnotify automatisch die nÀchste freie GerÀte-ID. Diese wird fortlaufend vergeben.
Im Anschluss werden Schritt fĂŒr Schritt folgende Angaben abgefragt:
-
Name des GerÀts oder Dienstes
Der Anzeigename dient ausschlieĂlich der Ăbersicht. Kritische Zeichen werden automatisch bereinigt, um die Konfigurationsdatei konsistent zu halten. -
IP-Adresse oder Domain
Es kann entweder eine IPv4-Adresse oder ein gĂŒltiger Domainname angegeben werden. -
DienstĂŒberwachung (optional)
Falls ein Dienst ĂŒberwacht werden soll, wird der zu prĂŒfende Port abgefragt.
Optional kann festgelegt werden, ob es sich um einen UDP-Dienst handelt. Wird kein Port angegeben, behandelt Faultnotify den Eintrag als reines GerĂ€t (Ping-PrĂŒfung). -
AbhÀngigkeit von einem Master-GerÀt (optional)
GerÀte und Dienste können einem bestehenden Eintrag untergeordnet werden. Dadurch lassen sich AbhÀngigkeiten abbilden, zum Beispiel:-
Dienste hÀngen von einem Server ab
-
UntergerÀte hÀngen von einem HauptgerÀt ab
Ist kein Master angegeben, wird der Eintrag automatisch der Root-Gruppe (G000) zugeordnet.
-
Nach Abschluss der Eingaben wird der neue Eintrag:
-
in die Konfigurationsdatei geschrieben
-
im internen Log protokolliert
-
sofort fĂŒr kĂŒnftige PrĂŒfungen berĂŒcksichtigt
Der HinzufĂŒgen-Modus kann jederzeit durch eine leere Eingabe beim Namen beendet werden. Nach dem ersten erfolgreichen HinzufĂŒgen wird Faultnotify als âeingerichtetâ markiert, sodass die Ăberwachung genutzt werden kann.
Hinweis zur Gruppenlogik:
Die Gruppenlogik entstand aus der praktischen Anforderung heraus, Benachrichtigungsfluten zu vermeiden. Ein typisches Beispiel ist die Ăberwachung einer VPN-Verbindung mit mehreren dahinterliegenden GerĂ€ten oder Diensten.
FĂ€llt in einem solchen Szenario die VPN-Verbindung aus, wĂ€ren die nachgelagerten GerĂ€te zwangslĂ€ufig ebenfalls nicht erreichbar. Ohne Gruppierung wĂŒrde dies zu einer Vielzahl gleichzeitiger Störungsmeldungen fĂŒhren, obwohl die eigentliche Ursache nur der VPN-Ausfall ist.
Durch die Gruppenbildung wird dieses Problem gezielt verhindert. Wird ein GerĂ€t oder Dienst als abhĂ€ngig von der VPN-Ăberwachung angelegt, prĂŒft Faultnotify zuerst den ĂŒbergeordneten Eintrag. Ist dieser nicht erreichbar, werden die untergeordneten PrĂŒfungen ausgesetzt und es erfolgt keine weitere Benachrichtigung fĂŒr die abhĂ€ngigen GerĂ€te.
Erst wenn die VPN-Verbindung wieder verfĂŒgbar ist, werden die nachgelagerten GerĂ€te erneut geprĂŒft. Auf diese Weise bleibt die Benachrichtigung aussagekrĂ€ftig, ĂŒbersichtlich und auf die tatsĂ€chliche Ursache beschrĂ€nkt.
âïž Modifizierung/Bearbeitung (MOD)
Das Modul mod dient zur nachtrĂ€glichen Pflege und Anpassung von Faultnotify. Es ermöglicht sowohl die Verwaltung einzelner GerĂ€te und Dienste als auch die Ănderung zentraler Konfigurationseinstellungen.
Nach dem Start von mod wird zunÀchst abgefragt, welcher Bereich geÀndert werden soll:
-
GerÀte und Dienste
-
Zentrale Konfiguration
GerÀte und Dienste bearbeiten
Wird der GerĂ€te-/Service-Bereich gewĂ€hlt, zeigt Faultnotify zunĂ€chst alle aktuell eingerichteten EintrĂ€ge in einer ĂŒbersichtlichen Liste an. Jeder Eintrag enthĂ€lt unter anderem:
-
GerÀte- bzw. Service-ID
-
Gruppenzugehörigkeit
-
Name
-
IP-Adresse
-
optional Port und Protokoll
AnschlieĂend wird abgefragt, welcher Eintrag geĂ€ndert werden soll. Die Auswahl kann flexibel erfolgen:
-
ĂŒber die GerĂ€te-ID (z. B.
D006oder006) -
ĂŒber einen Teil des Namens
-
ĂŒber die vollstĂ€ndige IP-Adresse
Nach eindeutiger Zuordnung des Eintrags stehen zwei Optionen zur VerfĂŒgung:
-
Eintrag löschen und neu definieren
Der bestehende Eintrag wird entfernt, zugehörige Status- und Jail-Informationen werden bereinigt und anschlieĂend wird automatisch der add-Dialog gestartet, um das GerĂ€t oder den Dienst neu anzulegen. -
Eintrag ersatzlos löschen
Der Eintrag wird vollstÀndig aus der Konfiguration entfernt. Auch hier werden zugehörige Status- und Jail-Dateien bereinigt.
Damit lassen sich GerÀte und Dienste sauber korrigieren, ersetzen oder dauerhaft entfernen.
Konfiguration bearbeiten
Wird die Konfiguration gewÀhlt, zeigt Faultnotify zunÀchst alle relevanten aktuellen Einstellungen an, inklusive erklÀrender Hinweise. Dazu gehören unter anderem:
-
Online-Ping-PrĂŒfung (Referenz fĂŒr Internet-Erreichbarkeit)
-
Art der Benachrichtigung (E-Mail oder Telegram)
-
E-Mail-EmpfÀnger
-
Telegram-Bot-Token
-
Telegram-Chat-ID
-
NÀchste zu vergebende GerÀte-ID
AnschlieĂend kann gezielt ein einzelner Parameter geĂ€ndert werden. Jede Ănderung erfolgt interaktiv:
-
Neuer Wert eingeben
-
Ăbersicht anzeigen
-
explizite BestĂ€tigung vor dem Ăbernehmen
Eingaben werden dabei geprĂŒft (z. B. Format von IP-Adressen, Domains, E-Mail-Adressen oder IDs), um fehlerhafte Konfigurationen zu vermeiden. Kommentare in der Konfigurationsdatei bleiben erhalten.
Ziel des MOD-Moduls
Das mod-Modul stellt sicher, dass Faultnotify auch im laufenden Betrieb einfach, kontrolliert und konsistent gepflegt werden kann - ohne manuelle Eingriffe in die Konfigurationsdatei und ohne das Risiko inkonsistenter ZustÀnde.
đ Ăbersicht (DRAW)
Mit dem Modul draw kann die komplette GerĂ€te- und Dienststruktur ĂŒbersichtlich als Baum angezeigt werden. Dabei werden alle AbhĂ€ngigkeiten berĂŒcksichtigt, sodass auf einen Blick sichtbar ist, welche GerĂ€te oder Dienste untergeordnet sind und welche als ĂŒbergeordnete âMasterâ-Ebene dienen.
Die Darstellung beginnt bei ROOT (G000) und zeigt darunter alle EintrĂ€ge aus der Konfiguration in einer klaren Hierarchie. ZusĂ€tzlich werden die wichtigsten Informationen direkt in der Ausgabe mitgefĂŒhrt:
-
ID des Eintrags
-
Name bzw. Beschreibung
-
IP-Adresse
-
optional Port und Protokoll (TCP/UDP)
Fehlerhinweis bei ungĂŒltigen AbhĂ€ngigkeiten
Falls ein Eintrag auf ein nicht vorhandenes Master-GerĂ€t verweist, gibt draw einen Hinweis aus und listet die betroffenen EintrĂ€ge auf. Dadurch lassen sich fehlerhafte AbhĂ€ngigkeiten schnell erkennen und anschlieĂend ĂŒber mod korrigieren.
đ Fehler / Troubleshooting
Wird wĂ€hrend der Installation eine Eingabe wie die Benachrichtigung falsch getĂ€gigt oder die Verifizierung der Benachrichtigung ĂŒbersprungen oder schlĂ€gt fehl, wird die Installation trotzdem weitergefĂŒhrt. Die Verifizierung dient dazu, dass sichergestellt werden kann, dass im Störungsfall auch Benachrichtigungen ankommen können.
In diesem Fall kann im Verzeichnis script-data/faultnotify die Datei .installed gelöscht werden, um die Installation erneut zu starten und die Erstkonfiguration nochmals vollstĂ€ndig durchzufĂŒhren.
đŁïž Sprachdateien
Faultnotify ist in der Lage, in verschiedenen Sprachen zu arbeiten und Benachrichtigungen entsprechend auszugeben. Grundlage dafĂŒr sind externe Sprachdateien. Im Script wird die I18N-Ăbersetzungstechnologie eingesetzt. Diese ermöglicht eine klare Trennung zwischen Programmlogik und Textausgaben und bildet die Grundlage fĂŒr die mehrsprachige Ausgabe von Meldungen und Benachrichtigungen.
Deutsch ist die im Script fest integrierte Standardsprache. ZusÀtzlich steht eine englische Sprachdatei zum Download bereit.
Weitere Sprachen können jederzeit ergÀnzt werden. Die Sprachdateien sind bewusst einfach aufgebaut, sodass sie von jedermann erstellt oder erweitert werden können. Dadurch ist Faultnotify nicht auf eine feste Anzahl von Sprachen beschrÀnkt und lÀsst sich flexibel an unterschiedliche Umgebungen anpassen.
Die Sprachdatei muss dann im zentralen Pfad im Ordner lang/ eingepflegt werden. Liegen mehrere Sprachdateien im Ordner, wird die erste vom Script automatisch ausgewÀhlt. Es ist daher ratsam, nur die benötigte Sprache herunterzuladen.
Faultnotify verwendet zur Einbindung von Sprachdateien einen SHA-256-Referenzcode, der direkt aus dem Script abgeleitet wird. Dieser Referenzcode stellt sicher, dass eine Sprachdatei eindeutig zu genau dieser Script-Version gehört. Diese Referenz ist in der ersten Zeile zu finden. Wenn eine neue Sprache integriert wird, ist dieser Referenzcode einzusetzen.
Dadurch wird verhindert, dass versehentlich eine unpassende oder fremde Sprachdatei verwendet wird, zum Beispiel aus einem anderen Script oder einer Ă€lteren Version. Stimmen Script und Sprachdatei nicht ĂŒberein, wird die Sprachdatei nicht geladen.
Der zugehörige Referenzcode lautet:
cd9469c22874456b2753906c222b2fea4e7d27d5abac866c1ad33df81313d3ed
Bitte beachten, dass sich dieser Referenzcode mit einer neuen Version Àndern kann. Hintergrund ist die IntegritÀt zur neuen Version, falls neue Textabschnitte hinzukommen oder welche abgeÀndert werden.
Im Falle eines Updates wird darauf hingewiesen mit Link in der Script-Standardsprache (Deutsch) und Englisch.
đŸ Download
Das Programm kann hier in immer der neuesten Version heruntergeladen werden:
Faultnotify Script (via mariobeh.de)
Sprachdateien:
Englisch (via mariobeh.de)