Eu preciso ter mensagens de rede enviadas quando um serviço systemd que tenho trava ou trava (ou seja, entra em estado de falha; eu monitoro travamentos usando WatchdogSec=). Percebi que o systemd mais recente tem FailureAction=, mas depois vi que isso não permite comandos arbitrários, mas apenas reinicialização/desligamento.
Especificamente, preciso de uma maneira de enviar uma mensagem de rede quando o systemd detecta que o programa travou e outra quando detecta que travou.
Espero uma resposta melhor do que "analisar os logs" e preciso de algo que tenha um tempo de resposta quase instantâneo, então não acho que uma abordagem de pesquisa seja boa; deve ser algo desencadeado pela ocorrência do evento.
unidades systemd suportam OnFailure que ativará uma unidade (ou mais) quando a unidade falhar. Você pode colocar algo como
Em seguida, crie o
[email protected]
serviço onde você pode usar o especificador necessário (provavelmente desejará pelo menos %i) para iniciar o script ou comando que enviará a notificação.Você pode ver um exemplo prático em http://northernlightlabs.se/systemd.status.mail.on.unit.failure
Apenas a minha maneira de notificar:
/etc/systemd/system/[email protected]
adicione ao systemd:
Em outros serviços adicione:
Recarregue a configuração:
Me deparei com este utilitário que parece fornecer isso: https://github.com/joonty/systemd_mon