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