依存アイテムとは
zabbix3.4以降のバージョンで、アイテムタイプに新たに追加されたものとなります。依存アイテムを、他の通常アイテムを親アイテムとして指定し設定した際に、親アイテムが監視データを取得した同じタイミングで、依存アイテムに設定した値を保存します。
依存アイテムは、マスターアイテム(親アイテム)と異なる更新間隔を設定することはできません。
【依存アイテムのメリット】
・監視データ収集処理による監視対象への負荷軽減
・同一タイミングでのデータ収集
・監視データ収集処理を効率よく行えるため、パフォーマンスの向上。
例)実現したいこと
■ログ監視にて取得したログ中に出力される各英数字を、1つのアイテムとしてそれぞれ値を保存する
【取得するログの例】
2024/04/09 11:13:30 SAMPLE 1 2 3 4 5 6 7 8 9 10 Running 0 11 12 13 14 15
【前提条件】
・各英数字ごとの区切りは「タブ」とする
・ログ監視にて取得するログは、一律(タブ区切り且つ、同じ位置に数字と文字列が出力される)である。
実現方法
・アイテム設定で親アイテム(ログ監視のアイテム)と依存アイテム(子アイテム)を作成します。
・依存アイテムを保存したい値の数分作成し、それぞれの保存前処理に正規表現を設定することで、取得したい値を保存します。
設定方法
実際にzabbixにて設定をしてみる。
■依存アイテムと保存前処理の設定以下参考URL
https://www.zabbix.com/documentation/6.0/jp/manual/config/items/itemtypes/dependent_items
親アイテム
zabbixポータル画面より、アイテム作成を行う。
[設定]⇒[ホスト]より対象のホストの「アイテム」を選択後、
画面右上の「アイテムの作成」を押下する。
■以下設定内容
名前:(任意)
タイプ:zabbixエージェント(アクティブ)
キー:logrt[/var/tmp/test.*_txt]
データ型:ログ
監視間隔:1m
依存アイテム(子アイテム)
上記、親アイテム同様、「アイテムの作成」を押下し作成する。
■以下設定内容
名前:(任意)
タイプ:依存アイテム
キー:(任意の文字列)
データ型:数値(整数)
マスターアイテム:(ホストに設定した親アイテム)
保存前処理(正規表現)
設定した依存アイテムの「保存前処理」タブを押下し、設定する。
■以下設定内容
名前:正規表現
パラメータ:SAMPLE\t(\d{1,})+\t(\d{1,})+\t(\d{1,})+\t(\d{1,})+\t(\d{1,})+\t(\d{1,})+\t(\d{1,})+\t(\d{1,})+\t(\d{1,})+\t(\d{1,})
出力:\1~\10
※正規表現は各アイテム(依存アイテム)につき、1つのみ設定する必要があります。
データ型:数値(整数)
設定内容確認方法
・設定したパラメータ内容で、意図した値が取得できるかのテストが実施可能です。
①設定した「保存前処理」の画面右側「テスト」を押下すると、上記画面が表示される。
②「値」の欄に、取得予定のログ内容を記載する。
③画面右下の「テスト」を押下すると、「結果」の欄に取得できる値が表示される。
実際に取得した値
zabbixのWebUI上にて「監視データ」⇒「最新の値」より、設定したアイテムの値が取得できていることを確認します。
・親アイテムはログを取得。依存アイテムは数値(整数)を取得します。
設定時の注意点
親アイテム
・親アイテムと依存アイテム(子アイテム)のデータ型は異なっていても問題ないが、
監視間隔は親と子で別の監視間隔は設定できません。
依存アイテム
・依存アイテムは、取得したい値の個数分、設定する必要があります。
(1つの依存アイテムに、複数正規表現を設定しても値は取得できません。)
・「出力」には「\1~\10」の10個までした設定できないため、11個目以降の値については、別途正規表現を作成する必要があります。
補足(親アイテムと依存アイテムの組み合わせ)
依存アイテムは、親アイテムのデータ形式(データフォーマット)によって保存前処理の設定を変更することで、簡単に指定したデータの取得が可能となります。
本記事では、親アイテムがタブ区切りのログデータを取得するため、依存アイテムに正規表現設定をしてデータ取得する方法を例として記載していますが、親アイテムと依存アイテムの組み合わせを変えることで、親アイテムが他のデータ形式でも一括で取得することができます。
例)親アイテム:JSONデータの場合、依存アイテムの保存前処理で「JSONPath」を使用する
【親アイテム】
【依存アイテム】
[保存前処理]
zabbixインストール時に標準でインストールされるテンプレート「Remote Zabbix server health」では、実際に依存アイテムの保存前処理に「JSONPath」を使用する方式でデータ取得しています。
※上記画面スクショ参照。
Zabbixに関してのお困りごと、ご相談などございましたら下記お問い合わせよりご連絡ください。