Zabbix supports TimescaleDB, a PostgreSQL-based database solution of automatically partitioning data into time-based chunks to support faster performance at scale.
Instructions on this page can be used for creating TimescaleDB database or migrating from existing PostgreSQL tables to TimescaleDB.
We assume that TimescaleDB extension has been already installed on the database server (see installation instructions).
TimescaleDB extension must also be enabled for the specific DB by executing:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
Running this command requires database administrator privileges.
echo "CREATE EXTENSION IF NOT EXISTS timescaledb SCHEMA yourschema CASCADE;" | sudo -u postgres psql zabbix
Then run the
timescaledb.sql script located in database/postgresql. For new installations the script must be run after the regular PostgreSQL database has been created with initial schema/data (see database creation):
cat timescaledb.sql | sudo -u zabbix psql zabbix
The migration of existing history and trend data may take a lot of time. Zabbix server and frontend must be down for the period of migration.
timescaledb.sql script sets the following housekeeping parameters:
In order to use partitioned housekeeping for history and trends, both these options must be on. It's possible to use TimescaleDB partitioning only for trends (by setting Override item trend period) or only for history (Override item history period).
For PostgreSQL version 10.2 or higher and TimescaleDB version 1.5 or higher, the
timescaledb.sql script sets two additional parameters:
All of these parameters can be changed in Administration → General → Housekeeping after the installation.
Native TimescaleDB compression is supported starting from Zabbix 5.0 for PostgreSQL version 10.2 or higher and TimescaleDB version 1.5 or higher for all Zabbix tables that are managed by TimescaleDB. During the upgrade or migration to TimescaleDB, initial compression of the large tables may take a lot of time.
Note, that there are certain limitations imposed by compression, specifically:
Compression settings can be changed in the History and trends compression block in Administration → General → Housekeeping section of Zabbix frontend.
|Enable compression||Enabled|| Checking or unchecking the checkbox does not activate/deactivate compression immediately. Because compression is handled by the Housekeeper, the changes will take effect in up to 2 times
After disabling compression, new chunks that fall into the compression period will not be compressed. However, all previously compressed data will stay compressed. To uncompress previously compressed chunks, follow instructions in TimescaleDB documentation.
When upgrading from older versions of Zabbix with TimescaleDB support, compression will not be enabled by default.
|Compress records older than||7d|| This parameter cannot be less than 7 days.
Due to immutability of compressed chunks all late data (e.g. data delayed by a proxy) that is older than this value will be discarded.