
いくつかの SNMP 拡張機能を設定しようとしています。以下は、ターゲット ホストの /etc/snmp/snmpd.conf からのサンプル エントリです。
extend php_pids /var/skotos/cacti/check-proc lsphp5
プログラムは正常に動作します:
# /var/skotos/cacti/check-proc lsphp5
There are 26 lsphp5 processes.
しかし、Cacti サーバーにアクセスすると、次のエラーが発生します。
snmpwalk -c <community> <site> 'NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."php_pids"'
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."php_pids": Unknown Object Identifier
(Cacti からはタイムアウトが発生しますが、snmpwalk なら仲介者を排除できると考えました。)
サーバー上の Cacti とターゲット上の SNMP についてはその他すべて正常に動作しますが、何らかの理由で nsExtendOutput1Line がまったく動作しません。
これは非常に新しい Debian Wheezy 7.4 のインストールです。
答え1
ライセンスの問題により、MIB データベースはしばらく前に libsnmp-base から削除されたため、現在クライアントは名前を OID に変換できません。オブジェクト識別子を使用して snmpd サーバーに直接クエリを実行するには、次の操作を実行します (出力の最初の行を要求します)。
snmpwalk -c <community> <site> 1.3.6.1.4.1.8072.1.3.2.3.1.1
あるいは、非フリーリポジトリにあるパッケージ snmp-mibs-downloader をインストールすることもできます。
apt-get install snmp-mibs-downloader
データベースは自動的にダウンロードされるはずですが、何らかの理由でダウンロードされない場合は、「download-mibs」スクリプトを実行するだけです。データベースが適切にダウンロードされたら、次のコマンドを実行します。
snmpwalk -c <community> <site> 'NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."php_pids"'
動作するはずです。