snmpwalkとは
snmpwalkとは、SNMPマネージャ用コマンドの一つです。SNMPプロトコルを実装したアプリケーション群である「Net-SNMP」の中に含まれています。
snmpwalkコマンドでOID(Object ID)を指定すると、配下に含まれるすべてのOIDと、その値を表示します。
類似したコマンドには「snmpget」があり、こちらはOIDを指定すると、指定したOIDと該当する値を単体で表示します。
Linuxでsnmpwalkコマンドを使用するには、「net-snmp」と「net-snmp-utils」パッケージをインストールします。詳しいインストール手順と設定方法はこちらをご参照ください。
監視ツール OpManager はこちら
snmpwalkのコマンド実行例
以下に、snmpwalkコマンドの基本的な使用方法を、SNMPのバージョン毎にご紹介します。
SNMP v1の場合
snmpwalk -v1 -c <コミュニティ名> <ホスト名:ポート> < OID >
<コミュニティ名>:SNMPのコミュニティ名を指定します。
< ホスト名:ポート >:データを取得したいSNMPエージェントがある機器のホスト名またはIPアドレスと、SNMPのポート番号を入力します。 ポート番号はデフォルトでは161が使用されます。
< OID >:SNMPのObjectIDを指定します。
SNMP v2の場合
snmpwalk -v2c -c <コミュニティ名> <ホスト名:ポート> < OID >
<コミュニティ名>:SNMPのコミュニティ名を指定します。
< ホスト名:ポート >:データを取得したいSNMPエージェントがある機器のホスト名またはIPアドレスと、SNMPのポート番号を入力します。ポート番号はデフォルトでは161が使用されます。
< OID >:SNMPのObjectIDを指定します。
SNMP v3の場合
snmpwalk -v3 -l <セキュリティレベル> -a <認証方式> -A <認証パスワード> -x <暗号化プロトコル> -X <暗号化パスワード> -u <ユーザ名> <ホスト名:ポート> < OID >
-l <セキュリティレベル>:noAuthNoPriv、authNoPriv、authPrivのいずれか
-a <認証方式>:SHA(推奨)またはMD5を指定します。
-A <認証パスワード>:SNMPv3における認証パスワードを指定します。
< ホスト名:ポート >:データを取得したいSNMPエージェントがある機器のホスト名またはIPアドレスと、SNMPのポート番号を入力します。ポート番号はデフォルトでは161が使用されます。
< OID >:SNMPのObjectIDを指定します。
以下はセキュリティレベルがauthPrivである場合に指定します。
-x <暗号化プロトコル>:暗号化プロトコル。AES(推奨)またはDESを指定します。
-X <暗号化パスワード>:暗号化パスワード
-u <ユーザ名>:ユーザ名を指定します。
snmpwalkコマンドでその他に利用可能なオプション
上記で紹介した以外にも、snmpwalkコマンドには様々なオプションが用意されています。環境や必要に応じて指定して利用します。
-V, --version:Net-SNMPのバージョンを表示します
-r <回数>:試行回数を指定します。
-t <タイムアウト時間>:リクエストのタイムアウト時間を秒で指定します。
-d:通信されたパケットを16進数で出力してデバッグに使用します。
-D <トークン 機能名>:指定したSNMPの機能のデバッグを行います。
io - 入出力アクティビティと生データをレポートとして表示します。
dsp - 高レベルなSNMPエンジンの動作をレポートとして表示します。
msgproc - メッセージ処理の動作をレポートとして表示します。
secmod - セキュリティの操作をレポートとして表示します。
mibbuild - MIBファイルの読み込みと処理をレポートとして表示します。
mibview - MIBブラウザの初期化と操作をレポートとして表示します(マネージャロールMIBを利用)
mibinstrum - MIBインストルメンテーション操作をレポートとして表示します(エージェントロールMIBを使用)
acl - MIBアクセス制御をレポートとして表示します。
proxy - 組み込みのSNMPプロキシ操作をレポートとして表示します。
app - SNMP標準アプリケーションの操作をレポートとして表示します。
all - 上記すべてをレポートとして表示します。
以下のオプションはSNMPv3の場合に指定可能です。
-e <エンジンID>:権限のあるセキュリティエンジンIDを16進数の文字列で設定します。通常の場合は自動的に検出されます。
-E <エンジンID>:コンテキストエンジンIDを16進数の文字列で設定します。指定しない場合は、権限のあるエンジンIDが自動で指定されます。
-n <コンテキスト名>:コンテキスト名を指定します。
-Z < BOOTS,TIME > :認証に使用するエンジンブートカウンタとそのタイムライン値を設定します。通常の場合これらの値は自動的に検出されます。
SNMP監視をより効率化するツール[機能・監視数 無制限]
SNMPを使用した監視をより効率化するツール
サーバーやスイッチ・ルーターなどネットワーク機器の監視目的でsnmpwalkコマンドを利用する場合は、ネットワーク機器の台数が増加するにつれて、管理の手間が増えてしまいます。
手動でのコマンド実行よりも効率的にネットワーク機器を管理・監視するには、SNMPを利用して自動でパフォーマンスデータを収集するツールを使用するのがお勧めです。
ManageEngineが提供する統合監視ツールである「OpManager」は、SNMPを利用してネットワーク機器を自動で監視し、機器のステータスが一目で分かるように可視化します。 スイッチ監視、ルーター監視、CPU監視、メモリ監視、ポート監視、アプリケーション監視、イベントログ監視機能などが、Webベースのわかりやすい画面で管理できます。ネットワーク監視に関する知識がない方でも操作が可能で、容易に運用できるのが特徴です。
ネットワーク機器やサーバーの監視の自動化・効率化の方法をお探しの場合は、是非「OpManager」をご検討ください。
無料で使えます[機能・監視数 無制限]
SNMPのインストールと設定
Linux端末にSNMPをインストールして設定する手順を紹介します。
1. 「net-snmp」パッケージと「net-snmp-utils」パッケージをインストールします。
Debian系OS:apt-get install snmpd snmp
2. /etc/snmp/snmpd.conf ファイルに設定を記述します。
設定例
com2sec <セキュリティ名> <ネットワーク範囲> <コミュニティ名>
<セキュリティ名>:任意のセキュリティポリシーの名前を設定します。
<ネットワーク範囲>:セキュリティポリシーを適用するネットワーク(SNMPプロトコルでの通信を許可する・拒否するネットワーク)の範囲を指定します。"default"を指定すると、すべてのネットワーク(0.0.0.0)を指します。
<コミュニティ>:コミュニティ文字列を指定します。
group <グループ名> <セキュリティモデル> <セキュリティ名>
<グループ名>:任意のグループ名を設定します。
<セキュリティモデル>:SNMPのバージョンを指定します。v1の場合はv1、v2cの場合はv2c、v3の場合はusm
<セキュリティ名>:このグループに含めるセキュリティ名を指定します。
view <ビュー名> included <OID> 80
<ビュー名>:任意のビュー名を設定します。
<OID>:情報取得を許可するOIDを指定します。.1とした場合、.1以下すべてが許可されます。
access <グループ名> "" any noauth exact <ビュー名> none none
設定サンプル
group group_A v2c network1
view view_all included .1
access group_A "" any noauth exact view_all none none
3. SNMPサービスを起動します。
関連機能
- SNMPトラップ監視機能
SNMPトラップを監視する機能について紹介しています。 - リソース監視機能
CPUやメモリー・ディスクの状態を監視するリソース監視機能についてご紹介しています。 - トラフィック監視機能
ネットワークパトラフィックを手軽に可視化する機能について紹介しています。