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:
sudo git clone https://git.instantti.com.br/instant/zabbix.git
- acesse o diretorio:
cd zabbix/
- Execute o comando:
sudo chmod +x data/alertscripts/walert && \
docker-compose up -d
Via Portainer
- 1° Criar um arquivo chamado zabbix-init.sh com o conteudo abaixo:
#!/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:
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:
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:
#!/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
- Aba: Operações:
- Adicione uma nova condição em (Operação):
- Enviar aos usuarios: Admin
- Enviar aos tipos de midia (selecione): Walert.
- Adicione uma nova condição em (Operação):
-
9° Va em Usuarios > usuarios > Admin (selecione) > Midia
- Adicione uma nova midia:
- Tipo: Walert
- Enviar para: 55<seu_numero_whastapp>
- Usar severidade: Atenção, Média, Alta, Desastre
- Adicionar
- Clique no botão atualizar no zabbix.
- Adicione uma nova midia:
-
10° Teste, Adicione um host ficticio agente snmp e template: icmp-ping pra ser mais rapido.
--
Se todos os passos acima foram executados corretamente, quando algum incidente ocorrer voce deve receber mensagens similares ao exemplo abaixo:
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.
Note
- Caso você deseja, pode criar grupos no whatsapp contendo todos os envolvidos e enviar as mensagens diretamente para o grupo, o que existe pequenas alterações na configuração, conforme citado abaixo:
-
Você deve obter qual o ID do grupo que será utilizado, pode fazer isso abrindo seu browser e acessando: http://seuip:14201/api/getGroups será exibido algo similar a:
-
Uma vez com o código do grupo que deseja enviar mensagem, precisa fazer alguns ajustes no zabbix.
-
1° Você precisa criar um usuario no zabbix para este grupo.
-
2° Adicionar na midia desse usuario o código do grupo de whatsapp que deseja utilizar.
-
3° Crie um grupo de usuario contendo este usuario como membro.
-
4° Crie um grupo de hosts que vai enviar mensagens pra esse grupo e atribua o grupo de usuarios
👤 Autores
- William Grando.
- Agradecimento a Fernando Almondes (Bee Solutions), serviu como base para este projeto.




