6 TimescaleDB 配置

概述

Zabbix支持TimescaleDB,这是一种基于PostgreSQL的数据库解决方案,可自动将数据分为基于时间的块,以支持更快的大规模性能。

目前,Zabbix proxy不支持 TimescaleDB 。

此章节会介绍创建 TimescaleDB 数据库或从现有的 PostgreSQL 表迁移到 TimescaleDB。

配置

我们假设 TimescaleDB 扩展已在数据库服务器上安装(请参阅 Timescale 文档 中的安装说明)。

还必须通过执行以下命令为特定的数据库启用 TimescaleDB 扩展:

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

运行此命令需要数据库管理员权限。

如果您使用的不是“public”数据库模式,则需要在上述命令中添加 SCHEMA 子句。例如: echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix

对于新安装,运行 postgresql/timescaledb/schema.sql 脚本。 该脚本必须在使用初始模式/数据创建常规 PostgreSQL 数据库之后运行(请参阅 数据库创建)。

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

对于现有安装,从以前的版本(例如,从 6.0 升级到 7.0.0 或从 6.4 升级到 7.0.2,或从 7.0.0 升级到 7.0.2)升级到 Zabbix 7.0.0 或 7.0.2 时:

  1. 启动 Zabbix 服务器;这将升级现有的数据库。
  2. 检查服务器日志文件,确认数据库升级成功;如果成功,停止 Zabbix 服务器并进行下一步。
  3. 运行 postgresql/timescaledb/schema.sql 脚本(自 Zabbix 7.0.0 起,脚本的位置和名称已从 postgresql/timescaledb.sql 更改为 postgresql/timescaledb/schema.sql)。 请注意,如果在未运行此脚本的情况下启动 Zabbix 服务器,它将记录警告。

在 TimescaleDB 2.9.0 及更高版本上运行 schema.sql 脚本时,请忽略告知未遵循最佳实践的警告消息。 尽管有此警告,配置仍将成功完成。

现有历史、趋势和审计日志数据的迁移可能需要大量时间。 在迁移期间,Zabbix 服务器和前端必须关闭。

schema.sql 脚本设置了以下清理参数:

  • 覆盖项目历史周期
  • 覆盖项目趋势周期

为了对历史和趋势使用分区清理,这两个选项都必须启用。也可以单独为历史或趋势启用覆盖。

postgresql/timescaledb/schema.sql 脚本还设置了两个额外的参数:

  • 启用压缩
  • 压缩超过 7 天的记录

仅当同时启用 覆盖监控项历史周期覆盖监控项趋势周期 选项时才能使用压缩。 如果覆盖被禁用并且表具有压缩块,管家将不会从这些表中删除数据,并且有关不正确配置的警告将显示在 管家 和 [系统信息] (/manual/web_interface/frontend_sections/reports/status_of_zabbix) 部分。

安装后,所有这些参数都可以在 管理通用管家 中更改。

您可能需要运行 TimescaleDB 提供的 timescaledb-tune 工具来优化 postgresql.conf 中的 PostgreSQL 配置参数。

TimescaleDB 压缩

TimescaleDB 的原生压缩支持所有作为 TimescaleDB 超表的 Zabbix 表。在升级或迁移到 TimescaleDB 期间,对大型表的初始压缩可能需要大量时间。

请注意,压缩在“timescale”Timescale 社区许可证下受支持,而在“apache”Apache 2.0 许可证下不受支持。如果 Zabbix 检测到不支持压缩,会将警告消息写入 Zabbix server 日志,并且用户无法在前端启用压缩。

在使用压缩之前,建议用户在 Timescale 文档 中熟悉压缩相关内容。

请注意,压缩存在一定的限制,具体如下:

  • 不允许对压缩块进行修改(插入、删除、更新)
  • 不允许对压缩表进行模式更改。

压缩设置可以在 Zabbix 前端的“管理”→“清理”部分的“历史和趋势压缩”块中更改。

参数默认值注释
启用压缩启用选中或取消选中复选框不会立即激活/停用压缩。因为压缩由管理员处理,更改将在最多 2 倍的“HousekeepingFrequency”小时内生效(在 zabbix_server.conf 中设置)

禁用压缩后,落入压缩周期的新块将不会被压缩。但是,所有先前压缩的数据将保持压缩状态。要解压缩先前压缩的块,请遵循 Timescale 文档 中的说明。

从支持 TimescaleDB 的 Zabbix 旧版本升级时,默认情况下不会启用压缩。
压缩超过7 天此参数不能小于 7 天。

由于压缩块的不可变性,所有晚于此值的延迟数据(例如,由代理延迟的数据)都将被丢弃。