这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.

4 TimescaleDB 配置

概述

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

目前时序数据库不支持Zabbix proxy。

本页上的说明可用于创建TimescaleDB数据库或从现有PostgreSQL表迁移到TimescaleDB。

配置

我们假设TimescaleDB扩展项已经安装在数据库服务器上(查看 安装说明)。

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

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

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

如果你使用的数据库schema不是 'public' 模式则需要通过以上命令添加SCHEMA子句,例如:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix

然后运行位于database/postgresql中的timescaledb.sql脚本。对于新的安装,必须在使用初始schema/data创建常规PostgreSQL数据库之后再运行脚本。(查看 数据库创建):

cat timescaledb.sql | sudo -u zabbix psql zabbix

现有历史记录和趋势数据的迁移可能需要很多时间。在迁移期间。Zabbix Server和前端必须关闭。

timescaledb.sql脚本设置以下内置数据管理housekeeping 参数:

  • 覆盖监控项趋势周期Override item history period
  • 覆盖监控项历史周期Override item trend period

为了将用于历史和趋势的内置数据管理进行分区,这两个选项都必须启用。可以将TimescaleDB分区仅用于趋势(通过设置覆盖监控项趋势周期Override item trend period)或仅用于历史记录(覆盖监控项历史周期Override item history period)。

对于PostgreSQL 10.2版以及TimescaleDB 1.5版或更高版本,timescaledb.sql 脚本设置了两个附加参数:

  • 启用压缩
  • 压缩七天以上的记录

所有这些参数都可以于安装之后在 AdministrationGeneralHousekeeping 进行修改。

<note tip>您可能需要运行TimescaleDB提供的timescaledb-tune工具对postgresql.conf中的PostgreSQL配置参数进行优化。 :::

Compression can be used only if both Override item history period and Override item trend period options are enabled.

All of these parameters can be changed in AdministrationGeneralHousekeeping after the installation.

You may want to run the timescaledb-tune tool provided by TimescaleDB to optimize PostgreSQL configuration parameters in your postgresql.conf.

时序数据库压缩

从Zabbix 5.0开始,原生数据库压缩已在PostgreSQL 10.2版以及 TimescaleDB 1.5版或更高版本的时序数据库所管理的全部Zabbix表中得到支持。 在升级或迁移到时序数据库的过程中,大型表的初始压缩可能需要很多时间。

推荐用户在使用压缩之前熟悉 TimescaleDB 压缩说明文档。

注意, 压缩是有一定限制的, 确切地说:

  • 压缩块的编辑 (插入,删除,更新) 是不支持的
  • 压缩表的架构更改是不支持的

压缩设置可以在位于Zabbix前端 AdministrationGeneralHousekeeping 中的 History and trends compression 项中修改。

参数 默 注释
Enable compression Enabled 选中或取消选中该复选框不会立即激活/禁用压缩。由于压缩是由内置数据管理机制Housekeeper处理的,因此更改最多将在2倍HousekeepingFrequency时间后生效 (zabbix_server.conf中设置)

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

从具有TimescaleDB支持的旧版Zabbix升级时,默认情况下不会启用压缩。
Compress records older than 7d 此参数不能少于7天。

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