6 Configuración de TimescaleDB

Descripción general

Zabbix es compatible con TimescaleDB, una solución de base de datos basada en PostgreSQL que divide automáticamente los datos en fragmentos basados en el tiempo para ofrecer un rendimiento más rápido a escala.

Actualmente, el proxy de Zabbix no es compatible con TimescaleDB.

Las instrucciones de esta página se pueden usar para los siguientes escenarios:

  • Creación de una base de datos TimescaleDB o migración de tablas PostgreSQL existentes a TimescaleDB (consulte Configuración).
  • Actualización de un esquema de base de datos TimescaleDB existente al actualizar Zabbix (consulte Actualización del esquema TimescaleDB).

Configuración

Suponemos que la extensión TimescaleDB ya se ha instalado en el servidor de base de datos (consulte las instrucciones de instalación en la documentación de Timescale).

La extensión TimescaleDB también debe estar habilitada para la base de datos específica ejecutando:

echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

Para ejecutar este comando se requieren privilegios de administrador de base de datos.

Si utiliza un esquema de base de datos distinto de 'public', debe agregar una cláusula SCHEMA al comando anterior. Por ejemplo:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix

Luego ejecute el script postgresql/timescaledb/schema.sql. Para las nuevas instalaciones, el script debe ejecutarse después de que se haya creado la base de datos PostgreSQL regular con el esquema/datos iniciales (consulte creación de base de datos).

cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | sudo -u zabbix psql zabbix

Ignore los mensajes de advertencia que informan que no se siguen las mejores prácticas mientras ejecuta el script schema.sql en TimescaleDB versión 2.9.0 y superior. Independientemente de esta advertencia, la configuración se completará correctamente.

La migración de los datos de historial, tendencias y registros de auditoría existentes puede llevar mucho tiempo. El servidor y la interfaz de usuario de Zabbix deben estar inactivos durante el período de migración.

El script schema.sql establece los siguientes parámetros de mantenimiento:

  • Anular el período del historial del elemento
  • Anular el período de la tendencia del elemento

Para utilizar el mantenimiento particionado para el historial y las tendencias, ambas opciones deben estar habilitadas. También es posible habilitar la anulación individualmente ya sea solo para el historial o solo para las tendencias.

El script postgresql/timescaledb/schema.sql establece dos parámetros adicionales:

  • Habilitar la compresión
  • Comprimir registros con más de 7 días de antigüedad

Para eliminar con éxito los datos comprimidos por parte del limpiador interno, ambas opciones Anular el período del historial de elementos y Anular período de tendencia de elementos deben estar habilitadas. Si la anulación está deshabilitada y las tablas tienen fragmentos comprimidos, el limpiador interno no eliminará datos de estas tablas y se mostrarán advertencias sobre una configuración incorrecta en Limpiador interno y en la Información del sistema.

Todos estos parámetros se pueden cambiar en AdministraciónLimpiador interno después de la instalación.

Es posible que desee ejecutar la herramienta timescaledb-tune proporcionada por TimescaleDB para optimizar los parámetros de configuración de PostgreSQL en su postgresql.conf.

Actualización del esquema de TimescaleDB

Al actualizar Zabbix a una versión que contiene nuevas hipertablas de TimescaleDB, el servidor Zabbix no configura automáticamente esas hipertablas (por ejemplo, al actualizar de Zabbix 6.4 a 7.0.3, ya que las versiones 7.0.0 y 7.0.2 han introducido nuevas hipertablas).

Para configurar nuevas hipertablas de TimescaleDB, siga estos pasos:

  1. Inicie el servidor Zabbix; esto actualiza la base de datos existente.
  2. Verifique el archivo de registro del servidor para comprobar que se ha completado la actualización de la base de datos; cuando se complete, detenga el servidor Zabbix. Tenga en cuenta que el servidor registra una advertencia si intenta habilitar la compresión para una tabla que no es una hipertabla.
  3. Ejecute el script postgresql/timescaledb/schema.sql; esto configura las nuevas hipertablas de TimescaleDB. Tenga en cuenta que, desde Zabbix 7.0.0, la ubicación y el nombre del script han cambiado de postgresql/timescaledb.sql a postgresql/timescaledb/schema.sql.

Ignore los mensajes de advertencia que informan que no se siguen las mejores prácticas al ejecutar el script schema.sql en TimescaleDB versión 2.9.0 y posteriores. Independientemente de esta advertencia, la configuración se completará correctamente.

Compresión TimescaleDB

La compresión nativa de TimescaleDB es compatible con todas las tablas de Zabbix que son hipertablas de TimescaleDB. Durante la actualización o migración a TimescaleDB, la compresión inicial de las tablas grandes puede llevar mucho tiempo.

Tenga en cuenta que la compresión es compatible con la licencia comunitaria Timescale "timescale" y no es compatible con la licencia "apache" Apache 2.0. Si Zabbix detecta que la compresión no está soportada, se escribe un mensaje de advertencia en el registro del servidor Zabbix y los usuarios no pueden habilitar la compresión en la interfaz.

Se recomienda a los usuarios que se familiaricen con la compresión en la documentación de Timescale antes de usar la compresión.

Tenga en cuenta que existen ciertas limitaciones impuestas por la compresión, específicamente:

  • Las modificaciones de fragmentos comprimidos (inserciones, eliminaciones, actualizaciones) no son permitidas
  • No se permiten cambios de esquema para tablas comprimidas.

La configuración de compresión se puede cambiar en el bloque Compresión de historial y tendencias en la sección AdministraciónLimpieza de la interfaz de Zabbix.

Parámetro Predeterminado Comentarios
Habilitar compresión Habilitado Marcar o desmarcar la casilla de verificación no activa/desactiva la compresión inmediatamente. Debido a que la compresión es manejada por el limpiador, los cambios tendrán efecto en hasta 2 veces las horas definidas en HousekeepingFrequency (configurada en zabbix_server.conf)

Después sl deshabilitar la compresión, los nuevos fragmentos que caigan en el período de compresión no se comprimirán. Sin embargo, todos los datos previamente comprimidos permanecerán comprimidos. Para descomprimir fragmentos previamente comprimidos, siga las instrucciones en la Documentación de Timescale.

Al actualizar desde versiones anteriores de Zabbix con TimescaleDB compatible, la compresión no estará habilitada de forma predeterminada.
Comprimir registros anteriores a 7d Este parámetro no puede tener menos de 7 días.

Debido a la inmutabilidad de los fragmentos comprimidos, todos los datos tardíos (por ejemplo, datos retrasados por un proxy) que sean anteriores a este valor serán descartados.