LLDにてディスクパーティション毎の異なる閾値設定
いつもお世話になっております。
ご存知の方いらっしゃいましたら、ご教授頂きたいです。
Windowsシステムに対して、Zabbixデフォルトテンプレートにて、
各ディスクパーティションの空き容量監視を行っています。
ただ、一部システムにて、一部パーティションのみ監視閾値を変更したいと思っています。
各ホスト毎に個別にアイテム、トリガー指定すれば実現は出来るのですが
出来れば、LLDを使用して汎用的に作れないものかと考えていますが、良い案が思い浮かびません。
【実現したい事】
・各パーティションに対して、個別に閾値を指定したい
例)Cドライブ:20% / Dドライブ:10% / Eドライブ:5%
・ホストに対する個別設定ではなく、LLDにて汎用的に設定したい
【現状の設定】
・デフォルトテンプレート[Template OS Windows]の以下部分を修正
- Mounted filesystem discoveryのトリガーのプロトタイプのトリガー判定条件をマクロ化(空き%閾値)
- Templateマクロに上記マクロのデフォルト値を設定
- デフォルト値以外で監視したいホストには、ホストマクロで上記マクロで個別設定
※ここまでは出来ていますが、このやり方では、ホストマクロで設定した閾値が
全てのパーティションの閾値となってしまい、要件を満たせていません…。
【環境】
・Zabbix:Zabbix 2.4.3
・OS:CentOS 6.5
ご存知の方いらっしゃいましたら、ご教授の程お願い致します。
TNK - 投稿数: 4744
実際にはやってみていませんが、条件によっては実現できる可能性
があるかもということで情報を書かせて頂きます。
Zabbix 2.4以降であれば、ディスカバリルールのフィルターに複数
の条件を指定できるようになっています。
そこで、ドライブによって別のディスカバリルールで条件が合致す
るような設定にすることが考えられます。
例えば、書かれていた
を実現するとなると3つのディスカバリルールにすることで実現で
きるかもしれません。
ディスカバリルール1:
フィルター
{#FSTYPE} 一致する @File systems for discovery
AND
{#FSNAME} 一致する C:
トリガーのプロトタイプ
{Template OS Windows:vfs.fs.size[{#FSNAME},pfree].last(0)}<20
ディスカバリルール2:
フィルター
{#FSTYPE} 一致する @File systems for discovery
AND
{#FSNAME} 一致する D:
トリガーのプロトタイプ
{Template OS Windows:vfs.fs.size[{#FSNAME},pfree].last(0)}<10
ディスカバリルール3:
フィルター
{#FSTYPE} 一致する @File systems for discovery
AND
{#FSNAME} 一致する E:
トリガーのプロトタイプ
{Template OS Windows:vfs.fs.size[{#FSNAME},pfree].last(0)}<5
色々と分けるのも面倒なので、OSで標準的に利用するドライブとオ
プションでマウントするドライブとを分けて、2種類くらいにまと
めたほうがいいかもしれません。
やってみてはいないので、試してみて頂ければと思います。
TF0814 - 投稿数: 49
TNK様
回答ありがとうございます。
なるほど…!フィルターを使えば、ある程度行けそうですね。
正規表現を利用して、Cドライブの場合の閾値と、それ以外の時の閾値を
変更出来るようにしようかと思います。
[正規表現A]
^C: 結果が真
[正規表現B]
^C: 結果が偽
[Discoveryルール1]
マクロ
{$SYSDISK_THRESHOLD} ⇒ 20
フィルター
{#FSTYPE} 一致する @File systems for discovery
AND
{#FSNAME} 一致する @正規表現A
トリガーのプロトタイプ
{Template OS Windows:vfs.fs.size[{#FSNAME},pfree].last(0)}<{$SYSDISK_THRESHOLD}
[Discoveryルール2]
マクロ
{$OTHERDISK_THRESHOLD} ⇒ 10
フィルター
{#FSTYPE} 一致する @File systems for discovery
AND
{#FSNAME} 一致する @正規表現B
トリガーのプロトタイプ
{Template OS Windows:vfs.fs.size[{#FSNAME},pfree].last(0)}<{$OTHERDISK_THRESHOLD}
[ホストマクロ] ※デフォルトから変更する場合
{$SYSDISK_THRESHOLD} ⇒ ??
{$OTHERDISK_THRESHOLD} ⇒ ??
上記のような設定で試してみたいと思います。
ありがとうございました!