z/OS UNIX snmp コマンド
- ネットワーク管理情報について SNMP エージェントを照会します。
- SNMP トラップおよび通知を受信し、フォーマットします。
snmp コマンドを使用して SNMP 要求をエージェントに出し、エージェントによって戻された SNMP 応答 を処理します。このコマンドは、65 535 バイトの最大 SNMP 応答パケット・サイズをサポートしています。SNMPv1、SNMPv2c、および SNMPv3 の要求をサポートしています。
トラップ要求タイプを指定して snmp コマンドを使用し、トラップおよび通知を受信し、フォーマットします。
形式:
MIB 変数の取得:
.- -d 0-----------. .- -h localhost---. >>-snmp--+-----------------+--+-----------------+---------------> '- -d debug_level-' '- -h target host-' .- -r 2------------. .- -c public----------. >--+------------------+--+---------------------+----------------> '- -r retry number-' '- - c community_name-' .- -t 3-------------. >--+-------------------+--+-----+--+-----+----------------------> '- -t timeout value-' '- -v-' '- -a-' >--+-get-----------------------------------------------------+--> +-getnext-------------------------------------------------+ | .- -m 10--------------. .- -n 0-------------. | '-+---------------------+--+-------------------+--getbulk-' '- -m max repetitions-' '- -n non-repeaters-' .--------------. V | >----mib_variable-+--------------------------------------------><
MIB 変数の設定:
.- -d 0-----------. .- -h localhost---. >>-snmp--+-----------------+--+-----------------+---------------> '- -d debug_level-' '- -h target host-' .- -r 2------------. .- -c public----------. >--+------------------+--+---------------------+----------------> '- -r retry number-' '- - c community_name-' .- -t 3-------------. >--+-------------------+--+-----+--+-----+--set-----------------> '- -t timeout value-' '- -v-' '- -a-' .----------------------------------. V | >----mib_variable--+---------+--value-+------------------------>< '-vartype-'
MIB ツリーの探索:
.- -d 0-----------. .- -h localhost---. >>-snmp--+-----------------+--+-----------------+---------------> '- -d debug_level-' '- -h target host-' .- -r 2------------. .- -c public----------. >--+------------------+--+---------------------+----------------> '- -r retry number-' '- - c community_name-' .- -t 3-------------. >--+-------------------+--+-----+--+-----+----------------------> '- -t timeout value-' '- -v-' '- -a-' >--+-walk-----------------------------------------------------+--> | .- -m 10--------------. .- -n 0-------------. | '-+---------------------+--+-------------------+--bulkwalk-' '- -m max repetitions-' '- -n non-repeaters-' >--mib_variable------------------------------------------------><
Help ヘルプの表示:
>>-snmp-- -?---------------------------------------------------><
トラップの受信:
.- -d 0-----------. .- -p 162---------. >>-snmp--+-----------------+--+-----------------+--trap-------->< '- -d debug_level-' '- -p port_number-'
MIB 変数名の検出:
.- -d 0-----------. >>-snmp--+-----------------+--findname--mib_variable----------->< '- -d debug_level-'
パラメーター:
- -d debug_level
- デバッグ・レベルを指定します。有効なデバッグ・レベルは 0 から 4 です。 デフォルトのレベルは 0 であり、「デバッグなし」を意味します。高位の各トレース・レベルには、それよりも低位のレベルのトレース・メッセージがすべて含まれます。
- -h target host
- 要求を送信するターゲット・ホストを指定します。これは、IPv4 (小数点付き 10 進数)、IPv6 (コロン付き 16 進数) アドレス、
ホスト名、または OSNMP.CONF 構成ファイル内の winSNMP 名です。ホストを指定しない場合、デフォルトはローカル・ホストになります。snmp コマンドは、SNMPv1、SNMPv2c、および SNMPv3 の要求の送信をサポートしています。snmp コマンドは、OSNMP.CONF ファイルを使用して、SNMPv1、SNMPv2c、または SNMPv3 要求を送信するかどうかを決定します。-h パラメーターによって指定されたターゲットが、OSNMP.CONF ファイルの winSNMP 名と一致した場合は、snmp はこの項目に指定されたパラメーターを使用して、要求を送信します。-h パラメーターの指定がない場合、要求は SNMPv1 要求として送信されます。-h パラメーターが指定されていて も、OSNMP.CONF ファイルで見つからなかった場合は、次のエラー・メッセージが出されます。
EZZ3306I Error converting <name> to Entity
制約事項: 範囲情報をターゲット・ホストのホスト名または IP アドレスの一部として指定することはできません。
規則: SNMP Getbulk 要求、および Counter64 MIB オブジェクト値の取得は、SNMPv1 要求ではサポートされていません。これらの機能を実行するには、OSNMP.CONF ファイル内の項目を SNMPv2c セキュリティー・モデルまたは SNMPv3 セキュリティー・モデルを使用して構成し、その項目の winSNMPname をターゲット・ホストとして -h パラメーターに指定します。 - -r retry number
- タイムアウトになった場合の、コマンドの最大再試行回数を指定します。 デフォルト値は 2 です。
- -c community_name
- 指定された変数を宛先 SNMP エージェントでアクセスするのに使用するコミュニティー名を指定します。コミュニティー名を指定しない場合は、デフォルトの名前
は public になります。ユーザー・ベースのセキュリティー・モデルを
使用する場合は、コミュニティー名は不要です。注: コミュニティー名には大文字小文字の区別があります。
- -t timeout value
- snmp コマンドが SNMP エージェントからの応答を待つ時間 (秒) を指定します。デフォルト値は 3 です。
- -v
- 冗長出力を使用して、要求からの出力を表示することを指定します。 このオプションを使用すると、MIB オブジェクト ID の代わりにテキスト名が付いて値が戻されます。
- -a
- 発信 IP アドレスとして、VIPA アドレス (使用可能な場合) ではなく、物理インターフェース・アドレスを使用して、要求パケットを送信するように指定します。 デフォルトでは、snmp コマンドは、現在では、VIPA アドレスを使用しています。別の方法としては、NOSVIPA オプションを OSNMP.CONF ファイルで構成することもできます。
- -m max repetitions
- getbulk および bulkwalk 要求にのみ適用されます。機能要求が getbulk でも bulkwalk でも ない場合は、これは無視されます。max repetitions は、最初の -n 個の後続項目の後、それぞれの変数 バインディング・ペアごとに戻されるアルファベット順の後続項目の数です。例えば、後続項目が -n 個 +1 で始まった場合、それぞれのバインディング変数ペアごとに -m 個の 後続項目が戻されます。デフォルトは 10 です。
- -n nonrepeaters
- getbulk または bulkwalk 要求にのみ適用されます。機能要求が getbulk でも bulkwalk でも ない場合は、これは無視されます。nonrepeaters 値は、変数バインディング・ペア (名前と値) の数 であり、最初の項目から始まります (この場合、後続項目が 1 つだけ戻されます)。デフォルト値は 0 です。
- mib_variable
- オブジェクト・ディスクリプター (テキスト名)、ASN.1 表記のオブジェクト ID、またはこの 2 つの組み合わせを使用して、管理情報ベース (MIB) を指定します。walk 要求と bulkwalk 要求とともに使用すると、これは MIB オブジェクト・プレフィックスになります。プレフィックスは、完全なオブジェクト ID であれば、どの先頭部分でも構いません。findname とともに使用すると、これは ASN.1 表記のオブジェクト ID になります。
- vartype
- 設定される値のタイプを指定します。SNMP SET 要求を完了するためには、SMI_type が分かって
いる必要があります。タイプの指定がない場合は、snmp は最初に MIBS.DATA ファイルを探し、
次に、コンパイルされた MIB を探して、タイプを判別します。変数が見つからない場合は、エラーが
戻されます。vartype が指定されている場合は、vartype は、MIB に割り当てられる
可能性のあるいずれのタイプよりも優先されます。vartype と値は互換性がある必要があります。例えば、タイプが "number" で、value に "foo" を指定する
と、"foo" が数値でないためエラーが戻されます。vartype パラメーターでは、
大文字小文字の区別はありません。有効な変数タイプは、以下のとおりです。
- bitstring
- counter
- counter32
- counter64
- display または displaystring
- integer
- integer32
- ipaddress
- gauge
- gauge32
- nsapaddress
- null
- objectidentifier または OID
- octetstring
- opaque
- opaqueascii
- timeticks
- uinteger
- value
- SET 機能により設定される値を指定します。値の中で空白文字が必要な場合は、その値を二重引用符 (") で囲む必要があります。それも 1 つのタイプである値に変数を設定する場合は、 そのタイプも指定する必要があります。
- -?
- ヘルプ情報を表示します。
- -p port_number
- トラップを listen するポート番号を指定します。 ポート番号の指定がない場合は、snmp コマンドのトラップ機能は、snmp トラップのデフォルト・ポート番号である 事前割り当てポート 162 で listen します。
- get
- 特定の管理情報ベース (MIB) 変数についての要求を SNMP エージェントに送信します。 その後、snmp コマンドは応答、あるいはタイムアウトを待ちます。
- getnext
- 指定された mib_variable 値の後、アルファベット順で次の MIB 変数についての要求 を SNMP エージェントに送信します。 その後、snmp コマンドは応答、あるいはタイムアウトを待ちます。
- getbulk
- OID または MIB 変数名によって指定された MIB ツリーにおける変数の値を取得します。単一の getbulk 要求は、一連の getnext 要求と同じ機能を実行し、snmp コマンドと SNMP エージェント間のデータ交換も少なくて済みます。規則: GETBULK 要求を行うには、-h パラメーターに指定されたターゲット・ホストが SNMPv2c セキュリティー・モデルまたは SNMPv3 セキュリティー・モデルを使用して OSNMP.CONF 項目として構成されていなければなりません。 ターゲット・ホスト側の SNMP エージェントが SNMPv1 のみをサポートしている場合、要求はタイムアウトになります。
- set
- 特定の MIB 変数を設定するための要求を SNMP エージェントに送信します。 その後、snmp コマンドは応答、あるいはタイムアウトを待ちます。
- walk
- 指定されたプレフィックスについて getnext 要求を出し、その後、指定されたプレフィックスに 一致する変数がある限り、getnext 要求を出し続けます。プレフィックスは、完全なオブジェクト ID であれば、どの先頭部分でも構いません。
- bulkwalk
- 指定されたプレフィックスについて GETBULK 要求を出し、その後、指定されたプレフィックスに
一致する変数がある限り、GETBULK 要求を出し続けます。規則: GETBULK 要求を行うには、-h パラメーターに指定されたターゲット・ホストが SNMPv2c セキュリティー・モデルまたは SNMPv3 セキュリティー・モデルを使用して OSNMP.CONF 項目として構成されていなければなりません。 ターゲット・ホスト側の SNMP エージェントが SNMPv1 のみをサポートしている場合、要求はタイムアウトになります。
- trap
- SNMP トラップを listen し、トラップが生じた場合はトラップ情報を表示します。デフォルトの事前割り当てポート 162、あるいは -p オプションで指定されたポート番号を 指定します。snmp トラップ機能は、プロセスが kill されるか、キャンセルされるまで、 トラップの listen を続けます。
- findname
- 所定の mib_variable 入力について、その内部 ASN.1 値が入力 ASN.1 値に最も 一致するようなテキスト名を取得するための検索要求を送信します。 検索では最初に MIBS.DATA ファイルをチェックし、一致するテキスト名が見つからない場合は、 コンパイルされた MIB で検索を続けます。1 回の snmp findname 呼び出しにつき、1 つ の mib_variable しか許可されていません。
使用法:
- set 操作は、すべての MIB オブジェクトでサポートされている訳ではありません。 MIB オブジェクトを管理しているエージェントまたはサブエージェントが SET をサポートしない 場合は、set 操作はリジェクトされることがあります。
- 機能のキーワードには、大文字小文字の区別がありません。- オプションと変数タイプおよび変数値には、 大文字小文字の区別があります。
- 低いポート番号の使用が TCP/IP プロファイルの UDPCONFIG ステートメントによって制限されている場合
は、snmp トラップ・コマンドを出すためには、スーパーユーザー ・モードになっている必要があります。低いポートへのアクセスは、事前割り当てポート 162 をバインドするために必要です。
スーパーユーザー・モードになっていない場合
は、EZZ3301I Error return from bind() : EDC5111I Permission denied という
エラーが出されます。
UDPCONFIG ステートメントの詳細については、「z/OS Communications Server: IP 構成解説書」を参照してください。
- NetView® SNMP と z/OS UNIX snmp コマンドからのトラップを同時に listen する ためには、snmp コマンドで -p port_number パラメーターを使用します。 ポートで同時に listen できる管理アプリケーションは、1 つの IP アドレスにつき 1 つだけです。snmp トラップ・コマンドで -p を指定すると、事前割り当てポート 162 以外のポートを 使用することができます。いずれのポートも、エージェント・トラップ宛先として構成する 必要があります。
- (受け入れ可能なコミュニティー名またはユーザー名を使用して) 認証されていない snmp コマンドは、タイムアウトになります。
- snmp コマンドは、MIBS.DATA と OSNMP.CONF という 2 つの構成ファイルを使用します。 サンプル・ファイルは、/usr/lpp/tcpip/samples ディレクトリーで出荷されます。これらの構成ファイルについては、「z/OS Communications Server: IP 構成解説書」を参照してください。
例:
- MIB 変数の取得
次の例では、MIB オブジェクト sysName.0 を要求します。
snmp get sysName.0 1.3.6.1.2.1.1.5.0 = MVS SNMP
次の例では、MIB オブジェクト myName.0 を要求しています。ここで myName は、sysName.0 によって 識別されるオブジェクトと同じオブジェクトとして、MIBS.DATA ファイルで定義されています。
snmp get myName.0 1.3.6.1.2.1.1.5.0 = MVSX SNMPv2 Agent
- 次の MIB 変数の取得
次の例では、その次の論理 MIB オブジェクトを要求します。
snmp getnext udp 1.3.6.1.2.1.7.1.0 = 653
次の例では、値をオブジェクト ID ではなく、テキスト名で表示する -v オプションを使用して、次の論理オブジェクトを要求しています。
snmp -v getnext udp udpInDatagrams.0 = 653
- MIB 変数の設定
次の例では、MIB オブジェクト sysName.0 を ’MVSX SNMPv2 Agent’ の値に設定します。
snmp set sysName.0 "MVSX SNMPv2 Agent" 1.3.6.1.2.1.1.5.0 = MVSX SNMPv2 Agent
次の例では、MIB オブジェクト usmUserAuthKeyChange.1.2.2.117.49 を 16 進値に設定します。それぞれの単一引用符の前の値に円記号があり、単一引用符は snmp コマンドに 渡すストリングの一部であることを UNIX シェルに示しています。値の終わりの 'h' は、16 進値が 渡されることを示しています。snmp set usmUserAuthKeyChange.1.2.2.117.49 ¥'3eca6ff34b59010d262845210a40165678dd9646e31e9f890480a233dbe1114d¥'h
- MIB ツリーの探索
次に例では、同じオブジェクト ID プレフィックスで始まるすべてのオブジェクトを名前別に 戻します。
snmp -v walk udp udpInDatagrams.0 = 13 udpNoPorts.0 = 7 udpInErrors.0 = 0 udpOutDatagrams.0 = 20 udpLocalAddress.0.0.0.0.161 = 0.0.0.0 udpLocalAddress.0.0.0.0.514 = 0.0.0.0 udpLocalAddress.0.0.0.0.4001 = 0.0.0.0 udpLocalAddress.0.0.0.0.50003 = 0.0.0.0 udpLocalAddress.9.42.103.27.1029 = 9.42.103.27 udpLocalPort.0.0.0.0.161 = 161 udpLocalPort.0.0.0.0.514 = 514 udpLocalPort.0.0.0.0.4001 = 4001 udpLocalPort.0.0.0.0.50003 = 50003 udpLocalPort.9.42.103.27.1029 = 1029 udpEndpointProcess.0.0.161.0.0.0.33 = 0 udpEndpointProcess.0.0.514.0.0.0.28 = 0 udpEndpointProcess.0.0.4001.0.0.0.44 = 0 udpEndpointProcess.0.0.50003.0.0.0.70 = 0 udpEndpointProcess.1.4.9.42.103.27.1029.0.0.0.67 = 0 udpEndpointProcess.2.0.4002.2.16.32.1.13.184.0.0.0.0.0.0.0.0.0.0.0.1.9002.45 = 0 udpEndpointProcess.2.16.255.1.0.0.0.0.0.0.0.0.0.0.0.0.1.0.5003.0.0.0.46 = 0
- bulkwalk を使用したツリー探索
次に例では、同じオブジェクト ID プレフィックスで始まるすべてのオブジェクトを名前別に 戻しますが、snmp コマンドと SNMP エージェント間で交換されるデータ・パッケージは より少なくなります。
bulkwalk 要求タイプは、SNMPv2 機能です。-h パラメーターは、SNMPv2 または SNMPv3 を サポートするエージェントとして、OSNMP.CONF ファイルで定義されたホスト (ループバック) を 示しています。
snmp -h loopback -v -m 10 bulkwalk udp udpInDatagrams.0 = 2125 udpNoPorts.0 = 7 udpInErrors.0 = 0 udpOutDatagrams.0 = 2132 udpLocalAddress.0.0.0.0.161 = 0.0.0.0 udpLocalAddress.0.0.0.0.514 = 0.0.0.0 udpLocalAddress.0.0.0.0.4001 = 0.0.0.0 udpLocalAddress.0.0.0.0.50009 = 0.0.0.0 udpLocalAddress.9.42.103.27.1030 = 9.42.103.27 udpLocalPort.0.0.0.0.161 = 161 udpLocalPort.0.0.0.0.514 = 514 udpLocalPort.0.0.0.0.4001 = 4001 udpLocalPort.0.0.0.0.50009 = 50009 udpLocalPort.9.42.103.27.1030 = 1030 udpEndpointProcess.0.0.161.0.0.0.34 = 0 udpEndpointProcess.0.0.514.0.0.0.36 = 0 udpEndpointProcess.0.0.4001.0.0.0.44 = 0 udpEndpointProcess.0.0.50010.0.0.0.80 = 0 udpEndpointProcess.1.4.9.42.103.27.1031.0.0.0.78 = 0 udpEndpointProcess.2.0.4002.2.16.32.1.13.184.0.0.0.0.0.0.0.0.0.0.0.1.9002.45 = 0 udpEndpointProcess.2.16.255.1.0.0.0.0.0.0.0.0.0.0.0.0.1.0.5003.0.0.0.46 = 0 udpHCInDatagrams.0 = 2125 udpHCOutDatagrams.0 = 2132
- 複数の MIB 変数の取得 次の例では、getbulk 要求タイプを使用して、複数の MIB オブジェクトを要求します。 getbulk 要求タイプは、コマンドでリストされる 1 つ以上の MIB オブジェクトについて、 その次の論理オブジェクトを戻します。次の例では、-n オプションは、最初の 2 つの変数 (sysObjectId および ifNumber) に対して、その次の 1 つの論理オブジェクトしか要求されていないことを示しています。リストにある他のすべてのオブジェクト (ifName、ifHCInOctets、ifHCOutOctets) に対して、-m オプションは 5 回の繰り返しが要求されていることを示しています。このコマンドの結果、次の SNMP データが戻されます。
- sysObjectId - エージェントを示す SNMP OID (オブジェクト ID)
- ifNumber - エージェントが関連する TCP/IP スタックに定義されたインターフェースの総数
- スタックに定義された最初の 5 インターフェースに対する ifName、ifHCInOctets、および ifHCOutOctets の値
getbulk 要求タイプは、SNMPv2 機能です。-h パラメーターは、SNMPv2 または SNMPv3 を サポートするエージェントとして、OSNMP.CONF ファイルで定義されたホスト (ループバック) を 示しています。
snmp -h loopback -v -n 2 -m 5 getbulk sysObjectId ifNumber ifName ifHCInOctets ifHCOutOctets sysObjectID.0 = 1.3.6.1.4.1.2.3.13 ifNumber.0 = 31 ifName.1 = LOOPBACK ifHCInOctets.1 = 108028 ifHCOutOctets.1 = 108028 ifName.2 = LOOPBACK ifHCInOctets.2 = 107868 ifHCOutOctets.2 = 107868 ifName.3 = LOOPBACK6 ifHCInOctets.3 = 160 ifHCOutOctets.3 = 160 ifName.4 = LCS1 ifHCInOctets.4 = 0 ifHCOutOctets.4 = 0 ifName.5 = TR1 ifHCInOctets.5 = 0 ifHCOutOctets.5 = 0
- ASN.1 変数名の検索 次の例では、所定の mib_variable 入力について、入力の内部 ASN.1 値と最もよく一致 する入力 ASN.1 値を持つテキスト名を取得するための検索要求を送信します。 この検索は、MIBS.DATA ファイルから開始して、見つからない場合はコンパイルされた MIB で検索を 継続します。1 回の snmp findname コマンド呼び出しにつき、1 つの mib_variable しか許可されていません。
snmp findname 1.3.6.1.2.1.6.13.1.2 1.3.6.1.2.1.6.13.1.2 found as: tcpConnLocalAddress
snmp findname 1.3.6.1.2.1.6.13.1.2.0 1.3.6.1.2.1.6.13.1.2.0 found as: tcpConnLocalAddress.0
snmp findname 1.3.6.1.2. 1.3.6.1.2. found as: mgmt
- 発信アドレスとして物理インターフェース・アドレスを用いた要求の送信
snmp コマンドがデフォルトによって、要求パケットの発信アドレスを、強制的に物理インターフェース (このインターフェースを介してパケットが送信される) のアドレスにするよう に、SO_IGNORESOURCEVIPA ソケット・オプションを設定することはなくなりました。 発信アドレスの代わりに、構成済みの場合は送信元 VIPA アドレスを使用します。snmp コマンドで代わりに物理アドレスを使用するには、-a オプションを指定できます。このことは、要求を受け取る SNMP エージェントは、送信元 VIPA アドレスではなく、 物理インターフェース・アドレスからの要求を受け入れように構成する必要があることを意味しています。
snmp コマンドに、発信アドレスとして物理インターフェース・アドレスを使用させる には、snmp コマンドで -a パラメーターを使用します。snmp -a get sysUpTime.0 1.3.6.1.2.1.1.3.0 = 2950600
別の方法としては、NOSVIPA を指定した hostA の OSNMP.CONF ファイルに項目がある場合は、 次のコマンドでも結果は同じになります。snmp -h hostA get sysUpTime.0 1.3.6.1.2.1.1.3.0 = 2950600