Eu odeio contradizer diretamente outro pôster, mas NAGIOS pode fazer exatamente isso: o que você está procurando é referido na documentação como escalações de notificação .
Como o doco diz,
Notifications are escalated if and only if one or more escalation definitions matches the current notification that is being sent out. If a host or service notification does not have any valid escalation definitions that applies to it, the contact group(s) specified in either the host group or service definition will be used for the notification.
Então, se você tivesse um serviço chamado HTTP
em um host webserver
, cuja falha normalmente alertava o grupo sysadmins
a cada 30 minutos (digamos), e você queria que o grupo managers
ouvisse sobre ele se algumas vezes os alertas não forem confirmados e não forem corrigidos pelo terceiro alerta, você poderá tentar:
define serviceescalation{
host_name webserver
service_description HTTP
first_notification 3
last_notification 5
contact_groups nt-admins,managers
}
No seu caso, você não quer notificar as pessoas, mas invocar um script. Para isso, você precisará definir um novo grupo de contatos que contenha um membro, cujo membro tem service_notification_commmand
de (por exemplo) /usr/local/bin/my-webserver-handling-script
.
Se você não quiser que o script seja chamado repetidamente, será preciso ajustar first_notification
e last_notification
acima para que essa escalação específica seja aplicada apenas uma vez.
Eu também o aconselho a fazer isso. Eu pessoalmente não sou a favor de sistemas de notificação que também se tornam sistemas de manipulação de incidentes; Eu acho que eles deveriam deixar um ser humano saber que algo não está funcionando direito, e deixar o ser humano lidar com isso, e aqui está o porquê: por definição, o NAGIOS só alerta as pessoas quando coisas não estão indo bem. Se você for automatizar o manuseio disso, você precisa estar extremamente seguro de que eles falharam exatamente da maneira correta. Se, por exemplo, você tiver esse script de ciclo de energia no servidor da Web, é melhor ter certeza de que todas as dependências de host estão configuradas corretamente para que a falha de um roteador intermediário também não cause WebServer para começar a ser reinicializado, causando corrupção do sistema de arquivos que você tem que lidar depois de consertar o roteador.