web-dev-qa-db-ja.com

snmp:長いifDescrの代わりに短いインターフェース名を取得する(再び)

私は cricket を使用して、Debianベースのサーバーの簡単な監視(ネットワークデバイスを含む)を行っています。

インターフェースは名前で識別され(例:eth0eth1、...)、クリケットはIF-MIB::ifDescrで検索することにより、これらの名前を適切なOIDにマップします。

$ snmpwalk -Os -c public -v 1 wheezy 1.3.6.1.2.1.2.2.1.2
iso.3.6.1.2.1.2.2.1.2.1 = STRING: "lo"
iso.3.6.1.2.1.2.2.1.2.2 = STRING: "eth0"
iso.3.6.1.2.1.2.2.1.2.3 = STRING: "eth1"

今日、マシンをDebian/jessieにアップグレードするまで、すべてがうまく機能しました。報告されたインターフェース名は、ブランドの長い説明です。

$ snmpwalk -Os -c public -v 1 jessie 1.3.6.1.2.1.2.2.1.2
iso.3.6.1.2.1.2.2.1.2.1 = STRING: "lo"
iso.3.6.1.2.1.2.2.1.2.2 = STRING: "Intel Corporation 82576 Gigabit Network Connection"
iso.3.6.1.2.1.2.2.1.2.3 = STRING: "Intel Corporation 82576 Gigabit Network Connection"

長い名前は十分に煩わしいと思いますが、一意ではなくなったため、役に立たなくなります。問題のマシンには2つの同一のネットワークカードが組み込まれているため、同じ名前を2回取得するだけです。

snmpdshortインターフェース名を報告させる方法はありますか?

2
umläute

インターフェイスにIF-MIB::ifDescrを使用するnameは単に間違っているようです。 OIDの名前が示すように、これは(一意の)名前ではなく、インターフェイスの(詳細な)説明を意味します。

使用する適切なOIDはIF-MIB::ifNameです

$ snmpwalk -Os -c public -v 1 wheezy 1.3.6.1.2.1.31.1.1.1.1
iso.3.6.1.2.1.31.1.1.1.1.1 = STRING: "lo"
iso.3.6.1.2.1.31.1.1.1.1.2 = STRING: "eth0"
iso.3.6.1.2.1.31.1.1.1.1.3 = STRING: "eth1"

$ snmpwalk -Os -c public -v 1 jessie 1.3.6.1.2.1.31.1.1.1.1
iso.3.6.1.2.1.31.1.1.1.1.1 = STRING: "lo"
iso.3.6.1.2.1.31.1.1.1.1.2 = STRING: "eth0"
iso.3.6.1.2.1.31.1.1.1.1.3 = STRING: "eth1"

cricketの場合、これは、インターフェイスマップのクリケット構成を次のように変更したことを意味します。

OID    ifName                 1.3.6.1.2.1.31.1.1.1.1 

map interface-name
    base-oid    =   ifName
    match       =   %interface-name%
1
umläute