This is a translation of the original English documentation page. Help us make it better.

5 TimescaleDBのセットアップ

概要

ZabbixはTimescaleDBをサポートしています。これは、データを時間ベースのチャンクに自動的に分割するPostgreSQLベースのデータベースソリューションであり、大規模なパフォーマンスの高速化をサポートします。

現在TimescaleDBはZabbixプロキシではサポートされていません。

このページの手順は、TimescaleDBデータベースの作成、または既存のPostgreSQLテーブルからTimescaleDBへの移行に使用できます。

設定

TimescaleDB 拡張機能がデータベース サーバーに既にインストールされていることを前提としています (インストール手順を参照)

次のコマンドを実行して、特定の DB に対して TimescaleDB 拡張機能を有効にする必要があります。

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`

次に、database/postgresql にある timescaledb.sql スクリプトを実行します。 新規インストールの場合、通常のPostgreSQL データベースが初期スキーマ/データで作成された後にスクリプトを実行する必要があります (データベースの作成 を参照)

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

既存のヒストリおよびトレンドデータの移行には、時間がかかる場合があります。 移行中は、Zabbix サーバーとフロントエンドを停止する必要があります。

timescaledb.sql スクリプトは、次のハウスキーピング パラメータを設定します。

  • Override item history period
  • Override item trend period

ヒストリとトレンドに分割されたハウスキーピングを使用するには、これらのオプションを両方とも有効にする必要があります。 ヒストリのみまたはトレンドのみのオーバーライドを個別に有効にすることもできます。

PostgreSQL バージョン 10.2 以降および TimescaleDB バージョン 1.5 以降の場合、timescaledb.sql スクリプトは 2 つの追加パラメーターを設定します。

  • Enable compression
  • Compress records older than 7 days

圧縮は、アイテムのヒストリの保存期間設定を上書きアイテムのトレンドの保存期間設定を上書き のオプションの両方が有効になっている場合にのみ使用できます。 上書き設定が無効で、テーブルに圧縮されたチャンクがある場合、housekeeperはこれらのテーブルからデータを削除せず、データの保存期間 および システム情報 セクションの管理画面に誤った構成に関する警告が表示されます。

これらのパラメータはすべて、インストール後に 管理一般ハウスキーピング で変更できます。

TimescaleDB が提供する timescaledb-tune ツールを実行して、postgresql.conf の PostgreSQL 構成パラメーターを最適化することができます。

TimescaleDB 圧縮

ネイティブの TimescaleDB 圧縮は、PostgreSQL バージョン 10.2 以降では Zabbix 5.0 以降、TimescaleDB によって管理されるすべての Zabbix テーブルでは TimescaleDB バージョン 1.5 以降でサポートされています。 TimescaleDB へのアップグレードまたは移行では大きなテーブルの初期圧縮に時間がかかる場合があります。

圧縮は "timescale" Timescale Community ライセンスでサポートされており、"apache" Apache 2.0 ライセンスではサポートされていないことに注意してください。 Zabbix 6.0.7 以降、Zabbix は圧縮がサポートされているかどうかを検出します。 サポートされていない場合、警告メッセージが Zabbix サーバー ログに書き込まれ、ユーザーはフロントエンドで圧縮を有効にできません。

ユーザーは、圧縮を使用する前にTimescaleDB 圧縮ドキュメントを読解することをお勧めします。

圧縮によって課せられる特定の制限があることに注意してください。具体的には次のとおりです。

  • 圧縮されたチャンクの変更 (挿入、削除、更新) は許可されません
  • 圧縮されたテーブルのスキーマの変更は許可されません。

圧縮設定は、Zabbix フロントエンドの 管理一般設定データの保存期間 セクションの ヒストリとトレンドの圧縮 ブロックで変更できます。

パラメータ デフォルト コメント
圧縮を有効にする 有効 チェックボックスをオンまたはオフにしても、圧縮はすぐにはアクティブ化/非アクティブ化されません。 圧縮はハウスキーパーによって処理されるため、変更は最大 2 倍の「ハウスキーピング頻度」時間 (zabbix_server.conf で設定) で有効になります。

後 圧縮を無効にすると、圧縮期間に入る新しいチャンクは圧縮されません。 ただし、以前に圧縮されたデータはすべて圧縮されたままになります。 以前に圧縮されたチャンクを圧縮解除するには、TimescaleDB ドキュメントの手順に従ってください。

TimescaleDB をサポートする古いバージョンの Zabbix からアップグレードする場合は、 圧縮はデフォルトでは有効になりません。
Compress records older than 7d このパラメーターは 7 日未満にすることはできません。

圧縮されたチャンクの不変性により、この値よりも古いすべての遅延データ (プロキシによって遅延されたデータなど) は削除されます。