Se lanzó Zabbix 4.2

Nuestro equipo está muy contento de compartir la noticia de que se ha lanzado el sistema de monitoreo de código abierto Zabbix 4.2!

Se lanzó Zabbix 4.2

¿Es la versión 4.2 la respuesta a la gran pregunta de la vida, el universo y el monitoreo en general? ¡Veamos!

Recordemos que Zabbix es un sistema integral para el monitoreo del rendimiento y la disponibilidad de servidores, equipos de ingeniería y red, aplicaciones, bases de datos, sistemas de virtualización, contenedores, servicios de TI y servicios web.

Zabbix implementa un ciclo completo desde la recopilación de datos, su procesamiento y transformación, el análisis de los datos obtenidos, hasta el almacenamiento de estos datos, la visualización y el envío de alertas mediante reglas de escalado. Además, el sistema ofrece flexibles opciones para ampliar los métodos de recopilación de datos y alertas, así como posibilidades de automatización a través de la API. Una única interfaz web realiza la gestión centralizada de las configuraciones de monitoreo y la distribución de permisos a diferentes grupos de usuarios. El código del proyecto se distribuye libremente bajo la licencia GPLv2.

Zabbix 4.2 es una nueva versión no LTS con un tiempo de soporte oficial más corto. A los usuarios que se enfocan en un ciclo de vida prolongado para los productos de software, les recomendamos utilizar versiones LTS, como 3.0 y 4.0.

Así que hablemos de las novedades y mejoras clave de la versión 4.2:

Más plataformas oficiales

Se lanzó Zabbix 4.2
Además de los paquetes oficiales existentes, también ofrecemos nuevas compilaciones para:

  • RaspberryPi, Mac OS/X, SUSE Enterprise Linux Server 12
  • MSI para el agente de Windows
  • Imágenes de Docker

Soporte integrado de Prometheus para monitoreo de aplicaciones

Zabbix puede recopilar datos de varias maneras (push/pull) desde diferentes fuentes de datos. Estos son JMX, SNMP, WMI, HTTP/HTTPS, RestAPI, XML Soap, SSH, Telnet, agentes y scripts, entre otras fuentes. ¡Y ahora damos la bienvenida al soporte de Prometheus!

Hablando estrictamente, la recopilación de datos de exportadores de Prometheus ya era posible antes gracias al tipo de elementos de datos HTTP/HTTPS y expresiones regulares.

Sin embargo, la nueva versión permite trabajar con Prometheus de la manera más eficiente gracias al soporte integrado para el lenguaje de consultas PromQL. Además, el uso de métricas dependientes permite recopilar y procesar datos de la manera más eficaz: se realiza una sola consulta de datos y luego se distribuyen según las métricas necesarias.

Se lanzó Zabbix 4.2
Obtenemos el valor de una métrica concreta

Es importante señalar que actualmente la detección a bajo nivel puede utilizar los datos recopilados para crear métricas automáticamente. En este caso, Zabbix convierte los datos obtenidos al formato JSON, que es muy conveniente para trabajar.

Se lanzó Zabbix 4.2
Encontramos métricas utilizando un filtro en el lenguaje de consultas PromQL

En este momento existen más de 300 integraciones y recetas de monitoreo de servicios y aplicaciones de terceros mediante Zabbix. El soporte de Prometheus permitirá añadir un conjunto completo de aplicaciones que tienen exportadores de Prometheus oficiales o soportados por la comunidad. Esto incluye el monitoreo de servicios populares, contenedores y recursos en la nube.

Monitoreo eficaz de alta frecuencia

¿Queremos detectar problemas lo más rápido posible? ¡Por supuesto, no hay duda! La mayoría de las veces, este enfoque lleva a la necesidad de sondear los dispositivos y recopilar datos con demasiada frecuencia, lo que genera una carga mayor en el sistema de monitoreo. ¿Cómo evitar esto?

Hemos implementado un mecanismo de throttling en las reglas de preprocesamiento. El throttling, en esencia, nos da la posibilidad de omitir valores idénticos.

Supongamos que estamos monitoreando el estado de una aplicación crítica. Cada segundo verificamos si nuestra aplicación está funcionando o no. Mientras tanto, Zabbix recibe un flujo continuo de datos de 1 (funcionando) y 0 (no funcionando). Por ejemplo: 1111111111110001111111111111…

