Mounted filesystem discovery について
お世話になります。
Mounted filesystem discoveryの設定について教えて下さい。
私共の環境ではユーザクォータを設定しておりまして、
ユーザクォータの数分、アイテムが自動で追加されます。
(ユーザが多いため、数百〜1000前後のアイテムが追加されてしまいます)
ユーザクォータは別途管理しているため自動追加から除外したいと考えています。
おそらく、FSNAME の正規表現を修正すればいいのではと思いますが、
そもそも、FSNAME はどこの値を参照して居るのでしょうか。
何かヒントをいただければ大変助かります。
よろしくお願いいたします。
kodai - 投稿数: 1341
zabbix_getを利用して以下のようにコマンドを実行すると、対象のエージェントからLLDの生データを取得することができます。
$ zabbix_get -s <監視対象のIPアドレス> -k vfs.fs.discovery
結果はJSON形式で返ってくるのですが、その中に{#FSNAME}や{#FSTYPE}の値が含まれていると思います。LLD設定画面の正規表現やアイテムで利用できるマクロはこの値を参照しています。
i.takeshi2222 - 投稿数: 12
ご教示 ありがとうございます。
原理が理解出来ました。
度々で申し訳ないのですが、
ディスカバリルール の フィルタ設定で、抽出対象が絞れますが、
{#FSTYPE} と {#FSNAME} の 2つのマクロで正規表現を記載することは現状可能でしょうか。
※利用バージョン:Zabbix 2.0.2
よろしくお願いいたします。
fripper - 投稿数: 495
i.takeshi2222 さん
残念ながら、現行の版では、複数のフィルターを利用した Low Level Discovery は
サポートされていません
次期バージョンへの機能要望として、以下のようにリクエストが登録されています
https://support.zabbix.com/browse/ZBXNEXT-581
Vote していただくと、開発チームの方々に対応して頂けるかもしれません
#かくいう私も同様の希望を持っています‥
i.takeshi2222 - 投稿数: 12
fripper さん
ご確認いただき有難うございました。
複数のフィルタ設定出来ないという事がわかりました。
今後のアップデートに期待します!!
fripper - 投稿数: 495
zabbix_agentd が稼働しているホスト上で、zabbix_agentd が返す Low Level Discovery の結果に対して、
php を使って、強制的にフィルタリングを掛けるスクリプトを作ってみました
このスクリプトを、zabbix_agentd.conf の UserParameter から呼び出されるアイテムとして
登録してやることで、ディスカバリの結果を書き換えます
====
UserParameter=user.vfs.fs.discovery[*], /usr/local/php/bin/php /usr/local/zabbix/script/discovery.php $1
====
動作としては、以下のような流れになります
1.zabbix_server が、 [user.vfs.fs.discovery] というキーについて聞いてくる
2.UserParameter 句で定義したとおり、phpスクリプトが起動する
3.php スクリプト内で、指定されたIPに対して、zabbix_get を利用して vfs.fs.discovery を取得する
4.スクリプト内で json 記述を解析し、php スクリプト先頭付近に書かれている正規表現に従って
除外したい項目が除外される
5.結果が json 形式となって、zabbix_server へ送り返される
fripper - 投稿数: 495
追記>
zabbix_server の Web UI で、ディスカバリルールを登録する際のキーを
vfs.fs.discovery から user.vfs.fs.discovery へ変更する必要があります
また、ターゲット側ホストに php が必要です
さらに、ターゲット側ホストの zabbix_agentd.conf 内、Server= の項目に
自ホストのIP、もしくは 127.0.0.1 を記載しておいて、自ホストからの zabbix_get に
応答できるようにする必要もあります
制約多くて申し訳ない‥汗