# Zabbix ### 📌 Sobre o Projeto Um compose personalizado do zabbix para instalar pacotes sem a necessidade de um re-build, neste arquivo, utilizo uma versão mais leve do sistema, instalo o mtr, adicionado sistema de alertar **walert** para envio de alertas via whatsapp. --- ### 🚀 Como Usar - Acesse seu terminal; - Clone o repositorio: ```shell sudo git clone https://git.instantti.com.br/instant/zabbix.git ``` - acesse o diretorio: ```shell cd zabbix/ ``` - Execute o comando: ```shell sudo chmod +x data/alertscripts/walert && \ docker-compose up -d ``` #### Via Portainer - 1° Criar um arquivo chamado **zabbix-init.sh** com o conteudo abaixo: ```shell #!/bin/sh echo "[INIT] Instalando mtr no container..." apk update && apk add --no-cache mtr echo "[INIT] Executando entrypoint original..." # Usa exec sem su, preservando variáveis de ambiente como DB_SERVER_HOST exec /usr/bin/docker-entrypoint.sh /usr/sbin/zabbix_server --foreground -c /etc/zabbix/zabbix_server.conf ``` - 2° Ajuste as permissões do arquivo criado com o comando: ```shell chmod +x zabbix-init.sh && chmod 755 zabbix-init.sh ``` - 3° Crie o arquivo com o gatilho de envio de mensagens com os comandos abaixo: ```shell mkdir -p -v data/alertscripts && touch data/alertscripts/walert && chmod +x data/alertscripts/walert ``` - 4° Copie todo conteudo de **data/alertscripts/walert** do repositorio, para dentro do arquivo **walert** que foi criado no passo anterior: ```shell #!/bin/bash # Baseado em BEEZAP - Bee Solutions. URL="http://zbx-walert:4000/api/send" PHONE="$1" TITULO="$2" MESSAGE="$TITULO$3" wget -q -O- --post-data "{\"number\": \"${PHONE}\", \"message\": \"${MESSAGE}\"}" "$URL" --header "content-type: application/json" ``` - 4° Dentro do portainer, crie uma nova stack com o conteudo de **docker-compose.yml** - 5° Aguarde todos os containers da stack iniciarem corretamente. - 6° Abra pagina do zabbix no seu browser: **http://seuip:14201** - 7° Ja dentro do zabbix, importe o **walert.xml** em Alertas > Tipos de midias. - 7,5° Abra em outra aba do seu browser: **http://seuip:14201/status** e scaneie o QrCode pra logar no whatsapp - 8° Crie uma nova ação de trigger em: **Alertas** > **Ações** > **Ações de Trigger** * Nome: Notificacoes Walert - Aba: **Ações**: * Adicione uma nova condição: - Tipo: **Incidente não suprimido** - Operador: **Não**. - Aba: **Operações**: * Adicione uma nova condição em (**Operação**): - **Enviar aos usuarios**: Admin - Enviar aos tipos de midia (selecione): **Walert**. * Repita o processo acima para condição (**Operação Recuperação**) - 9° Va em Usuarios > usuarios > Admin (selecione) > Midia * Adicione uma nova midia: - Tipo: **Walert** - Enviar para: 55 - Usar severidade: **Atenção**, **Média**, **Alta**, **Desastre** - Adicionar * De um atualizar. - 10° Teste, Adicione um host ficticio agente snmp e template: **icmp-ping** pra ser mais rapido. -- >[!TIP] > - Garanta que todas as pastas / volumes estejam criados e com as corretas permissões configuradas. > - **Nos passos 8° e 9° As opções podem e devem ser customizadas para o seu cenário.** > - **No passo 7,5° atente-se porque o codigo é invalidado a cada 1minuto, caso não funcione, reinicie a stack e pule direto pra teste passo.** ## 👤 Autores - William Grando. - Agradecimento a Fernando Almondes (Bee Solutions), serviu como base para este projeto.