clsnmp コマンド

目的

clsnmp コマンドは、SNMP エージェントにネットワーク管理情報を照会するための SNMP マネージャー機能を提供します。

構文

clsnmp [ -d DebugLevel ] [ -h TargetHost ] [ -c Community ] [ -t TimeOutValue ] [ -r RetryNumber ] [ -n NonRepeaters ] [ -m MaxRepetitions ] [ -p PortNumber ] [ -v ] [ -f ConfigurationFile ] [ -? ] Function [ MIBVariable [ VariableType ] [ Value ] [ ... ] ]

説明

clsnmp コマンドは、SNMP 要求をエージェントに発行し、さらにエージェントから戻された SNMP 応答を処理するために使用します。 clsnmp コマンドは、SNMPv1、SNMPv2c、および SNMPv3 要求の発行をサポートしています。

SNMP 要求タイプ

findname
所定の MIBVariable 入力の入力 ASN.1 値と最もよく一致する内部 ASN.1 値を持つテキスト名を取得するための検索を行うよう求める要求を送信します。この検索では、最初に /etc/mib.defs ファイルが検査されますが、一致するテキスト名が見つからないと、コンパイル済み MIB を対象として処理が継続されます。 MIBVariable は、1 回の clsnmp findname 呼び出しにつき 1 つしか許可されません。
get
特定の管理情報ベース (MIB) 変数に対する要求を SNMP エージェントに送信します。その後、clsnmp は応答またはタイムアウトを待ちます。
getbulk
OID または MIB 変数名によって指定された MIB ツリー内の変数の値を取得します。 getbulk は、単独で一連の getnext と同じ機能を果たします。また、clsnmp コマンドと SNMP エージェント間のデータ交換の回数も少なくて済みます。
getnext
MIB 内の並び順で、指定された MIBVariable の次に位置する MIB 変数を求める要求を SNMP エージェントに送信します。その後、clsnmp は応答またはタイムアウトを待ちます。
set
特定の MIB 変数を設定するための要求を SNMP エージェントに送信します。その後、clsnmp は応答またはタイムアウトを待ちます。
trap
SNMP トラップを listen し、その発生時にトラップ情報を表示します。デフォルトの予約済ポート 162 または -p オプションで指定されたポート番号を使用します。 clsnmp trap 機能は、プロセスが終了されるか取り消されるまで、トラップの listen を継続します。
walk
指定されたプレフィックスに対する getnext 要求を発行し、指定されたプレフィックスと一致する変数がある限り getnext 要求を発行し続けます。完全なオブジェクト ID に先行する部分であれば、どの部分でもプレフィックスになり得ます。

使用法

set 操作は、どの MIB オブジェクトの場合でもサポートされるわけではありません。 set 操作は、その MIB オブジェクトを管理しているエージェントまたはサブエージェントが SET をサポートしていない場合はリジェクトされる可能性があります。

getbulk は、SNMPv2 の機能です。ターゲット・エージェントが SNMPv1 しかサポートしていない場合、発行した要求はそのターゲット・エージェントによって無視されます。その結果、その要求はタイムアウトになります。

機能のキーワードでは、大文字小文字は区別されません。フラグ、変数名、および変数の値の場合は大文字小文字が区別されます。

NetView SNMP からのトラップと AIX clsnmp からのトラップを同時に listen するには、clsnmp コマンドで -p PortNumber パラメーターを使用します。一時には、ある 1 つの IP アドレスを持つ 1 つの管理アプリケーションが 1 つのポートで listen を実行することしかできません。 clsnmp trap コマンドで -p を指定すれば、予約済ポート 162 以外のポートを使用できます。どちらのポートもエージェント・トラップの宛先として構成しなければなりません。

受け入れられるコミュニティー名またはユーザー名を使用して受ける認証を受けていない clsnmp コマンドはタイムアウトになります。

clsnmp コマンドは、2 つの構成ファイル (/etc/mib.defs および clsnmp.conf) を使用します。サンプル・ファイルは /usr/samples/snmpdv3 ディレクトリーに入れられて出荷されます。

