Neste post será apresentado como criar ações após uma trigger alarmar.
1) Ambiente :
10.0.0.5 – zbxsrv – Zabbix Server
10.0.0.10 – lxczbx-01 – Apache Server com o agente instalado
2) Configurando o servidor do Agente :
Para que o Zabbix execute o comando ele precisa ter o bash habilitado , geralmente os usuários de serviços utilizam /sbin/nologin :
Editando o arquivo /etc/passwd :
Antes
zabbix:x:1000:1000::/home/zabbix:/sbin/nologin
Depois
zabbix:x:1000:1000::/home/zabbix:/bin/bash
Caso não seja alterado durante a criação da ação será recebido este erro :
Edite o arquivo /etc/sudoers com a linha abaixo :
zabbix ALL = NOPASSWD: /bin/systemctl restart httpd, /bin/kill
3) Criação do Item :
Será criado um item para checar se a porta 80 está aberta no SO com net.tcp.service[http,,80]
4) Criação da Trigger :
Foi criada a trigger abaixo para alarmar o Apache caso fique 1 minuto fora.
{lxczbx-01:net.tcp.service[http,,80].sum(60)}=0
5) Criação da Ação :
Vá em Configuration > Actions . selecione Triggers e clique em create action
Em Action deixe o campo name como {HOST.NAME}: Apache down, o Default subject e Default message não foi alterado mantendo os valores padrão :
Na aba Conditions configure o campo “New condition” com as opções “Trigger”, “=”, “Trigger para o Apache”
Na aba Operations Type crie uma nova condição onde Operation Type será um script e o Targe será Current Host
Em type deixe selecione Custom Scripts e Execute on deixe marcado Zabbix Agent colocando o comando abaixo no campo commands:
sudo /bin/systemctl restart httpd
6) Testes Finais :
Para os testes finais iremos parar o serviço :
/sbin/sysctl stop httpd
O Apache irá alarmar no Dashboard :
Será executada uma ação para o Alarme :
No log do agente podemos ver o registro da ação :
Referência
https://www.zabbix.com/documentation/3.0/manual/config/notifications/action/operation/remote_command