SNMPエージェントを使用してNFS容量監視を行った際、NFS名を自動で取得し名前に反映する方法について

よろしくお願いします。

環境
CentOS 6.6
Zabbix 2.4.6

SNMPv2エージェントを用いてNFSの容量監視を考えています。
NFSだと通常MIBでは取得できないので拡張MIBを使用して取得します。
値の取得は正常にできていますが、複数のサーバのNFS名が異なるにも関わらずすべて名前が同じためわかりずらいです。
NFSのパーティション名を自動取得して名前の表示に使用することはできないでしょうか。

NFSの容量は下記のMIBで取得しています。
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."nfs-usage"

NFSの名前は下記のMIBで取得ができます。
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."nfs-name"

アイテムの名前
Partition $1 capacity ($2)

キー
pt.st[percent,"nfs1_name"]

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

同様のOIDで応答してくれる環境が無いのでわかりませんが、書か
れていたOIDにインデックスを付与した形でそれぞれのパーティシ
ョンの情報が取得できるのであれば、ローレベルディスカバリを使
用して実現できるかもしれません。

ただし、pt.st[]というキーはZabbixの標準ではありませんので、
そのキーを指定した場合の処理がそのままローレベルディスカバリ
を利用した場合に使えるかはわかりません。

ローレベルディスカバリの仕組みと、書かれていたOIDで取得でき
るデータとを見比べて、同様にインデックスで管理できそうか確認
してみてください。

https://www.zabbix.com/documentation/2.2/jp/manual/discovery/low_level_d...
https://www.zabbix.com/documentation/2.4/manual/discovery/low_level_disc...

ありがとうございます。
ローレベルディスバリを使用してみましたがうまくいきません。
(やり方が間違っているのかもしれませんが)

NET-SNMP-EXTEND-MIB::nsExtendOutputFull."nfs-usage"
でNFS使用率 「50%」
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."nfs-name"
でNFS名「partition_NFS」を取得できます。

やりたいことは「監視データ」>「概要」などでデータを参照した際、
アイテム名 : Usage (partion_NFS)
値 : 50%
と表示することです。

ローレベルディスカバリでは"nfs-usage""nfs-name"は{$SNMPINDEX}、50%,partition_NFSが{$SNMPVALUE}になると思うのですが、
nfs-usageの時、キーにnfs-nameの{$SNMPVALUE}を持ってくることができれば実現できると思うのですがその方法がわかりません。

拡張MIBで話をしていると分かりずらいと思うのでZABBIXマニュアルに記載のあった例で記載します。
https://www.zabbix.com/documentation/2.2/jp/manual/discovery/low_level_d...

$ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: WAN
IF-MIB::ifDescr.2 = STRING: LAN1
IF-MIB::ifDescr.3 = STRING: LAN2

上記の時{$SNMPINDEX}=1の時、{$SNMPVALUE})=WAN、{$SNMPINDEX}=2の時{$SNMPVALUE}=LAN1、{$SNMPINDEX}=3の時{$SNMPVALUE}=LAN2になると思いますが、{$SNMPINDEX}が1と3の時の値を組み合わせて、値LAN2を取得する際のキー名にWANを自動的に代入したいのです。

ユーザー TNK の写真

複数のNFSマウントポイントがあってインデックスで管理されてい
るのではないのですか?

複数の項目がインデックスで管理されていないのであれば、
LLDでは不可能です。

インデックスで管理というのは具体的にはどういうことでしょうか?
SNMPINDEXのことですか?

ユーザー TNK の写真

onigirimogumoguさんがあげられた例であれば、複数のネットワー
クインターフェースそれぞれに対して、1、2、3と番号が振られて
いると思います。

その1、2、3というインデックスの値を使用して、それぞれのイン
ターフェースの名前やトラフィックを取得することが可能なので、
LLDを使用してアイテムの自動設定ができるのです。

現時点のZabbixでは、LLD以外の方法で、アイテム名に動的に
他のアイテムで取得してきた値を利用することはできません。

すべての監視対象サーバのsnmpd.confのextend行を同一にできればと考えましたが、無理なんですね。
どちらにしろ監視対象サーバのsnmpd.confに追記する必要があるので、サーバ個別にインデックス名に固有のNFS名を記載することで解決することにします。

ありがとうございました。

ユーザー TNK の写真

nfsのマウントポイントが1つだけで、各サーバが同じOIDで名前や容量を
取得できる場合、アイテム名ではなく、グラフ名にならアイテムの値を
利用することができます。

マクロを利用するのですが、詳細は、以下のURLにある情報をご参照
ください。
https://www.zabbix.com/forum/showthread.php?t=50843