clsnmp コマンドは、SNMPv1、SNMPv2c、および SNMPv3 要求の送信をサポートしています。 SNMPv1、SNMPv2c、および SNMPv3 要求のうち、どの要求を送信するのかを判別するために clsnmp が使用するファイルは clsnmp.conf ファイルです。 -h パラメーターを使用して指定されたターゲットが clsnmp.conf ファイル内の winSNMP 名と一致した場合、clsnmp はそのエントリーに指定されているパラメーターを使用して要求を送信します。 -h パラメーターが指定されていないと、要求は SNMPv1 要求として送信されます。

フラグ

-c Community 宛先 SNMP エージェントの元で、指定された変数にアクセスするのに使用されるコミュニティー名を指定します。コミュニティー名を指定しない場合のデフォルト名は public です。ユーザー・ベースのセキュリティー・モデルを使用する場合は、コミュニティー名は不要です。
注:
コミュニティー名では大文字小文字が区別されます。
-d DebugLevel デバッグ・レベルを指定します。デフォルト・レベルは 0 です。これは、デバッグを行わないことを意味します。デバッグ・レベルが高ければ高いほど、表示されるメッセージの数が多くなります。デバッグ・レベルは 0 〜 4 です。
-f ConfigurationFile 構成ファイルの絶対パスとファイル名を指定します。
-h TargetHost 要求の送信先とするターゲット・ホストを指定します。これは、インターネット・プロトコル (IP) アドレス、ホスト名、または clsnmp.conf 構成ファイル内の winSNMP 名にできます。ホストを指定しない場合のデフォルトはローカル・ホストです。
-m MaxRepetitions getbulk にのみ適用されます。これは、機能要求が getbulk でない場合は無視されます。 MaxRepetitions は、最初に「-n number」で指定された後続オブジェクトのおのおのの変数結合ペアに返される並び順で後ろに位置するオブジェクトの数です。たとえば、「-n number」+ 1 の後続オブジェクトから始まって、「-m number」の数だけの後続オブジェクトがそれぞれの変数結合ペアごとに戻されます。デフォルトは 10 です。
-n NonRepeaters getbulk 要求にのみ適用されます。これは、機能要求が getbulk でない場合は無視されます。 NonRepeaters は、変数結合ペア (名前/値) の数で、1 から、ここで指定した数までの変数については、後続オブジェクトは 1 つだけ戻されます。デフォルトは 0 です。
-p PortNumber トラップを listen するポートの番号を指定します。ポート番号が指定されていないと、clsnmp trap 機能は clsnmp トラップ用のデフォルト・ポートである予約済ポート 162 を listen します。
-r RetryNumber コマンドがタイムアウトになった場合にコマンドを再試行する回数の最大数を指定します。デフォルトは 2 です。
-t TimeOutValue clsnmp コマンドが SNMP エージェントからの応答を待つ時間を秒単位で指定します。デフォルトは 3 です。
-v 要求からの出力を表示する際に詳細出力を使用する (たとえば、MIB オブジェクト ID の代わりにテキスト名を使用する) ことを指定します。
-? ヘルプ情報を表示します。

パラメーター

