Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

21 Extensiones

Descripción general

Aunque Zabbix ofrece una multiplicidad de funciones, siempre hay espacio para funcionalidades adicionales. Las extensiones son una forma conveniente de modificar y mejorar las capacidades de monitorización de Zabbix sin cambiar su código fuente.

Puede ampliar la funcionalidad de Zabbix utilizando opciones de extensión integradas (métricas trapper, parámetros de usuario, etc.) o utilizando o creando extensiones personalizadas (módulos cargables, plugins, etc.).

Esta sección proporciona una descripción general con referencias a todas las opciones para ampliar Zabbix.

Recopilación de datos con comandos personalizados

Métricas trapper

Las métricas trapper son métricas que aceptan datos entrantes en lugar de consultarlos. Las métricas trapper son útiles para enviar datos específicos al servidor o proxy de Zabbix, por ejemplo, datos periódicos de disponibilidad y rendimiento en el caso de scripts de usuario de larga duración. El envío de datos al servidor o proxy de Zabbix es posible utilizando la utilidad Zabbix sender o el protocolo de Zabbix sender. También es posible enviar datos al servidor de Zabbix utilizando el método API history.push.

Comprobaciones externas

Una comprobación externa es una métrica para ejecutar comprobaciones mediante la ejecución de un ejecutable, por ejemplo, un script de shell o un binario.

Las comprobaciones externas son ejecutadas por el servidor Zabbix o el proxy (cuando el equipo es monitorizado por un proxy), y no requieren que un agente se esté ejecutando en el equipo monitorizado.

Parámetros de usuario

Un parámetro de usuario es un comando definido por el usuario (asociado a una clave definida por el usuario) que, cuando se ejecuta, puede recuperar los datos que necesita del equipo donde se está ejecutando el agente Zabbix. Los parámetros de usuario son útiles para configurar métricas de agente o agente 2 que no están predefinidas en Zabbix.

Métricas system.run[] del agente Zabbix

La métrica del agente system.run[] de Zabbix es una métrica para un comando definido por el usuario (asociado con la clave predefinida system.run[], por ejemplo, system.run[myscript.sh]) que puede ejecutarse en el equipo donde se está ejecutando el agente Zabbix.

Nota: las métricas system.run[] están deshabilitadas por defecto y, si se utilizan, deben habilitarse (permitidas) y definirse en el archivo de configuración del agente Zabbix o del agente 2 (parámetro de configuración AllowKey).

Los comandos definidos por el usuario en métricas como comprobaciones externas, parámetros de usuario y métricas del agente Zabbix system.run[] se ejecutan desde el usuario del sistema operativo que se utiliza para ejecutar los componentes de Zabbix. Para ejecutar estos comandos, este usuario debe tener los permisos necesarios.

Métricas de agente HTTP

La métrica de agente HTTP es una métrica para ejecutar solicitudes de datos a través de HTTP/HTTPS. Las métricas de agente HTTP son útiles para enviar solicitudes a endpoints HTTP para recuperar datos de servicios como Elasticsearch y OpenWeatherMap, para comprobar el estado de la API de Zabbix o el estado del servidor web Apache o Nginx, etc. Las métricas de agente HTTP (con trampa habilitada) también pueden funcionar como métricas trampa.

Métricas de script

Una métrica de script es una métrica para ejecutar código JavaScript definido por el usuario que recupera datos a través de HTTP/HTTPS. Las métricas de script son útiles cuando la funcionalidad proporcionada por las métricas de agente HTTP no es suficiente. Por ejemplo, en escenarios exigentes de recopilación de datos que requieren múltiples pasos o lógica compleja, se puede configurar una métrica de script para realizar una llamada HTTP, luego procesar los datos recibidos, y luego pasar el valor transformado a una segunda llamada HTTP.

Las métricas de agente HTTP y las métricas de script son compatibles con el servidor y el proxy de Zabbix, y no requieren que un agente se esté ejecutando en el equipo monitorizado.

Extensiones avanzadas

Módulos cargables

Los módulos cargables, escritos en C, son una opción versátil y orientada al rendimiento para ampliar la funcionalidad de los componentes de Zabbix (servidor, proxy, agente) en plataformas UNIX. Un módulo cargable es básicamente una biblioteca compartida utilizada por el demonio de Zabbix y cargada al inicio. La biblioteca debe contener ciertas funciones, de modo que un proceso de Zabbix pueda detectar que el archivo es realmente un módulo que puede cargar y con el que puede trabajar.

Los módulos cargables tienen una serie de ventajas, incluyendo la capacidad de añadir nuevas métricas o implementar cualquier otra lógica (por ejemplo, la exportación de datos históricos de Zabbix), un gran rendimiento y la opción de desarrollar, utilizar y compartir la funcionalidad que proporcionan. Esto contribuye a un mantenimiento sin problemas y ayuda a ofrecer nuevas funcionalidades de forma más sencilla e independiente del núcleo de código de Zabbix.

