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 の写真

実際にはやってみていませんが、条件によっては実現できる可能性
があるかもということで情報を書かせて頂きます。

Zabbix 2.4以降であれば、ディスカバリルールのフィルターに複数
の条件を指定できるようになっています。
そこで、ドライブによって別のディスカバリルールで条件が合致す
るような設定にすることが考えられます。

例えば、書かれていた

 例)Cドライブ:20% / Dドライブ:10% / Eドライブ:5%

を実現するとなると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 の写真

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} ⇒ ??

上記のような設定で試してみたいと思います。
ありがとうございました!