Cuando todo está bien con nuestra aplicación, Zabbix recibe un flujo de solo unos unos. ¿Es necesario procesarlos? En general, no, ya que solo nos interesa el cambio de estado de la aplicación, no queremos recopilar y almacenar tantos datos. Así que, el throttling permite omitir el valor si es idéntico al anterior. Al final, solo obtendremos datos sobre el cambio de estado, por ejemplo, 01010101… ¡Es información más que suficiente para detectar problemas!

Zabbix simplemente ignora los valores omitidos; no se registran en el historial y no afectan a los disparadores. Desde la perspectiva de Zabbix, los valores omitidos no existen.

Se lanzó Zabbix 4.2
Ignoramos los valores duplicados

¡Genial! Ahora podemos consultar los dispositivos con mucha frecuencia y detectar problemas de inmediato sin almacenar información innecesaria en la base de datos.

¿Y qué hay de los gráficos? ¡Estarán vacíos debido a la falta de datos! ¿Y cómo podemos saber si Zabbix está recopilando datos si la mayoría de estos serán omitidos?

¡También hemos pensado en eso! Zabbix ofrece otro tipo de limitación, llamada limitación con puntos de control (throttling with heartbeat).

Se lanzó Zabbix 4.2
Comprobamos una vez por minuto si la métrica está activa

En este caso, Zabbix, a pesar del flujo repetido de datos, guardará al menos un valor en el intervalo de tiempo especificado. Si los datos se recopilan cada segundo y el intervalo se establece en un minuto, Zabbix transformará el flujo de unidades cada segundo en un flujo por minuto. No es difícil notar que esto conduce a una compresión de los datos recibidos de 60 veces.

¡Ahora estamos seguros de que los datos se recopilan, la función del disparador nodata() funciona y los gráficos están en orden!

Validación de datos recopilados y gestión de errores

Ninguno de nosotros quiere recopilar datos erróneos o inexactos. Por ejemplo, sabemos que un sensor de temperatura debe devolver datos en el rango de 0°C a 100°C y cualquier otro valor debe considerarse erróneo y/o ser ignorado.

Ahora esto es posible gracias a las reglas de validación de datos integradas en el preprocesamiento que se basan en coincidencias o no coincidencias con expresiones regulares, rangos de valores, JSONPath y XMLPath.

Ahora podemos gestionar la reacción ante errores. Si la temperatura está fuera del rango, podemos simplemente ignorar ese valor, establecer un valor predeterminado (por ejemplo, 0°C), o definir nuestro propio mensaje de error, como 'Sensor dañado' o 'Reemplace la batería.'

Se lanzó Zabbix 4.2
La temperatura debe estar entre 0 y 100, lo demás lo ignoramos

Un buen ejemplo de uso de la validación es la capacidad de verificar que los datos de entrada contengan un mensaje de error y asignar ese error a toda la métrica. Esta es una funcionalidad muy útil al recibir datos de API externas.

Cualquier transformación de datos utilizando JavaScript

Si no tenemos suficientes reglas de preprocesamiento integradas, ¡ahora ofrecemos total libertad utilizando scripts arbitrarios en JavaScript!

Se lanzó Zabbix 4.2
Con una sola línea de código, se pueden convertir grados Fahrenheit a grados Celsius

Esto abre posibilidades ilimitadas para el procesamiento de datos entrantes. La ventaja práctica de esta funcionalidad es que ahora no necesitamos scripts externos que antes usábamos para cualquier operación de datos. Ahora todo esto se puede hacer con JavaScript.

Ahora es posible la transformación de datos, agregación, filtros, operaciones aritméticas y lógicas, ¡y mucho más!

Se lanzó Zabbix 4.2
Extrayendo información útil de la salida de Apache mod_status!

Probando el preprocesamiento

Ahora no necesitamos adivinar cómo funcionan nuestros complejos scripts de preprocesamiento. ¡Hay una verificación conveniente de la funcionalidad del preprocesamiento directamente desde la interfaz!

Se lanzó Zabbix 4.2

¡Procesando millones de métricas por segundo!

Hasta Zabbix 4.2, el preprocesamiento era realizado exclusivamente por el servidor Zabbix, lo que limitaba la capacidad de utilizar proxies para la distribución de carga.

