get notification when systemd-monitored service enters failed state
Solution 1:
systemd units support OnFailure that will activate a unit (or more) when the unit goes to failed. You can put something like
OnFailure=notify-failed@%n
And then create the [email protected]
service where you can use the required specifier (you probably will want at least %i) to launch the script or command that will send notification.
You can see a practical example in http://northernlightlabs.se/systemd.status.mail.on.unit.failure
Solution 2:
Just my way to notify :
/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]'
[Install]
WantedBy=multi-user.target
add to systemd:
systemctl enable /etc/systemd/system/[email protected]
At others services add:
[Unit]
OnFailure=notify-email@%i.service
Reload the configuration:
systemctl daemon-reload