Zabbix es una plataforma de monitoreo de código abierto que permite monitorear toda la infraestructura de TI, OT e IoT, así como las API, bases de datos y más.
Para ampliar esta capacidad, Zabbix ofrece una potente API RESTful que permite la automatización, la generación de informes avanzados sin necesidad de SQL y la integración con otros sistemas, como herramientas ITSM.
En este artículo, exploraremos cómo usar la API de Zabbix para el monitoreo avanzado, incluyendo sistemas ITSM y alertas.
Por que usar la API de Zabbix?
La API de Zabbix ofrece un abanico de posibilidades que mejoran la monitorización empresarial, como:
- Automatizar tareas repetitivas, como el registro de hosts;
- Generar informes personalizados;
- Crear notificaciones más precisas;
- Integrarse con sistemas ITSM como ServiceNow, Jira, GLPI y otros.
Con la API, puede crear, eliminar, desactivar y administrar hosts, elementos, activadores y otros objetos, ahorrando tiempo en operaciones recurrentes y a gran escala. También puede obtener los valores más recientes de los elementos, consultar eventos y estados recientes, y crear y administrar tareas de mantenimiento, grupos de hosts, usuarios, acuerdos de nivel de servicio (SLA), servicios, paneles, mapas y más.
La API está basada en HTTP y utiliza el protocolo JSON-RPC 2.0, como se describe en la documentación oficial.
La biblioteca oficial de Python, zabbix_utils, se lanzó recientemente y está disponible en GitHub. Mantenida por el equipo de Zabbix, garantiza actualizaciones constantes y una mayor fiabilidad.
Automatizar la creación de hosts con zabbix_utils
La automatización del registro de hosts en Zabbix garantiza agilidad, estandarización y escalabilidad en la monitorización.
Imagine un escenario con una lista de servidores en un archivo hosts.txt, que contiene direcciones IP, nombres y dominios, como en el siguiente ejemplo:
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
Con solo unas pocas líneas de código Python, como se muestra a continuación, puede importar automáticamente todos estos hosts a Zabbix, asignándolos a un grupo específico y configurando correctamente sus interfaces de red.
#!/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))
Este enfoque le permite:
- Ahorrar tiempo;
- Reducir el error humano;
- Liberar al equipo de infraestructura para tareas más estratégicas.
Además, la biblioteca zabbix_utils simplifica la comunicación con la API, haciendo que el código sea más limpio y fácil de mantener.
Integración de API de Zabbix y herramientas ITSM
Zabbix ofrece integraciones nativas mediante webhooks con diversas herramientas de ITSM, como ServiceNow, GLPI, Jira, OTRS y otras. Estas integraciones facilitan la comunicación entre la monitorización y los sistemas internos o de socios.
Además, los webhooks se pueden personalizar para satisfacer las necesidades específicas de la empresa o el departamento de TI.
Ejemplo de integración: Zabbix y GLPI
Si su herramienta ITSM es GLPI, la documentación oficial de Zabbix proporciona una guía completa paso a paso para la integración.
Etapas principales:
- Configura la macro {$ZABBIX.URL} en «Administración» > «Macros». Se usará para insertar enlaces de eventos en los incidentes creados en GLPI.

Tener:
- glpi_app_token: Token do aplicativo (opcional);
- glpi_url: URL de GLPI;
- glpi_user_token: Token de usuario configurado en GLPI.
Incluya también los siguientes datos:
- glpi_app_token: Token de aplicativo (opcional);
- glpi_url: URL do GLPI;
- glpi_user_token: Token de usuario configurado en GLPI.
Con estos pasos se completará la integración entre Zabbix y GLPI.
Conclusión sobre el uso de la API de Zabbix
Usar la API de Zabbix para integrarse con otros sistemas es una decisión estratégica que potencia el valor de la plataforma de monitorización. Con ella, puede automatizar procesos, reducir errores manuales, ganar agilidad operativa y crear soluciones personalizadas que se adapten perfectamente a las necesidades de su organización.
Además, la integración con herramientas ITSM, bases de datos, sistemas de notificación y otras aplicaciones le permite centralizar la información, mejorar la visibilidad de incidentes y agilizar la toma de decisiones.
La API de Zabbix convierte a Zabbix en un auténtico centro de automatización e inteligencia operativa. En un entorno cada vez más dinámico e interconectado, esta flexibilidad es esencial para garantizar la eficiencia, la escalabilidad y la innovación continua.