it-swarm.com.de

Benachrichtigung erhalten, wenn der vom System überwachte Dienst in den Status "Fehlgeschlagen" wechselt

Ich muss Netzwerknachrichten senden lassen, wenn ein Systemdienst, den ich habe, abstürzt oder hängen bleibt (d. H. In den Status "Fehlgeschlagen" wechselt; ich überwache mit WatchdogSec =, ob er hängen bleibt). Ich habe festgestellt, dass neuere Systeme FailureAction = haben, habe dann aber festgestellt, dass dies keine beliebigen Befehle zulässt, sondern nur einen Neustart/Herunterfahren.

Insbesondere muss eine Netzwerknachricht gesendet werden, wenn systemd feststellt, dass das Programm abgestürzt ist, und eine andere, wenn festgestellt wird, dass es hängen geblieben ist.

Ich hoffe auf eine bessere Antwort als "Parsen der Protokolle", und ich brauche etwas, das eine nahezu sofortige Antwortzeit hat, daher halte ich einen Abfrageansatz nicht für gut. Es sollte etwas sein, das durch das Eintreten des Ereignisses ausgelöst wird.

36
Display Name

systemd-Einheiten unterstützen OnFailure, das eine Einheit (oder mehr) aktiviert, wenn die Einheit ausfällt. Sie können so etwas setzen

 [email protected]%n

Und dann erstellen Sie die [email protected] Dienst, bei dem Sie den erforderlichen Bezeichner verwenden können (wahrscheinlich möchten Sie mindestens% i), um das Skript oder den Befehl zu starten, der die Benachrichtigung sendet.

Ein praktisches Beispiel finden Sie in http://northernlightlabs.se/systemd.status.mail.on.unit.failure

35
Pablo Martinez

Nur meine Art zu benachrichtigen:

/etc/systemd/system/[email protected]

[Unit]
Description=Sent email 

[Service]
Type=oneshot
ExecStart=/usr/bin/bash -c '/usr/bin/systemctl status %i | /usr/bin/mailx -Ssendwait -s "[SYSTEMD_%i] Fail" [email protected]'

zu systemd hinzufügen:

systemctl enable /etc/systemd/system/[email protected]

Bei anderen Diensten hinzufügen:

[Unit]
[email protected]%i.service

Laden Sie die Konfiguration neu:

systemctl daemon-reload
20
ceinmart

Ich bin auf dieses Dienstprogramm gestoßen, das Folgendes zu bieten scheint: https://github.com/joonty/systemd_mon

0