20 Extensiones

Descripción general

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

Puede ampliar la funcionalidad de Zabbix utilizando las opciones de extensión integradas (elementos de captura, parámetros de usuario, etc.) o mediante el uso o la creación de extensiones personalizadas (módulos cargables, complementos, 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 de captura

Las métricas de captura son métricas que aceptan datos entrantes en lugar de consultarlos. Las métricas de captura son útiles para enviar datos específicos al servidor Zabbix, por ejemplo, datos periódicos de disponibilidad y rendimiento en el caso de scripts de usuario de larga ejecución. Puede hacerlo utilizando la utilidad de línea de comandos Zabbix sender o implementando usted mismo un protocolo de comunicación basado en JSON (similar al utilizado en el remitente Zabbix).

Verificaciones externas

Una verificación externa es una métrica para ejecutar verificaciones ejecutando un archivo ejecutable, por ejemplo, un script de shell o un binario.

Las comprobaciones externas las ejecuta el servidor Zabbix o el proxy (cuando el equipo es monitoreado por el proxy), y no requieren que un agente se ejecute en el equipo que se está monitoreando.

Parámetros de usuario

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

system.run[] Métricas del agente Zabbix

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

Nota: Las métricas system.run[] están deshabilitados de forma predeterminada y, si se usan, deben ser habilitadas (permitidas) y definidas 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 del agente HTTP

La métrica del Agente HTTP es una métrica para ejecutar solicitudes de datos a través de HTTP/HTTPS. Las métricas del agente HTTP son útiles para enviar solicitudes a puntos finales 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.

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 del agente HTTP no es suficiente. Por ejemplo, en escenarios exigentes de recopilación de datos que requieren múltiples pasos o una lógica compleja, se puede configurar una métrica de script para realizar una llamada HTTP y 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 ejecute en el equipo que se está monitoreando.

Extensiones avanzadas

Módulos cargables

Los módulos cargables, escritos en C, son una herramienta versátil y una opción 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 Zabbix y cargada al inicio. La biblioteca debe contener ciertas funciones, para que un proceso de Zabbix pueda detectar que el archivo es, de hecho, un módulo que puede cargar y trabajar con él.

Los módulos cargables tienen una serie de beneficios, incluida la capacidad de agregar 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, contribuye a un mantenimiento sin problemas. y ayuda a ofrecer nuevas funciones de forma más fácil e independiente del código base central de Zabbix.

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

Complementos

Los Complementos proporcionan una alternativa a los módulos cargables (escritos en C). Sin embargo, los complementos son una forma de ampliar únicamente el Agente 2 Zabbix.

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

Consulte la lista de complementos integrados.

Para obtener instrucciones y tutoriales sobre cómo escribir sus propios complementos, 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 asistencia técnica, chats o mensajería. De manera similar a los elementos de secuencia de comandos, 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 asistencia técnica creados) que luego se muestran en Zabbix.

Los webhooks existentes están disponibles en el [repositorio Git] (https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media) de Zabbix. Para el desarrollo de webhooks personalizados, consulte las [directrices de desarrollo de webhooks] (https://www.zabbix.com/documentation/guidelines/en/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) para manejar 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 de la interfaz de Zabbix mediante el uso de temas personalizados. Ver las instrucciones sobre cómo crear y aplicar sus propios temas.

Módulos de interfaz

Los módulos de interfaz proporcionan una opción para ampliar la funcionalidad de interfaz de Zabbix agregando módulos de terceros o desarrollando los suyos propios. Con los módulos frontend puede agregar nuevos elementos de menú, sus respectivas vistas, acciones, etc.

Scripts globales

Un script global es un conjunto de comandos definido por el usuario que se puede ejecutar en un objetivo de monitoreo (mediante el intérprete de shell (/bin/sh)), dependiendo del alcance configurado y los permisos de usuario. Los scripts globales se pueden configurar para las siguientes acciones:

Los scripts globales son útiles en muchos casos. Por ejemplo, si está configurado para operaciones de acción o acciones manuales de equipo, puede usar scripts globales para ejecutar automática o manualmente comandos remotos como reiniciar una aplicación (servidor web, middleware, CRM, etc.) o liberar espacio en el disco (eliminar archivos antiguos, limpiar /tmp, etc.). O, otro ejemplo, si está configurado para acciones de eventos manuales, 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.

API de Zabbix

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

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

La API de Zabbix consta de una multitud de métodos que nominalmente están agrupados en API separadas. Cada método realiza una tarea específica. Para conocer los métodos disponibles, así como una descripción general de las funciones proporcionadas por la API de Zabbix, consulte la Referencia de métodos de la API de Zabbix.