私は cricket を使用して、Debianベースのサーバーの簡単な監視(ネットワークデバイスを含む)を行っています。
インターフェースは名前で識別され(例:eth0
、eth1
、...)、クリケットは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回取得するだけです。
snmpd
にshortインターフェース名を報告させる方法はありますか?
インターフェイスに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%