- Publicado em
Integrando o Zabbix ao Z-API: Recebendo avisos pelo Whatsapp
- Autores
- Nome
- Felipe Padilha
Índice
Introdução
Receber alertas em tempo real é essencial para identificar problemas rapidamente e evitar que falhas impactem a operação. O zabbix, com sua capacidade de monitorar servidores, redes e aplicações, fornece alertas imediatos ao detectar problemas, possibilitando que as equipes ajam para corrigí-los.
No entando, a eficácia desses alertas dependem de como eles chegam até os responsáveis. É aqui que a integração com o Z-API faz a diferença: ela permite que as notificações do Zabbix sejam enviadas diretamente pelo Whatsapp, garantindo que as equipes sejam avisadas instantaneamente, mesmo fora do ambiente de trabalho. Essa agilidade reduz o tempo de resposta, aumenta a disponibilidade dos serviços e protege a continuidade dos negócios.
Receber alertas rápidos e precisos não é apenas uma conveniência - é uma necessidade para manter a estabilidade e a segurança das operações.
Link para o tutorial em vídeo
Z-API
A Z-API é uma plataforma que permite integrar sistemas e aplicações diretamente ao WhatsApp, facilitando a automação de mensagens e notificações. Com uma API simples, ela possibilita que ferramentas de monitoramento, como o Zabbix, enviem alertas instantâneos para equipes de suporte, agiliznado a resposta a incidentes e reduzindo o tempo de inatividade.
E antes de mais nada quero deixar claro que não estou sendo patrocinado pela plataforma, sou apenas um usuário, com mais de um ano de uso, satisfeito com o serviço prestado por ela.
A Z-API tem um custo mensal de R$ 99,90 mas é possível realizar o teste durante dois dias, tempo mais que suficiente para validar o funcionamento do Zabbix no seu ambiente.
Só um adendo, como não é uma integração oficial, utilizando a API da Meta, existe a possibilidad ede perda do número utilizado caso seja identificado ações de bot ou spam. Existem diversos artigos na internet, inclusive na documentação da própria Z-API dando discas de como evitar a perda do número.
Configuração de uma instância


Depois de criada, clique na instância para abrir a página de informações dela, você precisará salvar as informações de:
- ID da Instância: a partir de agora, essa variável será referência como
$ID_INSTANCIA
ao longo do artigo. - Token da Instância: a partir de agora, essa variável será referênciada como
$TOKEN_INSTANCIA
ao longo do artigo.
Não esqueça de conectar seu número ao WhatsApp Web da Z-API, para conseguir enviar as mensagens.

Gere também o Token de Segurança, opção que está logo abaixo dos endreços IP. O mesmo será referenciado como
$TOKEN_SEGURANCA
ao longo do artigo.
Descobrindo o número dos destinatários
Quando formos enviar as mensagens par aum número, vamos usar o formato DDIDDDNUMERO
(sem o nono digíto), por exemplo: 551199999999.
Quando formos enviar mensagens para um grupo, será necessário descobrir o ID do grupo. Conseguimos fazer isso diretamente pelo terminal, rodando o comando abaixo:
# Ambiente Linux
curl -X GET https://api.z-
api.io/instances/$ID_INSTANCIA/token/$TOKEN_INSTANCIA/chats \
-H "Content-Type: application/json" \
-H "Client-Token: $TOKEN_SEGURANCA"
# Ambiente Windows/PowerShell
Invoke-RestMethod -Uri “https://api.z-api.io/instances/$ID_INSTANCIA/token/$TOKEN_INSTANCIA/chats” -Headers @{“Content-Type” = “application/json”; “Client-Token” = “$TOKEN_SEGURANCA” } -Method Get
Não esqueça de substituir as variáveis pelos valores do seu ambiente.
Na saída do comando, procure pelos valores da chave phone dos grupos.
Configuração no Zabbix
Se sua versão do Zabbix for 7 ou superior, você pode importar diretamente a mídia do meu repositório público de Zabbix e apenas configurar com os valores do seu ambiente.
Caso esteja usando um Zabbix inferior a versão 7, será obrigatório a configuração manual.
Configurando a Mídia

Clique no botão Criar tipo de Mídia e preencha com as seguintes informações:
- Nome: Z-API
- Tipo: Webhook
- Parâmetros:
- message:
{ALERT.MESSAGE}
- phone:
{ALERT.SENDTO}
- id: o ID da sua instância Z-API
- i_token: o Token da sua instância Z-API
- s_token: o Token de segurança da sua instância
- endpoint: send-text
- message:
E adicione o Script
abaixo:
try {
Zabbix.Log(4, 'Z-API Webhook script started')
var result = {
tags: {
endpoint: 'Z-API Webhook',
},
},
params = JSON.parse(value),
url =
'https://api.z-api.io/instances/' +
params.id +
'/token/' +
params.i_token +
'/' +
params.endpoint,
req = new HttpRequest(),
payload = {},
resp
Zabbix.Log(4, 'Z-API Webhook URL: ' + url)
req.addHeader('Content-Type: application/json')
req.addHeader('Client-Token: ' + params.s_token)
payload.phone = params.phone
payload.message = params.message
Zabbix.Log(4, 'Z-API Webhook Payload: ' + JSON.stringify(payload))
resp = req.post(url, JSON.stringify(payload))
Zabbix.Log(4, 'Z-API Webhook HTTP Status: ' + req.getStatus())
Zabbix.Log(4, 'Z-API Webhook Response: ' + resp)
if (req.getStatus() != 200) {
throw 'Response code: ' + req.getStatus()
}
if (resp) {
resp = JSON.parse(resp)
} else {
throw 'Empty response from server'
}
} catch (error) {
Zabbix.Log(4, 'Z-API Webhook issue creation failed json: ' + JSON.stringify(payload))
Zabbix.Log(4, 'Z-API Webhook issue creation failed: ' + error)
result = {}
}
return JSON.stringify(result)

Por fim na aba Modelo de Mensagem, adicione um modelo para incidentes e outro para recuperação:
- Incidente
Problema: {EVENT.NAME}
Problema iniciou as {EVENT.TIME} em {EVENT.DATE}
Título: {EVENT.NAME}
Host: {HOST.NAME}
Severidade: {EVENT.SEVERITY}
Dados extras: {EVENT.OPDATA}
ID: {EVENT.ID}
- Recuperação
Resolvido: {EVENT.NAME}
Problema resolvido as {EVENT.RECOVERY.TIME} - {EVENT.RECOVERY.DATE}
Duração total: {EVENT.DURATION}
Host: {HOST.NAME}
Severidade: {EVENT.SEVERITY}
ID: {EVENT.ID}

Configurando o destinatário

Admin
, mas pode ser qualquer outro, e selecionar a aba Mídia
e clicar para adicionar uma nova mídia: 
Ai basta alterar as seguintes informações:
- Tipo: Z-API
- Enviar para: o número ou o ID do grupo do Whatsapp
Clique no botão Adicionar do modal da mídia e no botão de Atualizar da aba de mídia.
Configurando o alerta





Adicione a nova ação e a configuração está pronta! Os próximos incidents que casarem com a condição da ação já serão enviados pelo Z-API!