Comandos remotos via agente Zabbix – Aécio Pires e Willeson Souza

Transcrição

Comandos remotos via agente Zabbix – Aécio Pires e Willeson Souza
Comandos remotos via
agente Zabbix
Aécio Pires e Willeson Souza
JOÃO PESSOA-PB
OUT/2013
1
Histórico de Atualizações
Data
Versão
Responsável
22 out 2013
1.0
Aécio Pires e
Willeson Souza
Alterações
Versão inicial
Licença de Uso
Este trabalho está licenciado sob uma Licença Creative Commons AtribuiçãoUso Não-Comercial 2.5 Brasil. Para ver uma cópia desta licença, visite
http://creativecommons.org/licenses/by-nc/2.5/br/ ou envie uma carta para
Creative Commons, 171 Second Street, Suite 300, San Francisco, California
94105, USA.
2
Sumário
1- Introdução.................................................................................................. 4
2- Configurando o agente Zabbix...................................................................5
3- Configurando o sudo no host GNU/Linux cliente .......................................8
4- Configurando a action para reiniciar o Apache 2........................................8
5- Testando a Ação....................................................................................... 12
3
Comandos remotos via agente Zabbix
1 - Introdução
O objetivo deste tutorial é executar comandos remotos via agente
Zabbix. Com comandos remotos, você pode definir que um determinado
comando pré-definido seja automaticamente executado no host monitorado
quando for atendida alguma condição. Assim, os comandos remotos são um
mecanismo para monitoramento pró-ativo inteligente.
Nos usos mais óbvios deste recurso, você pode tentar reiniciar
automaticamente alguns serviços (servidor web, middleware, CRM) ou usar o
comando IPMI 'reboot' para reiniciar algum servidor remoto, se ele não
responder as requisições.
Atenção:
Comandos remotos, na versão 2.0.9, não são suportados em proxies Zabbix.
Então é necessária uma conexão direta entre o servidor Zabbix e o agente.
Neste tutorial será mostrado como reiniciar o Apache
automaticamente em um host com Debian 7.0 monitorado por um
servidor Zabbix 2.0.9. A partir deste caso de uso, você pode pegar a
ideia geral e adaptar de acordo com a sua necessidade.
O ambiente de testes é mostrado na Figura 1:
Figura 1: Ambiente de testes.
4
2 - Configurando o agente Zabbix
Os comandos remotos são executados no agente Zabbix e podem ser
scripts
personalizados.
No
arquivo
de
configuração
/usr/local/etc/zabbix_agentd.conf, certifique-se de que o parâmetro
EnableRemoteCommands esteja
descomentado.
definido com o valor 1 e
Antes:
# EnableRemoteCommands=0
# LogRemoteCommands=0
Depois:
EnableRemoteCommands=1
LogRemoteCommands=1
Depois disso reinicie o daemon do agente Zabbix.
$ sudo /etc/init.d/zabbix-agentd stop
$ sudo /etc/init.d/zabbix-agentd start
Atenção:
A localização do arquivo zabbix_agentd.conf e o comando para reiniciar o
agente Zabbix varia de acordo com os procedimentos de instalação do Zabbix
em cada distro GNU/Linux.
Na instalação do agente Zabbix, foi configurado um item e uma
trigger específica para monitorar o Apache2. Você pode ver como o
item e a trigger foram criadas nas Figuras 2 e 3.
5
Figura 2: Item para monitorar o funcionamento do Apache2.
6
Figura 3: Trigger para monitorar o funcionamento do Apache2.
A chave usada no item mostrado na Figura 2 foi obtido na
página
https://www.zabbix.com/documentation/2.0/manual/config/items/itemtypes/
zabbix_agent conforme mostra a Figura 4.
Figura 4: Informações sobre o uso da chave (key) net.tcp.service.
Segundo a documentação, quando for obtido um valor igual a 1
para a chave net.tcp.service significa que o serviço está ativo e
recebendo as requisições. Quando for obtido um valor igual a 0,
significa que o serviço está inativo.
A execução do comando remoto para reiniciar o Apache será
baseado nos valores coletados para este item e trigger. Então, você
pode criar com os mesmos parâmetros para testar o seu ambiente.
7
Vale citar que debian7 é o nome do host cliente usado neste teste.
Você deve mudar o nome do host cliente de acordo com o seu
ambiente
3 - Configurando o sudo no host GNU/Linux cliente
Digite o comando visudo, ele abrirá o arquivo /etc/sudoers.
No final desse arquivo, adicione a linha abaixo para dar a permissão
ao usuário zabbix de reiniciar o Apache sem solicitar senha.
# visudo
Linha a ser adicionada ao arquivo.
zabbix ALL=(ALL) NOPASSWD: /etc/init.d/apache2 restart
Figura 5: Configurando a permissão para o usuário Zabbix do equipamento
cliente executar um comando sem pedir senha do sudo.
4 - Configurando a action para reiniciar o Apache 2
Acesse o menu Configuração (Configuration) > Ações
(Actions). Clique no botão Criar Ação (Create Action).
Conforme a Figura 6, preencha os campos da aba Ação
(Action).
8
Figura 6: Preenchendo a aba Ações.
Nome (Name): {HOSTNAME} DAEMON APACHE OFF
Assunto padrão (Default subject): {TRIGGER.STATUS}:
{TRIGGER.NAME}
Mensagem padrão (Default message): {TRIGGER.NAME}:
{TRIGGER.STATUS} Last value: {ITEM.LASTVALUE} Por favor verifique
o serviço.
Conforme a Figura 7, preencha os campos da aba Condições
(Condictions).
9
Figura 7: Definindo as condições.
Tipo de cálculo (Type of calculation): E/OU (AND/OR)
Condições (Conditions): (A) Status de manutenção não em
“manutenção”
(Maintenance status not in "maintenance")
(B)
Valor da trigger = “INCIDENTE” (Trigger value = "PROBLEM")
Nova condição (New condition): Escolha a opção trigger referente
ao monitoramento do apache2. Neste caso é a trigger “O Apache está
ativo?” do host debian7. Clique em Adicionar (Add).
Conforme a Figura 8, preencha os campos da aba Ações
(Actions). Clique no botão Nova (New).
10
Figura 8: Definindo as ações a serem executadas.
Tipo de Operação (Operation type): selecione comando remoto
(remote command).
Lista alvo (Target list): selecione Host e escolha o host cliente.
Depois clique em Adicionar (Add).
Tipo (Type): script personalizado (custom script)
Executar em (Execute on): Agente Zabbix (zabbix agent)
Comandos (Commands): sudo /etc/init.d/apache2 restart. N
Depois clique em Adicionar (Add). Em seguida, clique no botão
Salvar (Save).
11
Nesse caso o Apache será reiniciado conforme mencionado
acima.
5 - Testando a Ação
Agora teste o funcionamento da ação. Acesse o host cliente e
pare a execução do Apache.
$ sudo /etc/init.d/apache2 stop
Agora veja no dashboard do Zabbix a trigger sedo acionada.
Figura 9: Dashboard alertando que o Apache parou de ser executado.
Verifique o log do zabbix agente em /tmp/zabbix_agentd.log
do host cliente para ver se o agente Zabbix irá mostrar o comando
remoto sendo executado.
12
Figura 10: Log do agente Zabbix mostrando que o Apache será reiniciado.
Após ter verificado se o Zabbix iniciou o Apache volte ao
dashboard e veja se as triggers não é mais acionada.
Figura 11: Dashboard alertando que o Apache voltou a funcionar.
Se tudo deu certo, no dashboard não irá aparecer mais
mensagem de que o Apache está inoperante.
Considerações finais
Neste tutorial foi mostrada a execução de comandos remotos no
Zabbix 2.0.9 no Debian 7.
No site da comunidade Zabbix Brasil http://zabbixbrasil.org/?
page_id=7, mais especificamente na página, você pode encontrar
outros tutoriais que mostram a instalação dos componentes Zabbix
13
Agent e Zabbix Proxy, além de mostrar como usar a interface Web do
Zabbix para monitorar alguns tipos de equipamentos.
Abraço e que Deus o(a) abençoe. Leia o Salmo
55:22. Jesus é bom, te ama e quer salvar tua
alma. :-)
Referências
Manual do Zabbix 2.0. Disponível em:
https://www.zabbix.com/documentation/2.0/manual/config/notification
s/action/operation/remote_command Acessado em: 22 de outubro de
2013.
[ZABBIX REQUIREMENTS] Zabbix Requirements. Disponível em:
http://www.zabbix.com/documentation/2.0/manual/installation/require
ments
Acessado em: Acessado em: 22 de outubro de 2013.
14

Documentos relacionados

Monitorando a Temperatura do HD em Servidores Windows

Monitorando a Temperatura do HD em Servidores Windows Copiar os executáveis head.exe e DiskTemp.exe para um diretório qualquer, por questão de organização copiei para dentro do diretório padrão do Zabbix Agent (C:\Zabbix).

Leia mais

Envio de SMS usando Zenvia

Envio de SMS usando Zenvia 4 - Visualizando se o SMS foi enviado com sucesso...........................................................6 5 - Adicionando o Script no Zabbix .......................................................

Leia mais

Criando um template de monitoramento no Zabbix

Criando um template de monitoramento no Zabbix Este trabalho está licenciado sob uma Licença Creative Commons Atribuição-Uso NãoComercial

Leia mais

Tutorial de instalação do Zabbix Agent 3 no Debian ou Ubuntu

Tutorial de instalação do Zabbix Agent 3 no Debian ou Ubuntu 3.2. Cadastrando o host cliente para ser monitorado pelo Zabbix Acesse a interface web do Zabbix Server. Acesse o menu Configuração (Configuration) > Hosts e, em seguida, clique no botão Criar Host...

Leia mais