4 ヒストリとトレンド
概要
履歴とトレンドは、Zabbixで収集したデータを保存する2つの方法です。
履歴は収集した各値をそのまま保持するのに対し、トレンドは1時間単位の平均情報を保持するため、必要なリソースが少なくなります。
履歴の保持
履歴を何日間保持するかは、以下で設定できます。
これより古いデータは、ハウスキーパーによって削除されます。
一般的には、履歴の保持日数は可能な限り最小限にし、そうすることで大量の履歴値によってデータベースに過度な負荷をかけないようにすることを強く推奨します。
長期間の履歴を保持する代わりに、トレンドデータをより長く保持できます。
例えば、履歴は14日間、トレンドは5年間保持できます。
履歴データとトレンドデータで必要な容量がどの程度異なるかは、データベースサイズのページを参照すると把握できます。
履歴の保持期間を短くしても、グラフでは古いデータを引き続き確認できます。これは、古いデータの表示にグラフがトレンド値を使用するためです。
履歴が「0」に設定されている場合、アイテムは依存アイテムとインベントリのみを更新します。
トリガーの評価は履歴データのみに基づいて行われるため、トリガー関数は評価されません。
履歴を保持する別の方法として、ロード可能モジュールの履歴エクスポート機能の使用を検討してください。
トレンドの保持
トレンドは、数値データ型について1時間ごとの最小値、最大値、平均値、および値の総数を保存する、組み込みの履歴データ削減メカニズムです。
トレンドを何日間保持するかは、次の場所で設定できます。
- アイテムのプロパティフォーム
- アイテムの一括更新時
- Housekeeperタスクの設定時
通常、トレンドは履歴よりもはるかに長く保持できます。
それより古いデータはhousekeeperによって削除されます。
Zabbixサーバーは、データが流入するにつれて、実行時にトレンドキャッシュへトレンドデータを蓄積します。
サーバーは、次の状況で各アイテムの前の時間のトレンドをデータベースに書き出します(Webインターフェースはそこから参照します)。
- サーバーがそのアイテムの現在の時間帯における最初の値を受信したとき
- 現在の時間帯の残り時間が5分以下で、なおそのアイテムの現在の時間帯の値がまだ存在しないとき
- サーバーが停止するとき
グラフ上でトレンドを確認するには、少なくとも次の時間帯の開始まで(アイテムが頻繁に更新される場合)、遅い場合は次の時間帯の終了まで(アイテムがまれにしか更新されない場合)待つ必要があります。つまり、最大で2時間です。
サーバーがトレンドキャッシュを書き出す際、その時間帯のトレンドがすでにデータベース内に存在する場合(たとえば、サーバーが時間帯の途中で再起動された場合)、サーバーは単純なinsertではなくupdate文を使用する必要があります。
そのため、大規模な環境で再起動が必要な場合は、トレンドデータの重複を避けるために、ある時間帯の終わりにサーバーを停止し、次の時間帯の始まりに起動することが望まれます。
履歴テーブルは、トレンド生成には一切関与しません。
トレンドが'0'に設定されている場合、Zabbixサーバーはトレンドをまったく計算せず、保存もしません。
トレンドは、元の値と同じデータ型で計算および保存されます。
その結果、unsignedデータ型の値の平均値計算は丸められ、値の間隔が小さいほど結果の精度は低くなります。
たとえば、アイテムの値が0と1の場合、平均値は0.5ではなく0になります。
また、サーバーの再起動により、現在の時間帯におけるunsignedデータ型の平均値計算の精度が失われる可能性があります。