O Zabbix é uma plataforma de monitoramento open source amplamente adotada em todo o mundo, que permite monitorar toda a infraestrutura de TI, OT, IoT, além de APIs, bancos de dados e muito mais.
Para ampliar essa capacidade, o Zabbix oferece uma poderosa API RESTful, que possibilita automações, geração de relatórios avançados sem a necessidade de SQL, e integrações com outros sistemas, como ferramentas de ITSM, por exemplo.
Neste artigo, vamos explorar como utilizar a API do Zabbix para monitoramento avançado, incluindo sistemas de ITSM e alertas.
Por que usar a API do Zabbix?
A API do Zabbix abre um leque de possibilidades que elevam o monitoramento das empresas, como:
- Automatizar tarefas repetitivas, como o cadastro de hosts;
- Gerar relatórios personalizados;
- Criar notificações mais refinadas;
- Integrar com sistemas ITSM como ServiceNow, Jira, GLPI, entre outros.
A partir da API, é possível criar, excluir, desativar e gerenciar hosts, itens, triggers e outros objetos, economizando tempo em operações recorrentes e em larga escala, obter os últimos valores de itens, verificar eventos recentes e status, e criar e gerenciar manutenções, grupos de hosts, usuários, SLAs, serviços, dashboards, mapas etc.
A API é baseada em HTTP e utiliza o protocolo JSON-RPC 2.0, conforme descrito na documentação oficial.
Recentemente, foi lançada a biblioteca oficial para Python chamada zabbix_utils, disponível no GitHub. Mantida pela equipe do Zabbix, ela garante atualizações constantes e maior confiabilidade.
Automatizando a criação de hosts com zabbix_utils
Automatizar o cadastro de hosts no Zabbix garante agilidade, padronização e escalabilidade no monitoramento.
Imagine um cenário em que você possui uma lista de servidores em um arquivo hosts.txt, contendo IPs, nomes e domínios, como no exemplo abaixo:
192.168.1.10 webserver01 web01.local 192.168.1.11 webserver02 web02.local 192.168.1.12 dbserver01 db01.local 192.168.1.13 dbserver02 db02.local 192.168.1.14 appserver01 app01.local 192.168.1.15 appserver02 app02.local 192.168.1.16 backup01 192.168.1.17 proxy01 proxy.local 192.168.1.18 monitor01 192.168.1.19 devserver01 dev01.local
Com poucas linhas de código em Python, como apresentamos a seguir, é possível importar todos esses hosts automaticamente para o Zabbix, atribuindo-os a um grupo específico e configurando suas interfaces de rede corretamente.
#!/usr/bin/python3
from zabbix_utils import ZabbixAPI
from datetime import datetime
# Zabbix server details
zabbix_url = " https://zabbix.local/api_jsonrpc.php”
api = ZabbixAPI(url=zabbix_url)
api.login(token="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
print("Connected to Zabbix API Version %s" % api.api_version())
# Read file
file = open('/usr/lib/zabbix/apiscripts/hosts.txt').read().splitlines()
# Create a host group
host_group = api.hostgroup.create(name="Imported hosts")
# Create hosts
for line in file:
line_list = line.split()
host_ip = line_list[0]
host_name = line_list[1]
host_dns = line_list[2] if len(line_list) > 2 else None # Check if host_dns is present
# Use host_name as dns if host_dns is missing
if host_dns:
useip = 0
else:
host_dns = host_name
useip = 0
try:
result = api.host.create(
host=host_name,
groups=[{"groupid": host_group['groupids'][0]}],
interfaces=[{
"type": 1,
"main": 1,
"useip": useip,
"ip": host_ip,
"dns": host_dns,
"port": 10050
}]
)
except:
print('host ' + host_name + ' not created: ' + str(e))
else:
print('host ' + host_name + ' created: ' + str(result))
Essa abordagem permite:
- Economizar tempo;
- Reduzir falhas humanas;
- Liberar a equipe de infraestrutura para tarefas mais estratégicas.
Além disso, a biblioteca zabbix_utils simplifica a comunicação com a API, tornando o código mais limpo e fácil de manter
Integração Zabbix API e ferramentas de ITSM
O Zabbix oferece integrações nativas via webhooks com diversas ferramentas ITSM, como ServiceNow, GLPI, Jira, OTRS, entre outras. Essas integrações facilitam a comunicação entre o monitoramento e os sistemas internos ou de parceiros.
Ainda, os webhooks podem ser customizados para atender às necessidades específicas da empresa ou setor de TI.
Exemplo de integração: Zabbix e GLPI
Se a ferramenta de ITSM for o GLPI, a documentação oficial do Zabbix fornece um passo a passo completo para a integração.
Etapas principais:
- Configure a macro {$ZABBIX.URL} em “Administração” > “Macros”. Ela será usada para inserir links de eventos nos incidentes criados no GLPI.

Tenha em mãos:
- glpi_app_token: Token do aplicativo (opcional);
- glpi_url: URL do GLPI;
- glpi_user_token: Token do usuário configurado no GLPI.
Inclua, também, os seguintes dados:
- glpi_app_token: Token do aplicativo (opcional);
- glpi_url: URL do GLPI;
- glpi_user_token: Token do usuário configurado no GLPI.
Com esses passos, a integração entre Zabbix e GLPI estará finalizada.
Conclusão sobre o uso da API Zabbix
Utilizar a API do Zabbix para integrá-lo a outros sistemas é uma decisão estratégica que amplia o valor da plataforma de monitoramento. Com ela, é possível automatizar processos, reduzir erros manuais, ganhar agilidade na operação e criar soluções personalizadas que se adaptam perfeitamente às necessidades da sua organização.
Além disso, a integração com ferramentas de ITSM, bancos de dados, sistemas de notificação e outras aplicações permite centralizar informações, melhorar a visibilidade dos incidentes e acelerar a tomada de decisões.
A API do Zabbix mas transforma o Zabbix em um verdadeiro hub de automação e inteligência operacional. Em um cenário cada vez mais dinâmico e interconectado, contar com essa flexibilidade é essencial para garantir eficiência, escalabilidade e inovação contínua.