Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

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

Pre-requisitos: Extensión TimescaleDB de una versión compatible instalada en el servidor de base de datos. Para instrucciones de instalación, consulte la documentación de TimescaleDB.

Habilite la extensión TimescaleDB para la base de datos específica ejecutando:

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

La ejecución de este comando requiere 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 suesquema CASCADE;" | sudo -u postgres psql zabbix

Luego ejecute el script postgresql/timescaledb/schema.sql. Para nuevas instalaciones, el script debe ejecutarse después de que la base de datos PostgreSQL regular haya sido creada 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

Por favor, 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 superiores. Independientemente de esta advertencia, la configuración se completará correctamente.

La migración de los datos existentes de histórico, tendencias y registro de auditoría puede llevar mucho tiempo. El servidor y la interfaz de Zabbix deben estar detenidos durante el período de migración.

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

  • Anular el período de histórico de ítem
  • Anular el período de tendencias de ítem

Para utilizar la limpieza particionada para histórico y tendencias, ambas opciones deben estar habilitadas. También es posible habilitar la anulación individualmente, ya sea solo para histórico o solo para tendencias.

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

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

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 de TimescaleDB

La compresión nativa de TimescaleDB es compatible con todas las tablas de Zabbix que son hypertables 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 bajo la licencia Timescale Community "timescale" y no es compatible bajo la licencia Apache 2.0 "apache". Si Zabbix detecta que la compresión no es compatible, 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 familiarizarse con la compresión en la documentación de TimescaleDB antes de utilizar la compresión.

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

  • No se permiten modificaciones (inserciones, eliminaciones, actualizaciones) en fragmentos comprimidos
  • No se permiten cambios de esquema en tablas comprimidas.

Los ajustes de compresión pueden modificarse en el bloque Compresión de histórico, tendencias y registro de auditoría en la sección AdministraciónMantenimiento de la interfaz de Zabbix.

Parámetro Por defecto Comentarios
Habilitar compresión Habilitado Marcar o desmarcar la casilla no activa/desactiva la compresión inmediatamente. Dado que la compresión es gestionada por el Mantenedor, los cambios tendrán efecto en hasta 2 veces las horas de HousekeepingFrequency (establecido en zabbix_server.conf)

Después de deshabilitar la compresión, los nuevos fragmentos que entren 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 TimescaleDB.

Al actualizar desde versiones anteriores de Zabbix con soporte para TimescaleDB, la compresión no se habilitará por defecto.
Comprimir registros anteriores a 7d Este parámetro no puede ser inferior a 7 días.

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

Para un mejor rendimiento en la actualización de tendencias, puede que desee reducir el "chunk_time_interval" para las tablas trends y trends_uint de 30 días a 7 días o menos, dependiendo de cuántos elementos utilicen tendencias. El propósito de este ajuste es adherirse a las mejores prácticas de TimescaleDB y garantizar que el tamaño del fragmento permanezca dentro de los recursos disponibles del sistema.