A partir de la versión Zabbix 4.2, logramos una escala de carga increíblemente efectiva gracias al soporte de preprocesamiento en el lado del proxy. ¡Ahora eso lo hacen los proxies!

Se lanzó Zabbix 4.2

Combinado con el throttling, este enfoque permite realizar monitoreo escalable de alta frecuencia y llevar a cabo millones de verificaciones por segundo, sin sobrecargar el servidor central de Zabbix. Los proxies manejan enormes volúmenes de datos, mientras que solo una pequeña parte, de uno a dos órdenes de magnitud menores, llega al servidor Zabbix debido al throttling.

Descubrimiento de bajo nivel más sencillo

Recordemos que el descubrimiento de bajo nivel (LLD) es un mecanismo muy potente para la detección automática de cualquier tipo de recursos para monitoreo (sistemas de archivos, procesos, aplicaciones, servicios, etc.) y la creación automática de elementos de datos, disparadores, nodos de red y otros objetos en base a ellos. Esto ahorra increíblemente tiempo, simplifica la configuración y permite utilizar una sola plantilla para nodos de red que tienen diversos recursos para monitoreo.

La detección de bajo nivel requería un JSON especialmente formateado. ¡Eso ya no será más!

Zabbix 4.2 permite que la detección de bajo nivel (LLD) utilice datos en formato JSON de manera arbitraria. ¿Por qué es importante? Esto permite comunicarse, por ejemplo, con API externas sin necesidad de scripts y usar la información obtenida para crear automáticamente nodos de red, elementos de datos y disparadores.

Junto con el soporte para JavaScript, esto crea fantásticas oportunidades para crear plantillas que trabajen con diversas fuentes de datos, como, por ejemplo, API en la nube, API de aplicaciones, datos en formatos XML, CSV y mucho más.

Se lanzó Zabbix 4.2
Vinculamos JSON con información procesal a través de LLD

¡Las posibilidades son realmente infinitas!

Soporte para TimescaleDB

Se lanzó Zabbix 4.2

¿Qué es TimescaleDB? Es un PostgreSQL estándar más un módulo de extensión del equipo de TimescaleDB. TimescaleDB promete un mejor rendimiento gracias a algoritmos más eficientes y una estructura de datos optimizada.

Además, otra ventaja de TimescaleDB es el particionamiento automático de tablas con historial. ¡TimescaleDB es velocidad y facilidad de mantenimiento! Aunque debo señalar que nuestro equipo aún no ha realizado una comparación de rendimiento seria con PostgreSQL convencional.

Actualmente, TimescaleDB es un producto bastante joven y en rápido desarrollo. ¡Utiliza con precaución!

Gestión sencilla de etiquetas

Si antes solo se podían gestionar las etiquetas a nivel de disparadores, ahora la gestión de etiquetas es mucho más flexible. ¡Zabbix soporta etiquetas para plantillas y nodos de red!

Todos los problemas detectados reciben etiquetas no solo del disparador, sino también del nodo de red y de las plantillas de ese nodo de red.

Se lanzó Zabbix 4.2
Definimos etiquetas para el nodo de red

Auto-registro más flexible

Zabbix 4.2 permite filtrar nodos de red por nombre usando expresiones regulares. Esto proporciona la posibilidad de crear diferentes escenarios de detección para diversos grupos de nodos de red. Especialmente útil si usamos reglas de nombramiento complejas para los dispositivos.

Detección de red más flexible

Otra mejora está relacionada con el nombramiento de nodos de red. Se ha introducido la posibilidad de gestionar los nombres de dispositivos durante la detección de red y de obtener el nombre del dispositivo a partir del valor de la métrica.

Esta es una funcionalidad muy necesaria, especialmente en el descubrimiento de redes mediante SNMP y el agente Zabbix.

Se lanzó Zabbix 4.2
Se asigna automáticamente un nombre de hostname local para la red como nombre visible

Comprobación de la funcionalidad de los métodos de notificación

Ahora se puede enviar un mensaje de prueba directamente desde la interfaz web y comprobar si el método de notificación funciona. Esta funcionalidad es especialmente útil para verificar los scripts de integración de Zabbix con diversos sistemas de notificación, sistemas de tareas y otros programas externos y API.

Se lanzó Zabbix 4.2

Monitoreo remoto de componentes de infraestructura Zabbix

