【連載Zabbix】マクロコンテキスト機能でディスク別閾値を設定

記事タイトルとURLをコピーする

カスタマーサポート課の伊藤です。
サーバーワークスZabbixスペシャリスト 九龍として
Zabbix3.0、3.2の新機能を活用した監視手法をご紹介していきます。

これまで、2つの機能の具体的な設定方法、利用方法をご紹介をしてきました。
予測機能による対応期間ベースのディスク監視 
Zabbixコンポーネントの暗号化
今回は、ディスクドライブ毎に異なる閾値を指定可能となるマクロコンテキスト機能についてご紹介します。

Zabbix 2.4 までは、LLD(ローレベルディスカバリ)機能やユーザマクロ機能を使うことで、ファイルシステムやネットワークを自動的に探し出して、監視を行うことができました。
しかし、2.4までは探し出されたディレクトリやNICに対してすべて同じ閾値が設定されるため、ホスト単位での閾値変更は出来るのですが、ディスク単位での閾値変更は出来ませんでした。
Zabbix 3.0 で導入されたマクロコンテキスト機能を使うことで、ディスク単位で個別に閾値を変更することが出来るようになりました。

トリガー設定の変更

LLDのトリガーのプロトタイプを変更します。
マクロコンテキストを利用しない状態では、次のようなトリガー設定を行っています。

vfs.fs.size[{#FSNAME},pused].last(0)}>{$DISK.HIH.PE}

 2016-11-25_13h19_37 このトリガーではユーザマクロ {$DISK.HIH.PE} の設定を行う事により、ホスト毎にディスク閾値を変更可能です。ただし、同一ホスト内のすべてのファイルシステムの閾値は同一になります。 ここに、マクロコンテキストを設定します。マクロコンテキストの書式は {$MACRO:コンテキスト文字列}となります。

vfs.fs.size[{#FSNAME},pused].last(0)}>{$DISK.HIH.PE:"{#FSNAME}"}

2016-11-25_14h44_41 LLDのトリガーのプロトタイプに"{#FSNAME}"を追加する事により、マウントポイント名がコンテキストとして挿入されたトリガーが自動作成されます。

vfs.fs.size[C:,pused].last(0)}>{$DISK.HIH.PE:"C:"}
vfs.fs.size[D:,pused].last(0)}>{$DISK.HIH.PE:"D:"}

2016-11-25_14h46_27

マクロの設定

トリガーにコンテキストが設定されたので、ホストマクロにこのコンテキストを設定していきます。
対象のホスト [設定]-[ホスト]-[マクロ]を選択します。
2016-11-25_13h41_48

閾値を変更したいトリガーをコンテキスト込みのユーザマクロで設定し、閾値を記入します。
コンテキストが指定されていない場合、コンテキスト文字列は無視され、ユーザマクロ部分のみで判断され動作します。
上の図では"C:"のコンテキストだけ定義していますので、"D:"のコンテキストが設定されたトリガーでは
"D:"は無視され{$DISK.HIH.PE}として動作します。

2016-11-25_14h47_58

この結果、マクロコンテキストを設定したC:ドライブでは閾値が95%にマクロコンテキストを設定していないD:ドライブは、マクロデフォルト値の90%が閾値となっています。

まとめ

今回はマクロコンテキストの設定方法と実際の動作をご紹介しました。
マクロコンテキスト機能を使うことで、これまで個別に設定できなかったディスク毎やNIC毎の閾値を設定できるようになります。


マクロコンテキストの定義が無い場合は、以前のユーザマクロのまま動作するため、とりあえずテンプレートの設定だけ変えておいて、必要になったらホストマクロを設定する事で、既存の監視に影響を与えることなく導入する事が可能です。


次回はZabbix Advent Calendar 2016 にとして、パーセンタイル関数を用いた統計的監視についてご紹介したいと思います。
それでは次回もお楽しみに!