Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Monitoramento e Resposta Autônoma em Rede Hoteleira com Zabbix e Webhooks

Você terá um ambiente Zabbix monitorando um servidor Linux simulado de hotelaria, com alerta automático e resposta via webhook em Python. Todo o fluxo será testado em até 2 horas.

Monitoramento e automação de rede hoteleira com Zabbix do zero à resposta autônoma
Ligado ao treinamento Monitoramento e automação de rede hoteleira com Zabbix do zero à resposta autônoma
ULC-LAB-HOTE-0004 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
4
Versões da documentação consultada
Zabbix Server 6.0 LTS · Zabbix Agent 6.0 LTS · Python 3.10 · Apache2 2.4.x
Objetivo

Este laboratório ensina a implantar o Zabbix Server em uma VM, monitorar um servidor Linux (hospedado em outra VM), configurar um trigger para detecção de falha de serviço e automatizar a resposta com webhook acionando um script Python. O foco é mostrar como construir um ciclo fechado de monitoramento e automação, típico de ambientes hoteleiros que exigem alta disponibilidade e resposta rápida.

Topologia

Duas VMs em rede privada: uma com Zabbix Server (192.168.56.10), outra com Ubuntu simulando um servidor de aplicação hoteleira (192.168.56.20). O Zabbix Agent roda na VM do servidor monitorado. Um serviço fictício (apache2) será monitorado. O Zabbix Server dispara um webhook para um script Python rodando localmente, que tenta reiniciar o serviço.

┌──────────────┐       ┌──────────────┐
│ Zabbix      │       │ Servidor     │
│ Server      │<----->│ Ubuntu       │
│ 192.168.56.10│      │ 192.168.56.20│
│ + Frontend  │       │ + Zabbix     │
│             │       │   Agent      │
└─────┬────────┘       └─────┬────────┘
      │ Webhook HTTP         │
      └─────────────> Script Python

Equipamentos e software

ItemRequisito, licença ou versão
VM Zabbix Server2 vCPU, 2GB RAM, 1 interface de rede, Debian 11 ou Ubuntu 22.04
VM Servidor Ubuntu1 vCPU, 1GB RAM, 1 interface de rede, Ubuntu 22.04
Zabbix ServerGPLv2 · 6.0 LTS
Zabbix AgentGPLv2 · 6.0 LTS
PythonPSF License · 3.10
Apache2Apache License 2.0 · 2.4.x