Ahora es posible el monitoreo remoto de las métricas internas del servidor y proxy de Zabbix (métricas de rendimiento y funcionalidad de los componentes de Zabbix).

¿Para qué sirve esto? La funcionalidad permite supervisar métricas internas de servidores y proxies desde el exterior, permitiendo detectar y notificar problemas rápidamente incluso si los propios componentes están sobrecargados o, por ejemplo, si hay un gran volumen de datos no enviados en el proxy.

Soporte para formato HTML en correos electrónicos

Ahora no estamos limitados a texto plano y podemos crear bonitos correos electrónicos, gracias al soporte para formato HTML. ¡Es hora de aprender HTML + CSS!

Se lanzó Zabbix 4.2
Los mensajes son más fáciles de comprender incluso con un uso mínimo de HTML

Acceso a sistemas externos desde mapas de red

Se ha añadido soporte para un conjunto completo de nuevos macros en URL personalizadas para una mejor integración de mapas con sistemas externos. Esto permite abrir, por ejemplo, un ticket en el sistema de tareas con uno o dos clics sobre el ícono del nodo de red.

Se lanzó Zabbix 4.2
Abrimos un ticket en Jira con un clic

La regla de detección puede ser un elemento de datos dependiente

¿Por qué es esto necesario? Permite utilizar los datos de la métrica principal tanto para la detección como para la recopilación de datos. Por ejemplo, en el caso de la recopilación de datos de un exportador de Prometheus, Zabbix realizará una solicitud HTTP y usará inmediatamente la información recibida para todos los elementos de datos dependientes: valores de métricas y reglas de detección de bajo nivel.

Nueva forma de visualizar problemas en mapas

Se ha añadido soporte para imágenes GIF animadas en los mapas para una visualización de problemas más destacada.

Se lanzó Zabbix 4.2
Los dispositivos problemáticos se han vuelto más visibles

Extraemos datos de los encabezados HTTP en la supervisión web

En la supervisión web se ha añadido la opción de seleccionar datos del encabezado HTTP recibido.

Esto permite crear escenarios de monitoreo web de múltiples pasos o monitoreo de API de terceros, utilizando un token de autorización obtenido en uno de los pasos.

Se lanzó Zabbix 4.2
Extraemos AuthID del encabezado HTTP

Zabbix Sender utiliza todas las direcciones IP

Zabbix Sender ahora envía datos a todas las direcciones IP del parámetro ServerActive del archivo de configuración del agente.

Se lanzó Zabbix 4.2

Un nuevo filtro conveniente en la configuración de disparadores

La página de configuración de disparadores ha obtenido un filtro avanzado para seleccionar rápidamente disparadores según criterios establecidos.

Se lanzó Zabbix 4.2
Seleccionamos disparadores relacionados con el servicio K8S

Mostramos la hora exacta

Aquí es todo simple, ahora Zabbix muestra la hora exacta al pasar el cursor sobre el gráfico.

Se lanzó Zabbix 4.2

Otras novedades

  • Se ha implementado un algoritmo más predecible para cambiar el orden de colocación de widgets en el dashboard
  • Posibilidad de cambio masivo de parámetros de prototipos de elementos de datos
  • Soporte para IPv6 para verificaciones DNS: «net.dns» y «new.dns.record»
  • Se ha añadido el parámetro «skip» para verificaciones «vmware.eventlog»
  • El error de ejecución del paso de preprocesamiento incluye el número del paso

¿Cómo actualizar?

Para actualizar desde versiones anteriores solo se requiere la instalación de nuevos archivos binarios (servidores y proxy) y una nueva interfaz. Zabbix llevará a cabo automáticamente el procedimiento de actualización de la base de datos. No se requerirá la instalación de nuevos agentes.

Realizamos seminarios web gratuitos para aquellos que desean saber más sobre Zabbix 4.2 y tener la oportunidad de hacer preguntas al equipo de Zabbix. ¡Regístrate!

No olvidemos el popular canal de Telegram de la comunidad Zabbix, donde siempre se puede obtener asesoramiento y respuestas a sus preguntas en ruso por parte de colegas más experimentados, y si se tiene suerte, incluso de los propios desarrolladores de Zabbix. Para principiantes recomendamos el grupo para principiantes.

Enlaces útiles

— Notas de la versión
— Notas de actualización
— Artículo original

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster