A mediados de mayo se lanzó la versión Zabbix 5.0, y organizamos una serie de meetups en línea en diferentes idiomas con el objetivo de demostrar claramente a la comunidad todos los cambios y nuevas características. Te invitamos a revisar la presentación del director ejecutivo y creador de Zabbix, Alexey Vladyshev, en la que explica paso a paso las novedades de Zabbix 5.0.

Zabbix 4.2 y Zabbix 4.4
Comencemos con los cambios que aparecieron en la versión Zabbix 4.0, debido al uso de versiones LTS.
En la versión Zabbix 4.2, que se lanzó en abril de 2019, se introdujeron las siguientes capacidades:
- Monitoreo de alta frecuencia mediante throttling, que proporciona escalabilidad y mejora de NVPS, lo que significa una detección más rápida de problemas y el envío de alertas sin una gran carga en Zabbix.
- Recolección de datos a través del agente HTTP.
- Soporte para la recolección de datos desde Prometheus Pro.
- El preprocesamiento admite validación y JavaScript, lo que permite transformar cualquier dato recopilado.
- Preprocesamiento en el lado del proxy, que proporciona una escalabilidad más eficiente mediante proxies.
- Mejor gestión de etiquetas: metainformación a nivel de eventos y problemas, que es fácil de manejar, ya que las etiquetas se admiten tanto a nivel de plantillas como a nivel de nodos de red.
En septiembre del año pasado se lanzó la versión Zabbix 4.4, que ofrecía las siguientes características:
- Nuevo agente Zabbix.
- Soporte para Webhook para alertas y notificaciones, lo que permite la integración con sistemas externos.
- Soporte para TimescaleDB.
- La base de conocimientos incorporada para métricas y desencadenadores se volvió visible para los usuarios de Zabbix. Por ejemplo, los usuarios pueden utilizar la descripción de los elementos de datos y desencadenadores en Monitoring > Latest data.
- Nuevo estándar para plantillas.
Zabbix 5.0
Hoy hablaremos sobre el lanzamiento LTS de Zabbix 5.0, que será compatible durante 5 años. El soporte para la versión 4.4 se detendrá dentro de un mes. El lanzamiento LTS de Zabbix 3.0 será compatible durante 3.5 años más.
Zabbix proporciona monitoreo de muchas cosas, cuya lista se puede detallar en la página , donde se presentan plantillas para monitoreo y plugins, incluyendo para el nuevo agente.

Plantillas disponibles para monitoreo e integración
Además, existen oportunidades de integración con diversos sistemas, incluidos sistemas de tickets, sistemas ITSM y sistemas de mensajería mediante Webhook.

Posibilidades de integración
En Zabbix 5.0 se ha ampliado el soporte integrado para la integración con diferentes sistemas de tickets, así como con sistemas de alertas:

Integración con varios sistemas
Se ha ampliado la lista de plantillas integradas para el monitoreo de aplicaciones y dispositivos:

Plantillas integradas para el monitoreo de aplicaciones y dispositivos
Todas las actualizaciones están disponibles para descargar en .
Cualquier usuario o desarrollador puede participar en Zabbix con contribuciones listas — plantillas o plugins, utilizando un proceso sencillo:
- Firmar el Acuerdo de Contribución de Zabbix (ZCA) en .
- Enviar una Pull Request en .
- Revisión de la solicitud por parte del equipo de desarrolladores. Si el plugin o la plantilla cumple con los estándares de Zabbix, se incluye en el producto, y el trabajo de dicho desarrollador será oficialmente respaldado por el equipo de Zabbix.
Zabbix es un software de código abierto, disponible para ser visto, estudiado y modificado. El usuario tiene la libertad de utilizar el producto, participar en el desarrollo de la aplicación o usar el código para sus nuevos programas. Por otro lado, el equipo de Zabbix hace todo lo posible para que Zabbix sea fácilmente instalable en diversas plataformas.
Los desarrolladores de Zabbix ofrecen paquetes para prácticamente todas las distribuciones más populares y diversas plataformas de virtualización. Además, Zabbix se puede instalar con un solo clic en la nube pública. Zabbix también está disponible en plataformas como Red Hat Openshift o OpenStack.

Paquetes de Zabbix para distribuciones y plataformas
Soporte para Zabbix Agent 2 para Windows y Linux
El nuevo Zabbix Agent 2 es una de las mejores soluciones en el mercado.
- Ofrece una estructura basada en plugins y soporta scripts para la recolección de datos que pueden operar durante horas.
- Soporta verificaciones activas paralelas, conexiones constantes a sistemas externos, lo cual es útil, por ejemplo, para un monitoreo efectivo de bases de datos.
- Soporta trampas y eventos, lo que es importante para el monitoreo de dispositivos MQTT.
- La nueva versión del agente se instala fácilmente (dado que el nuevo agente mantiene todas las funcionalidades anteriores).
Además, para el nuevo agente en Zabbix 5.0 se ofrece soporte para el almacenamiento persistente de datos. Anteriormente, la información no enviada se almacenaba únicamente en la memoria del agente, mientras que en la nueva versión se puede configurar el almacenamiento de esta información en el disco.

Almacenamiento permanente de datos
Esto es importante en el caso de monitorear sistemas críticos y comunicaciones inestables, ya que una gran cantidad de datos importantes se conserva hasta que se envían al servidor Zabbix. La opción también es útil para conexiones satelitales que pueden no estar disponibles durante largos períodos.
¡IMPORTANTE! En Zabbix 5.0 se mantiene el soporte para Zabbix Agent 1.
Cambios en la seguridad en Zabbix 5.0
1. En la nueva versión se admite un proxy HTTP para webhook, que permite realizar conexiones del servidor Zabbix a sistemas de alerta externos de manera más segura y controlada.
Si es necesaria la integración del servidor Zabbix en una red local con un sistema externo, por ejemplo, JIRA en la nube, se puede mantener la conexión a través de un proxy HTTP, lo que mejora el control y la fiabilidad de la conexión.
2. Tanto para el agente viejo como para el nuevo, se puede elegir qué verificaciones deben estar disponibles en un agente específico. Por ejemplo, se puede restringir la cantidad de verificaciones, creando en realidad listas blancas y negras, definiendo las claves soportadas.
- Lista blanca para comprobaciones relacionadas con MySQL
AllowKey=mysql[*] DenyKey=* - Lista negra para denegar todos los scripts shell
DenyKey=system.run[*] - Lista negra para denegar el acceso a /etc/password
DenyKey=vfs.file.contents[/etc/passwd,*]
3. Se pueden elegir algoritmos de cifrado para todos los componentes de Zabbix, evitando el uso de cifrados inseguros para conexiones TLS. Esto es importante para monitorear entornos que deben cumplir ciertos estándares de seguridad.

Selección de algoritmos de cifrado para conexiones TLS
4. En Zabbix 5.0 se ha añadido soporte para conexiones cifradas con bases de datos. En este momento, solo hay conexión cifrada con PostgreSQL y MySQL.

Conexiones cifradas con bases de datos
5. Zabbix 5.0 ha cambiado de MD5 a SHA256 para almacenar hashes de contraseñas de usuarios en la base de datos, ya que actualmente este es el algoritmo más seguro.
6. Zabbix 5.0 admite macros secretas de usuario para almacenar cualquier información confidencial, como contraseñas y tokens de API, a la que no tienen acceso los usuarios finales.

Macros secretas
7. Todas las conexiones de Zabbix con sistemas externos y las conexiones internas con los agentes son seguras. Se admite el cifrado utilizando certificados TLS, o mediante la clave compartida previamente publicada (pre-shared key encryption) para la conexión con los agentes y proxies, o HTTPS. La seguridad del lado de los agentes se puede reforzar utilizando listas blancas y negras. La interfaz opera a través de HTTPS.

Conexiones seguras
8. Soporte para SAML para proporcionar un único punto de autenticación de un proveedor de identidad confiable, por lo que las credenciales del usuario no saldrán de los límites del cortafuegos.

Autenticación SAML
El soporte de SAML permite integrar Zabbix con diversos proveedores de identidad locales y en la nube, como Microsoft ADFS, OpenAM, SecurAuth, Okta, Auth0, así como Azure, AWS o Google Cloud Platform.
Facilidad de uso de Zabbix 5.0
1. Interfaz de usuario optimizada para pantallas amplias. Hemos movido el menú de la parte superior, donde siempre falta espacio, al lado izquierdo de la pantalla. El menú todavía se muestra en modo completo, mínimo y oculto.