Function 実行する SNMP 機能/操作を指定します。それは、getgetnextgetbulksetwalktrapfindname のうちのいずれかです。
MIBVariable 管理情報ベース (MIB) オブジェクトを、そのオブジェクト・ディスクリプター (テキスト名)、ASN.1 表記のオブジェクト ID、または前の 2 つを組み合わせたものを使用して指定します。これを walk と一緒に使用したものが MIB オブジェクト・プレフィックスです。完全なオブジェクト ID に先行する部分であれば、どの部分でもプレフィックスになり得ます。 findname と一緒に使用した場合は ASN.1 表記のオブジェクト ID になります。
Value SET 機能で設定される値を指定します。この値の中にホワイト・スペースを入れる必要がある場合は、値を二重引用符 (") で囲まなければなりません。変数にタイプでもある値を設定する場合は、そのタイプを指定しなければなりません。
VariableType 設定される値のタイプを指定します。 SNMP SET 要求を完了するためには、SMI_type が分かっていなければなりません。タイプが指定されていない場合、clsnmp はタイプを判別するために、最初に /etc/mib.defs ファイルを検索し、次にコンパイル済み MIB を検索します。変数が見つからないと、エラーが戻されます。 VariableType を指定した場合は、VariableType の方が、MIB 内で割り当てられている可能性のあるどのタイプよりも優先されます。 VariableType と値は互換性がなければなりません。たとえば、タイプとして「number」を指定して値「foo」を指定すると、「foo」は数ではないのでエラーが戻されます。 VariableType では、大文字小文字は区別されません。有効な変数タイプは次のとおりです。
  • bitstring
  • counter
  • counter32
  • counter64
  • display または displaystring
  • gauge
  • gauge32
  • integer
  • integer32
  • ipaddress
  • nsapaddress
  • null
  • objectidentifier または OID
  • octetstring
  • opaque
  • opaqueascii
  • timeticks
  • uinteger

  1. MIB 変数を取得します。
    1. 以下のコマンドは、MIB オブジェクト sysName.0 を要求します。
      clsnmp get sysName.0
      このコマンドからの出力は、次のようになります。
      1.3.6.1.2.1.1.5.0 = hostname.austin.ibm.com
    2. 以下のコマンドは、MIB オブジェクト myName.0 を要求します。ここで myName は、sysName.0 で識別されるのと同じオブジェクトになるように /etc/mib.defs ファイル内で定義されています。
      clsnmp get myName.0
      このコマンドからの出力は、次のようになります。
      1.3.6.1.2.1.1.5.0 = myhostname.austin.ibm.com
  2. その次の MIB 変数を取得します。
    1. 以下のコマンドは、その次の論理 MIB オブジェクトを要求します。
      clsnmp getnext udp
      このコマンドからの出力は、次のようになります。
      1.3.6.1.2.1.7.1.0 = 653
    2. 以下のコマンドは、その次の論理オブジェクトを要求しますが、オブジェクト ID の代わりにテキスト名で値が表示されるように、-v オプションを使用しています。
      clsnmp -v getnext udp
      このコマンドからの出力は、次のようになります。
      udpInDatagrams.0 = 653
  3. MIB 変数を設定します。
    1. 以下のコマンドは、MIB オブジェクト sysName.0 に値「hostname.austin.ibm.com」を設定します。
      clsnmp set sysName.0  "hostname.austin.ibm.com"
      このコマンドは、次のような出力を生成します。
      1.3.6.1.2.1.1.5.0 = hostname.austin.ibm.com
    2. MIB オブジェクト sysName.0 の値は、VariableType パラメーターを使用しても設定できます。この場合は、次の例に示すように、設定する値のタイプを指定できます。
      clsnmp set sysName.0 displayname "hostname.austin.ibm.com"
      このコマンドは、次のような出力を生成します。
      1.3.6.1.2.1.1.5.0 = hostname.austin.ibm.com
  4. MIB ツリーを探索します。

    以下のコマンドは、同じオブジェクト ID プレフィックスで始まるすべてのオブジェクトを名前別に戻します。ただし、clsnmp コマンドと SNMP エージェント間ではより少ないデータ・パッケージしか交換されません。

    clsnmp -h loopback -v -m 10 bulkwalk udp

    このコマンドの出力は以下のようなものです。

    clsnmp -v walk udp
    udpInDatagrams.0 = 653
    udpNoPorts.0 = 22
    udpInErrors.0 = 0
    udpOutDatagrams.0 = 678
    udpLocalAddress.0.0.0.0.7 = 0.0.0.0
    udpLocalAddress.0.0.0.0.9 = 0.0.0.0
    udpLocalAddress.0.0.0.0.13 = 0.0.0.0
    udpLocalAddress.0.0.0.0.19 = 0.0.0.0
    udpLocalAddress.0.0.0.0.37 = 0.0.0.0
    udpLocalAddress.0.0.0.0.161 = 0.0.0.0
    udpLocalAddress.0.0.0.0.5020 = 0.0.0.0
    udpLocalPort.0.0.0.0.7 = 7
    udpLocalPort.0.0.0.0.9 = 9
    udpLocalPort.0.0.0.0.13 = 13
    udpLocalPort.0.0.0.0.19 = 19
    udpLocalPort.0.0.0.0.37 = 37
    udpLocalPort.0.0.0.0.161 = 161
    udpLocalPort.0.0.0.0.5020 = 5020
  5. 複数の MIB 変数を取得します。

    以下のコマンドは、getbulk 要求タイプを使用して、複数の MIB オブジェクトを要求します。 getbulk 要求タイプは、コマンドにリストされている 1 つ以上の MIB オブジェクトの次の論理オブジェクトを戻します。以下の例では、-n オプションにより、最初の 2 つの変数 (sysLocation および ifTable) についてはすぐ次の論理オブジェクトだけ (つまり 1 つだけ) が要求されていることが指示されます。リスト内のそれ以外のすべてのオブジェクト (tcp、udp、および icmp) については、5 回の繰り返しが要求されていることが -m オプションによって指示されます。

    注:
    getbulk 要求タイプは SNMPv2 の機能です。 -h パラメーターにより、clsnmp.conf ファイルで SNMPv2 または SNMPv3 をサポートするエージェントとして定義されているホスト (loopback) が識別されます。

    clsnmp -h loopback -v -n 2 -m 5 getbulk sysLocation ifTable tcp udp icmp

    このコマンドの出力例を次に示します。

    sysLocation.0 = Research Triangle Park, NC
    ifIndex.1 = 1
    tcpRtoAlgorithm.0 = 4
    udpInDatagrams.0 = 782
    icmpInMsgs.0 = 22
    tcpRtoMin.0 = 0
    udpNoPorts.0 = 22
    icmpInErrors.0 = 0
    tcpRtoMax.0 = 120
    udpInErrors.0 = 0
    icmpInDestUnreachs.0 = 22
    tcpMaxConn.0 = -1
    udpOutDatagrams.0 = 807
    icmpInTimeExcds.0 = 0
    tcpActiveOpens.0 = 1
    udpLocalAddress.0.0.0.0.7 = 0.0.0.0
    icmpInParmProbs.0 = 0
  6. ASN.1 変数の名前を検索します。

    以下のコマンドは、所定の MIBVariable 入力の入力 ASN.1 値と最もよく一致する内部 ASN.1 値を持つテキスト名を取得するための検索を行うよう求める要求を送信します。この検索は /etc/mib.defs ファイルから開始され、そこで見つからなかった場合にはコンパイル済み MIB を対象として継続されます。 MIBVariable は、1 回の clsnmp findname 呼び出しにつき 1 つしか許可されません。たとえば、次のようなコマンドでこれを行えます。

    clsnmp findname 1.3.6.1.2.1.6.13.1.2

    このコマンドの出力例を次に示します。

    1.3.6.1.2.1.6.13.1.2 found as: tcpConnLocalAddress

    次も同様の例です。

    clsnmp 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

    同様の例をもう 1 つ示します。

    clsnmp findname 1.3.6.1.2.

    このコマンドの出力例を次に示します。

    1.3.6.1.2. found as: mgmt
  7. SNMPv3 要求を発行します。
    1. winSnmpName エントリーが、次のようなエントリー (すべて 1 行内) を持つマネージャー・ホスト上の /etc/clsnmp.conf ファイルで構成されていて、
      target1   9.3.149.26 snmpv3 u1 -          - AuthNoPriv   HMAC-SHA
      76784e5935acd6033a855df1fac42acb187aa867 -   -
      さらに snmpd エージェント・マシン 9.3.149.26、ユーザー u1 が適切に構成されていれば、そのマネージャー・ホスト上で以下の要求を発行できます。
      clsnmp -v -h target1 get sysName.0
      このコマンドは、次のような出力を生成します。
      sysName.0 = somehostname.austin.ibm.com
    2. 次に示すように、trap コマンドの発行は簡単です。
      clsnmp trap
      注:
      受信されたトラップのセキュリティー・モデルが SNMPv3 であった場合は、そのトラップを listen している管理ステーションが、そのトラップを受信できるように適切に構成された etc/clsnmp.conf ファイルを持っていることを確認してください。

関連情報

pwchange コマンド