snmp 設定方法


snmp 概要

snmpの設定(snmp.conf)についてまとめます。snmp.confを適切に設定する事で、ベンダー固有のプライベートMIBを追加 (MIBをコンパイル) したり、コミュニティ名の指定など共通の設定を省略したりする事ができます。

混同しやすいですが、snmpd, snmptrapdとは別の説明ですのでご注意下さい。

プライベートMIBの追加 ( MIBのコンパイル方法)

プライベートMIB追加の必要性

snmpは共通化された汎用的なOIDとベンダー固有のOIDが存在します。Cisco機器のCPU監視は、cpmCPUTotal5minRev (.1.3.6.1.4.1.9.9.109.1.1.1.1.8)を使用しますが、デフォルトの状態では名前を用いた監視ができません。

数値を指定して監視するのはメンテナンス性が下がりますので、名前で指定できるようにすると良いでしょう。

snmp.conf 設定

プライベートMIBを読み込めるようにするには、まずsnmp.confを編集する必要があります。snmp.confはSNMP関連のコマンドの共通設定を行うファイルで、システム全体に適用したいならば/etc/snmp/snmp.confを、ユーザ単位で適用したいならば~/.snmp/snmp.confを編集します。

今回はプライベートMIBの追加が目的ですので、システム全体に影響を与える/etc/snmp/snmp.confというファイルを以下のように新規作成します。(/etc/snmp/snmpd.confではない事に注意して下さい。)

MIBDIRSはMIB値を読み込むディレクトリの指定です。MIBDIRはデフォルトで/usr/share/snmp/mibs/を読み込む仕様になっており、MIBDIRSの設定変更は必須ではありません。しかし、私の場合は、OSでデフォルトでインストールされているMIBと後から追加したMIBを区別できるようMIBDIRSの設定を変更します。

MIBS allは読み込むMIBの指定です。デフォルトではOSでデフォルトでインストールされたMIB値しか読み込まないので、MIBS allと指定し全てのMIBを読み込むようにします。

Cisco プライベートMIBの追加

CiscoのプライベートMIBは”SNMP Object Navigator”というツールによって提供されています。google先生に、”SNMP Object Navigator”と聞くと以下のようなサイトに辿りつけるはずです。

検索窓に名前解決したいOIDを入力して”Translate”ボタンを押下します。

cisco_mib_001

MIBと書かれた欄のリンクを押下します。

cisco_mib_002

お使いのsnmp versionのMIBファイルをダウンロードします。MIBファイルには依存関係が存在し、以下の場合は12個全てのMIBファイルが必要となります。なお、SNMPv2-SMIのようなOSにデフォルトでインストールされているMIBファイルはダウンロードを省略して差し支えございません。

cisco_mib_003

MIBファイルをダウンロードし、MIBDIRSで指定したディレクトリに配置します。私の場合は、デフォルトでインストールされたMIBファイルと区別するために、/usr/share/snmp/private-bims/にMIBファイルを配置します。

snmptranslateコマンドを用いて名前解決ができるようになった事を確認します。

名前による監視ができるようになった事を確認します。

Tips

snmp.conf(5), snmpcmd(1)

snmp.confについて解説されている記事はいくつか見当たりますが、マニュアルに書かれた事を強く意識している記事は多くありません。ですので、このサイトではマニュアル上の記載を少し紹介したいと思います。

まず/etc/snmp/snmp.confの仕様を調べるために、”man 5 snmp.conf”を読んでみましょう。システム全体に対する設定は/etc/snmp/snmp.confに記述し、ユーザ固有の設定は~/.snmp/snmp.confに記述する必要がある事が分かりました。MIBの取扱については、mibdirs, mibsなどの指定が可能である事が分かります。mibsの仕様に関しては、snmpcmd(1)の-mオプションを参照しろとの事です。

”man 1 snmpcmf”を読んでみましょう。snmpcmdはsnmpwalk, snmptrapなどのSNMP関連コマンドのオプションの説明をするマニュアルです。-mオプションを見ると、MIBLISTを明示指定しない場合は、デフォルトのMIBリストが適用されるようです。MIBLISTにALLを指定すれば、全てのMIBモジュールが読み込まれるようになります。

デフォルト設定 コミュニティ名 snmpバージョン

/etc/snmp/snmp.confはsnmpコマンドのデフォルト挙動を定義する事ができます。例えば、/etc/snmp/snmp.confに以下のようにコミュニティ名とバージョンを設定すると、snmpコマンド実行時のコミュニティ名, バージョン指定を省略する事ができます。

コミュニティ名, バージョン指定を省略してsnmpコマンドを実行できる事を確認します。

動作確認環境

動作確認環境は以下の通りです。

  • 最終動作確認日 : 2015/01/03
  • CentOS 6.6 ( Sakura VPS )
  • net-snmp-libs-5.5-50
  • net-snmp-5.5-50

シェアする

  • このエントリーをはてなブックマークに追加

フォローする