Roteiro

  1. Preparar as VMs e a rede privada

    Crie duas VMs (Zabbix Server e Servidor Ubuntu) em sua plataforma preferida. Configure ambas na mesma rede privada (exemplo: 192.168.56.0/24).

    O que você deve ver: Ambas as VMs se pingam mutuamente.

  2. Instalar o Zabbix Server e Frontend

    No Zabbix Server, siga a documentação oficial para instalar o Zabbix Server, frontend web e banco de dados.

    Consulte: https://www.zabbix.com/documentation/current/manual/installation/install

    O que você deve ver: A interface web do Zabbix acessível em http://192.168.56.10/zabbix

  3. Instalar o Zabbix Agent no Servidor Ubuntu

    No servidor Ubuntu, instale o Zabbix Agent para permitir o monitoramento remoto.

    sudo apt update
    sudo apt install zabbix-agent

    O que você deve ver: Serviço zabbix-agent ativo e escutando na porta 10050.

  4. Configurar o Zabbix Agent

    Edite o arquivo de configuração do agente para aceitar conexões do Zabbix Server.

    sudo nano /etc/zabbix/zabbix_agentd.conf
    # Altere ou adicione:
    Server=192.168.56.10
    ServerActive=192.168.56.10
    Hostname=servidor-hotel
    sudo systemctl restart zabbix-agent

    O que você deve ver: O agente aceita conexões do Zabbix Server.

  5. Adicionar o host no Zabbix Frontend

    No frontend do Zabbix, adicione o host 'servidor-hotel' com IP 192.168.56.20, usando o template 'Linux by Zabbix agent'.

    O que você deve ver: O host aparece como disponível no frontend.

  6. Instalar e iniciar o Apache2 no Servidor Ubuntu

    Instale o Apache2 para simular um serviço crítico da rede hoteleira.

    sudo apt install apache2
    sudo systemctl start apache2

    O que você deve ver: Apache2 rodando na porta 80.

  7. Criar item de monitoramento do Apache2 no Zabbix

    No frontend do Zabbix, crie um item do tipo 'Zabbix agent' no host 'servidor-hotel', chave: proc.num[apache2], tipo: Numeric (unsigned), intervalo: 30s.

    O que você deve ver: O item coleta o número de processos apache2 periodicamente.

  8. Criar trigger para detectar falha do Apache2

    No Zabbix, crie uma trigger no host 'servidor-hotel' para alertar se proc.num[apache2] < 1.

    O que você deve ver: Trigger dispara se o Apache2 parar.

  9. Preparar o script Python de resposta autônoma

    No Zabbix Server, crie um script Python simples que recebe POST HTTP e executa um comando SSH para reiniciar o Apache2 no servidor monitorado.

    nano webhook_resposta.py
    
    import http.server
    import subprocess
    
    class Handler(http.server.BaseHTTPRequestHandler):
        def do_POST(self):
            subprocess.run(['ssh', 'ubuntu@192.168.56.20', 'sudo systemctl restart apache2'])
            self.send_response(200)
            self.end_headers()
    
    if __name__ == '__main__':
        from http.server import HTTPServer
        server = HTTPServer(('0.0.0.0', 9000), Handler)
        server.serve_forever()

    O que você deve ver: Script escutando na porta 9000, pronto para receber webhooks.

  10. Configurar ação de webhook no Zabbix

    No frontend do Zabbix, crie um novo Media Type do tipo 'Webhook'. Configure a URL para http://192.168.56.10:9000/. Associe a ação à trigger do Apache2.

    O que você deve ver: Quando a trigger dispara, o Zabbix envia um POST para o script Python.

  11. Testar o ciclo: simular falha do Apache2

    No servidor Ubuntu, pare o Apache2 manualmente para simular falha.

    sudo systemctl stop apache2

    O que você deve ver: Trigger dispara, webhook é enviado, script Python executa o restart via SSH.

  12. Verificar logs e status após resposta autônoma

    Verifique se o Apache2 foi reiniciado e se a trigger do Zabbix volta ao estado OK.

    sudo systemctl status apache2

    O que você deve ver: Apache2 rodando novamente, trigger restaurada.

Como saber que funcionou

TesteComandoCritério
Verificar comunicação entre Zabbix Server e agentezabbix_get -s 192.168.56.20 -k 'system.uptime'Valor de uptime retornado sem erro.
Verificar coleta do item proc.num[apache2]Gráfico ou valor atualizado no frontend do Zabbix.
Testar disparo do webhookPare o Apache2 e observe o log do script Python.POST recebido e comando SSH executado.
Confirmar restauração automática do serviçosudo systemctl status apache2Apache2 ativo após o webhook.

Troubleshooting

SintomaCausa provávelCorreção
Host aparece como 'não disponível' no ZabbixFirewall bloqueando porta 10050 ou configuração incorreta do agente.Verifique /etc/zabbix/zabbix_agentd.conf e firewall.
Webhook não aciona script PythonMedia Type ou URL configurada incorretamente.Revise configuração do Media Type e logs do script.
SSH pede senha ao rodar script PythonChave SSH não configurada para acesso sem senha.Configure ssh-copy-id para o usuário correto.
Trigger não retorna ao estado OK após respostaServiço Apache2 não reiniciou corretamente.Verifique logs do Apache2 e permissões do usuário SSH.

Segurança e hardening

  • Utilize autenticação por chave SSH restrita para o script Python.
  • Limite o acesso ao script Python (firewall, bind em localhost se possível).
  • Não rode scripts de automação como root; use permissões mínimas necessárias.
  • Mantenha as VMs atualizadas e restrinja portas expostas.

Checklist final

Referências

  1. RFC 3416 - SNMP Protocol Operations · Tools.ietf (tools.ietf.org)
  2. Python 3 - http.server · Python Software Foundation (docs.python.org)
Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
2 oficiais · 1 de normas ou órgãos
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.