Interfaz optimizada para pantalla amplia
2. Copia de widgets desde los paneles permite crear nuevos PANELES muy rápidamente. Para ello, en el PANEL hay que seleccionar el widget deseado, presionar Copiar

Copiar widget
y pegar el widget en el panel deseado.

Pegar el widget copiado
3. Exportación de gráficos. Para copiar un gráfico y enviarlo, por ejemplo, por correo electrónico, se puede obtener el gráfico en formato PNG, seleccionando el widget deseado y presionando Descargar imagen.

Exportación de gráficos
4. Filtrado por etiquetas: Problema por gravedad y Hosts de problemas. Ahora es posible, por ejemplo, recopilar en un mismo centro de datos información sobre todos los problemas relacionados con un nodo de la red.

Filtración por etiquetas
5. Soporte para módulos para extender la interfaz de Zabbix. Para instalar un módulo independiente, se debe copiar en un directorio específico. Los módulos permiten extender la funcionalidad existente de la interfaz, crear nuevas páginas, cambiar la estructura del menú, por ejemplo, añadiendo elementos.
Cualquier usuario puede escribir e integrar un módulo. Para ello, el módulo se copia en la carpeta modules, tras lo cual se vuelve visible para la interfaz, donde se puede habilitar y deshabilitar.

Añadir un nuevo módulo
6. Sencillez de navegación por recursos relacionados con nodos de red. Hay Monitoreo > Hosts se muestra una lista de dispositivos que Zabbix monitorea: nodos de red, servicios, dispositivos de red, etc. Además, hay una navegación rápida a pantallas, gráficos y problemas de dispositivos específicos.
Hemos eliminado las pestañas Monitoreo > Gráficos y Monitoreo > Webs, y toda la navegación se realiza a través de Monitoreo > Hosts. La información mostrada se puede filtrar, incluyendo por etiquetas, lo que permite mostrar dispositivos desactivados

Navegación por recursos relacionados con nodos de red
Por ejemplo, se pueden seleccionar dispositivos que pertenecen a servicios de usuarios finales, eligiendo ‘Servicio’, así como establecer el nivel de importancia de estos problemas.

Opciones de filtrado
7. Nueva operación de preprocesamiento — ‘Reemplazo‘ permite hacer varias cosas útiles que antes solo se podían hacer mediante expresiones regulares, bastante complejas para muchos usuarios.
Replace permite reemplazar efectivamente una cadena o símbolo por otros, lo que facilita la conversión de datos obtenidos en formato de texto a una representación numérica.

Operador Reemplazar
8. Operador JSONPath, que permite extraer nombres de atributos de manera conveniente

Operador para JSONPath
9. Visualización de correos electrónicos de Zabbix. En versiones anteriores, todos los mensajes de correo electrónico de Zabbix en la carpeta Entrantes se mostraban en una lista. A partir de Zabbix 5.0, los mensajes se agruparán por problemas.

Agrupación de mensajes de correo electrónico de Zabbix
10. Soporte para macros personalizadas para IPMI para nombre de usuario y contraseña. Si se utilizan macros secretas para el nombre de usuario y la contraseña, el acceso a su valor estará restringido.

Soporte para macros personalizadas
11. Cambio masivo de macros personalizadas para nodos de red. En la nueva versión, se puede abrir la lista de plantillas, seleccionar la lista de nodos de red y agregar macros o cambiar los valores de las macros existentes,

Adición y cambio de macros personalizadas
así como eliminar algunas macros específicas o todas las macros de las plantillas seleccionadas para nodos de red.

Eliminación de macros personalizadas individuales o todas
12. Control del formato de mensajes a nivel de método de notificación. Hay Tipos de medios apareció una pestaña Plantillas de medios con plantillas de mensajes.

Plantillas de métodos de notificación
Para diferentes tipos de mensajes, se pueden definir diversas plantillas.

Definición de la plantilla para el tipo de mensajes
En versiones anteriores, era necesario gestionar estos mensajes a nivel de acciones, definiendo los mensajes y el asunto por defecto.

Gestión de plantillas a nivel de acciones
En la nueva versión, todo se puede definir a nivel global y, a nivel de mensajes, reescribir la configuración global.