Los módulos cargables son especialmente útiles en una configuración de monitorización compleja. Al monitorizar sistemas embebidos, tener un gran número de parámetros monitorizados o scripts pesados con lógica compleja o un largo tiempo de inicio, extensiones como parámetros de usuario, métricas del agente Zabbix system.run[] y comprobaciones externas tendrán un impacto en el rendimiento. Los módulos cargables ofrecen una forma de ampliar la funcionalidad de Zabbix sin sacrificar el rendimiento.

Plugins

Los plugins proporcionan una alternativa a los módulos cargables (escritos en C). Sin embargo, los plugins son una forma de extender únicamente el Zabbix agent 2.

Un plugin es un paquete Go que define la estructura e implementa una o varias interfaces de plugin (Exporter, Collector, Configurator, Runner, Watcher). Se admiten dos tipos de plugins de Zabbix agent 2:

Consulte la lista de plugins integrados.

Para instrucciones y tutoriales sobre cómo escribir sus propios plugins, consulte el Centro de desarrolladores.

Personalización de alertas

Webhooks

Un webhook es un tipo de medio de Zabbix que proporciona una opción para ampliar las capacidades de alerta de Zabbix a software externo como sistemas de helpdesk, chats o mensajería. De manera similar a las métricas de script, los webhooks son útiles para realizar llamadas HTTP utilizando código JavaScript personalizado, por ejemplo, para enviar notificaciones a diferentes plataformas como Microsoft Teams, Discord y Jira. También es posible devolver algunos datos (por ejemplo, sobre tickets de helpdesk creados) que luego se muestran en Zabbix.

Los webhooks existentes están disponibles en el repositorio Git de Zabbix. Para el desarrollo de webhooks personalizados, consulte la Guía de desarrollo de Webhooks.

Scripts de alerta

Un script de alerta es un tipo de medio de Zabbix que proporciona una opción para crear una forma alternativa (script) de gestionar las alertas de Zabbix. Los scripts de alerta son útiles si no está satisfecho con los tipos de medios existentes para enviar alertas en Zabbix.

Personalización de la interfaz

Temas personalizados

Es posible cambiar la apariencia visual del frontend de Zabbix utilizando temas personalizados. Consulte las instrucciones para crear y aplicar sus propios temas.

Módulos de frontend

Los módulos de frontend ofrecen la opción de ampliar la funcionalidad del frontend de Zabbix añadiendo módulos de terceros o desarrollando los suyos propios. Con los módulos de frontend puede añadir nuevos elementos de menú, sus vistas respectivas, acciones, etc.

Scripts globales

Un script global es un conjunto de comandos definidos por el usuario que pueden ejecutarse en un objetivo de monitorización (por el intérprete de shell (/bin/sh)), dependiendo del alcance configurado y los permisos del usuario. Los scripts globales pueden configurarse para las siguientes acciones:

Los scripts globales son útiles en muchos casos. Por ejemplo, si se configuran para operaciones de acción o acciones manuales de equipo, puede utilizar scripts globales para ejecutar automáticamente o manualmente comandos remotos como reiniciar una aplicación (servidor web, middleware, CRM, etc.) o liberar espacio en disco (eliminando archivos antiguos, limpiando /tmp, etc). O, otro ejemplo, si se configuran para acciones manuales de eventos, puede utilizar scripts globales para gestionar tickets de problemas en sistemas externos.

Los scripts globales pueden ser ejecutados por el servidor, proxy o agente de Zabbix.

Los comandos definidos por el usuario se ejecutan desde el usuario del sistema operativo que se utiliza para ejecutar los componentes de Zabbix. Para ejecutar estos comandos, este usuario debe tener los permisos necesarios.

Zabbix API

Zabbix API es una API basada en HTTP que forma parte del frontend de Zabbix. Con Zabbix API, puede realizar cualquiera de las siguientes operaciones:

  • Recuperar y modificar programáticamente la configuración de Zabbix.
  • Importar y exportar la configuración de Zabbix.
  • Acceder a los datos históricos y de tendencias de Zabbix.
  • Configurar aplicaciones para que funcionen con Zabbix.
  • Integrar Zabbix con software de terceros.
  • Automatizar tareas rutinarias.

Zabbix API consta de una multiplicidad de métodos que se agrupan nominalmente en APIs separadas. Cada método realiza una tarea específica. Para conocer los métodos disponibles, así como una visión general de las funciones proporcionadas por Zabbix API, consulte la Referencia de métodos de Zabbix API.