サイトアイコン IT NEWS

【Zabbix】LLD(ローレベルディスカバリ)でディスク使用率監視

zabbix-lld-disk-util

例えば、ZabbixWindowsのCドライブの使用率を監視する際、アイテムキーのパラメーターで監視対象(Cドライブ)を指定する方法もありますが、複数のホストでテンプレートを使い回したい場合でも、他のホストのドライブ数や割り当て方(D、E、Fドライブ等)もそれぞれ異なると、1つ1つパラメーターでドライブを指定することはとても面倒になります。
そこで、ディスク自動で検出して監視してくれる機能がLLDローレベルディスカバリ)です!

LLDでディスク使用率監視

ディスカバリルールの作成

ディスク使用率監視で設定するLLDローレベルディスカバリ)は、マウントされたディスク自動で検出するディスカバリルールと、検出されたそれぞれのディスクを監視するためのアイテムとトリガーのプロトタイプの設定を行います。

ディスク監視で必要なディスカバリ設定
  • ディスカバリルール
  • アイテムのプロトタイプ
  • トリガーのプロトタイプ

その他にも、グラフやホストのプロトタイプもありますが、今回は使用しませんので割愛させていただきます。
自動でホストを検出するディスカバリもありますので便利ですよ!

ディスカバリルールの作成

初めに、自動でディスクを検出するためのディスカバリルールを作成します。
ここで設定した内容に従って、Zabbix自動的にディスクを検出します。

  • [設定] → [テンプレート(またはホスト)]に移動します
  • テンプレートの行のディスカバリをクリックします
  • 画面の右上隅にある[ディスカバリールールの作成]をクリックします
  • フォームにディスカバリルールのパラメーターを入力します

設定内容は以下の通りです。
記載のない設定に関しては自身の環境に置き換えて設定してください。(デフォルトで問題ないです)

設定項目設定値説明・注意点
名前<マウントされたファイルシステムの検出>(任意の名前)
タイプZabbixエージェントZabbixエージェント(アクティブ)も可
キーvfs.fs.discovery(任意のキー)
監視間隔<1h>滅多に変更しないので長くてOK
ディスカバリルール

設定項目の「タイプ」以外は任意になりますね。。
こちらはLinuxもWindowsも共通設計になりますが、次項の「フィルタ」はご注意ください。

フィルタ

ディスカバリルールでは、フィルタがとても重要になってきます。
例えば、なんのフィルタもかけずにディスクを検出すると、監視不要なものまで全て検出してしまい、視認性が悪くなってしまうと共に、それを複数のホストで監視しようものなら、Zabbixの負荷も高くなってしまいます。
幸い、既に標準のテンプレートでも用意されていますので、そちらを拝借しましょう!

マクロ条件正規表現正規表現マクロの内容
{#FSNAME}一致する{$VFS.FS.FSNAME.MATCHES}.+
{#FSNAME}一致しない{$VFS.FS.FSNAME.NOT_MATCHES}^(/dev|/sys|/run|/proc|.+/shm$)
{#FSTYPE}一致する{$VFS.FS.FSTYPE.MATCHES}^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$
{#FSTYPE}一致しない{$VFS.FS.FSTYPE.NOT_MATCHES}^\s$
フィルタ(Linux)

上記はLinuxディスクを検出するためのフィルタになります。
Windowsの場合は、上記に加え、以下のフィルタも追加してください。

マクロ条件正規表現正規表現マクロの内容
{#FSDRIVETYPE}一致する{$VFS.FS.FSDRIVETYPE.MATCHES}fixed
{#FSDRIVETYPE}一致しない{$VFS.FS.FSDRIVETYPE.NOT_MATCHES}^\s$
フィルタ(Windows)

以上でディスカバリルールの設定は完了です!
次に、検出したディスクを監視をするために「アイテムのプロトタイプ」と「トリガーのプロトタイプ」を作成していきましょう。

アイテムのプロトタイプの作成

アイテムのプロトタイプでは、Zabbixで自動的に検出した全てのディスク監視設定を共通的に行うことができます。
冒頭でも少し触れましたが、例えば、ディスクが複数ある場合、LLDを利用しなければディスクの数だけアイテムを設定しなければなりませんが、アイテムのプロトタイプを使えば、それぞれのLLDで検出したディスクアイテムZabbixが自動で作成します!

設定項目設定値説明・注意点
名前<{#FSNAME}:ディスクの使用率>(任意の名前)※LLDマクロを使うと尚良し
タイプZabbixエージェントZabbixエージェント(アクティブ)も可
キーvfs.fs.size[{#FSNAME},pused]LLDマクロ{#FSNAME}とpusedオプションを使用する
データ型数値(浮動小数)○○率の場合は浮動小数
単位%○○率なので%(監視データを参照する際に付く)
監視間隔<1m>(任意の間隔。トリガーも考慮する)
ディスク使用率監視(アイテムのプロトタイプ)

アイテムのプロトタイプディスカバリルールとは違って、OSの種類に関係なくこちらの監視設定で問題ありません。

トリガーのプロトタイプの作成

トリガーのプロトタイプアイテムのプロトタイプと同じように、1つ設定していたら、Zabbixが検出したディスク全てに自動で設定されます。
Zabbixの標準テンプレートで設定されているトリガーのプロトタイプでは、ディスク使用率の他に、ディスクの空き容量や未来を予測して障害通知するような設定をしていますが、ここでは単純に一般的な監視設定だけ紹介します。

設定項目設定値説明・注意点
名前<{#FSNAME}: ディスク容量が非常に少ない (使用率 > {$VFS.FS.PUSED.MAX.CRIT:”{#FSNAME}”}%)>LLDマクロを利用して、どのディスクかでわかる名前にしましょう
深刻度<軽度の障害>(任意の深刻度)
条件式last(/Template Resource/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:”{#FSNAME}”}最新の値の最小値が90%以上なら障害イベントを発生
ディスク使用率監視(トリガーのプロトタイプ)

トリガーのプロトタイプで使用しているユーザーマクロは、閾値用のマクロだけです。

マクロ説明
{$VFS.FS.PUSED.MAX.CRIT}90閾値(90%以上で検知させる場合に使用)
閾値設定用のユーザーマクロ

ディスク使用率監視の設定は以上で完了です!
あとは設定した通りにディスクが検出されて、監視データが取得できるか確認してみてくださいね!

モバイルバージョンを終了