Gestión de plantillas a nivel global
Para la mayoría de los usuarios, es suficiente definir los formatos de plantillas a nivel de método de notificación. Además, después de importar un nuevo método de notificación, todos los correspondientes formatos de plantilla ya son parte de él.
13. Aplicación más amplia de JavaScript. JavaScript se utiliza para scripts de preprocesamiento, para Webhook, etc. En la línea de comandos, trabajar con JavaScript no es fácil.
En Zabbix 5.0 se utiliza una nueva utilidad — zabbix_js, que ejecuta JavaScript, que acepta datos, los procesa y genera valores de salida.

Utilidad zabbix_js

Ejemplos de uso de la utilidad zabbix_js
14. Soporte de operaciones de texto con expresiones de desencadenador permite verificar las versiones de los componentes instalados, comparar valores con constantes, donde la constante puede ser un macro de usuario,
{host:zabbix.version.last()}="5.0.0"
{host:zabbix.version.last()}="{$ZABBIX.VERSION}comparar el último valor con el anterior, por ejemplo, cuando se trata de datos de texto,
{host:text.last()}<>{host.text.prev()}o
{host:text.last(#1)}<>{host.text.prev(#2)}o comparar valores de texto de diferentes métricas.
{hostA:textA.last()}={hostB:textB.last()}15. Automatización y descubrimiento.
- Hay nuevas comprobaciones JMX disponibles para obtener y descubrir la lista de contadores JMX, lo que es muy útil, por ejemplo, para la monitorización de aplicaciones Java, así como para automatizar la creación de elementos de monitorización, métricas, desencadenadores y gráficos.
jmx.get[]y
jmx.discovery[]
Comprobaciones JMX - En la nueva versión, se introdujo una clave para la monitorización de contadores de rendimiento de Windows, que es compatible con los antiguos y nuevos agentes en ruso e inglés y permite, por ejemplo, detectar la cantidad de procesadores, sistemas de archivos, servicios, etc.

Monitorización de contadores de rendimiento de Windows con la clave perf_counter - La monitorización ODBC se ha vuelto mucho más fácil. Anteriormente, todos los parámetros para la monitorización ODBC debían describirse en un archivo externo /etc/odbc.ini, al que no se podía acceder desde la interfaz de Zabbix. En la nueva versión, casi todos los parámetros pueden ser parte de la clave de la métrica.

Clave de métrica con descripción de parámetrosEn la nueva versión se puede establecer el nombre del servidor y el puerto a nivel de métrica, y el nombre y la contraseña de acceso utilizando macros secretas para mayor seguridad.

Uso de macros secretas - Al utilizar el protocolo IPMI para la monitorización de hardware, hay una mayor posibilidad de crear plantillas más simples para la automatización mediante ipmi.get.

ipmi.get
16. Pruebas de elementos de datos desde la interfaz. En Zabbix 5.0 se añadió la posibilidad de probar algunos elementos de datos y, lo que es más importante, las plantillas de elementos de datos desde la interfaz.

Pruebas de elementos de datos
Cualquier problema que surja se muestra en la interfaz.

Mostrar problemas en la interfaz
Se utiliza un algoritmo similar para las plantillas de elementos de datos. Además, si algún elemento de datos no es compatible, para averiguar la causa del fallo, basta con hacer clic en Prueba.
17. Pruebas de métodos de alerta, que se introdujo en Zabbix 4.4, se mantiene, lo cual es importante para la integración de Zabbix con otros sistemas, como sistemas de tickets.

Pruebas de métodos de alerta
18. Soporte para macros personalizadas para prototipos de elementos de datos. Para definir los valores de las macros personalizadas se pueden utilizar macros LLD.

Uso de macros LLD para definir valores de macros personalizadas
19. Soporte para datos Float64, que son necesarios, principalmente, para la monitorización de valores muy grandes, en Zabbix se requiere para soportar datos recibidos de agentes de Prometheus.
En caso de instalar Zabbix 5.0, la migración automática de datos al estándar Float64 no ocurre. Los usuarios pueden seguir utilizando antiguos tipos de datos. Los scripts de migración a Float64 se ejecutan manualmente y cambian los tipos de datos en las tablas históricas. No se usa una sustitución automática, ya que toma mucho tiempo.
20. Mejora de la escalabilidad de Zabbix 5.0: optimización de la interfaz y eliminación de 'cuellos de botella'
- Se eliminaron los menús desplegables, por ejemplo, para seleccionar nodos de red, ya que esta función no es escalable.
- Se introdujeron límites "integrados" para los tamaños de tablas. Resumen.
- Nuevas capacidades en Monitoring > Hosts > Graphs.
- Se implementó la función de paginación (Monitoring > Hosts > Web) donde antes no existía.
21. Compresión mejorada
La compresión en Zabbix se basa en una extensión para PostgreSQL: TimescaleDB (a partir de Zabbix 4.4). TimescaleDB proporciona particionamiento automático de la base de datos y mejora su rendimiento, ya que el rendimiento de TimescaleDB no depende del tamaño de la base de datos.
En Zabbix 5.0 en Administration > General > Housekeeping se puede configurar, por ejemplo, la compresión de datos más antiguos a 7 días. Esto reduce significativamente el espacio en disco requerido (casi diez veces, según datos de usuarios), mejorando la economía del espacio en disco y aumentando el rendimiento.

Compresión utilizando TimescaleDB
22. Configuración de SNMP a nivel de interfaz. En Zabbix 5.0, en lugar de tres tipos de elementos de datos, se utiliza solo uno: SNMP agent. Todos los atributos de SNMP se trasladaron al nivel de la interfaz de los nodos de red, lo que simplifica las plantillas, el cambio entre versiones de SNMP, etc.

Configuración de SNMP a nivel de interfaz
23. Dependencia de monitoreo de disponibilidad de nodos de red de la disponibilidad del proxy permite mostrar un problema de disponibilidad del proxy como prioritario en caso de que los nodos de red no estén disponibles cuando se monitorea utilizando un desencadenador con la función nodata:
{HostA:item.nodata(1m)}=1
La disponibilidad de los nodos de red se determina considerando la disponibilidad del proxy.
La función nodata Por defecto, se toma en cuenta la disponibilidad del proxy. Para un control más estricto, que no considera la disponibilidad del proxy, se utiliza un segundo parámetro - strict:
{HostA:item.nodata(1m,strict)}=124. Gestión de reglas de detección de bajo nivel. En Zabbix 5.0 se introdujo un filtro LLD que permite ver incluido reglas de detección no soportadas.

Filtro LLD
25. La posibilidad de desconfirmar un problema (unacknowledge) permite corregir errores y es útil al crear flujos de trabajo que dependen de la confirmación de un problema.

Desconfirmar un problema
26. Modificación de las reglas de detección de bajo nivel. —la posibilidad de añadir excepciones al detectar objetos durante la monitorización de sistemas de archivos, que permite, en la detección de bajo nivel, crear o no crear ciertos objetos, disparadores, elementos de datos, etc., cambiar la importancia de los problemas, agregar etiquetas para ciertos objetos, excluir objetos como sistemas de archivos temporales de la búsqueda, modificar el intervalo de actualización de datos, etc.

Exclusión de la detección de bajo nivel de sistemas de archivos temporales
Por ejemplo, se puede cambiar el nivel de prioridad de los disparadores para los sistemas de archivos Oracle detectados, manteniendo el nivel de prioridad de los disparadores de otros sistemas de archivos.

Cambio del nivel de prioridad de los disparadores para sistemas de archivos específicos
27. Nuevos macros en Zabbix 5.0 permiten mejorar la calidad de la monitorización.

Nuevos macros en Zabbix 5.0
28. Otras novedades en Zabbix 5.0:

Mejoras en Zabbix 5.0
29. Fin del soporte

Funcionalidad no soportada
Conclusión
¡Actualizar a Zabbix 5.0 es muy sencillo! Instale y ejecute los nuevos archivos binarios para el servidor y archivos frontend, y el servidor actualizará automáticamente su base de datos.
La información sobre el procedimiento de actualización de Zabbix se encuentra en:
¡IMPORTANTE!
- La actualización de datos históricos al formato Float64 no es obligatoria.
- Los datos de TimescaleDB son de solo lectura.
- Versión mínima requerida PHP 7.2.
- DB2 no es soportado como backend para el servidor Zabbix
(!) Los videos y las diapositivas de las presentaciones de Alexey Vladyshev y otros ponentes de Zabbix Meetup Online (Ruso) se pueden ver .
Fuente: habr.com





