Data ONTAP で SNMP による監視を設定する方法
環境
clustered Data ONTAP
回答
- clustered Data ONTAP での簡易ネットワーク管理プロトコル( SNMP )と SNMP トラップの簡単な紹介。
- SNMP を使用して C-Mode クラスタシステムから情報を取得する方法を教えてください。
- 目的のクライアントで SNMP トラップを設定し、イベントを受信する方法を教えてください。
注[1]: Data ONTAP 8.2.x および Data ONTAP 8.3.x では、次の『 TR-Guide - SNMP Support 』を参照してください
このレポートの目的は、 clustered Data ONTAP 8.2.x および clustered Data ONTAP 8.3.x での SNMP サポートのレベルをお客様とネットアップのフィールドチームが理解できるようにすることです。また、 7 モードとクラスタモードの両方の OID の可用性も比較します。個々のテーブルまたはグループレベルの情報のみが表示されます。netapp.mib ファイルには、テーブルまたはグループ内でサポートされているさまざまなフィールドまたは変数に関する追加情報が含まれています。i推論 のようnetapp.mib
な MIB ブラウザツールを使用すると、ファイルの内容を簡単に解釈できます。
SNMP:
SNMPは、一般に普及しているネットワーク監視および制御プロトコルです。データは SNMP エージェントから渡されます。 SNMP エージェントは、各ネットワークデバイス(ハブ、ルータ、またはブリッジ)のアクティビティを報告するハードウェアまたはソフトウェアのプロセスで、ネットワークの監視に使用されるワークステーションコンソールに渡されます。エージェントは、 MIB (管理情報ベース)に含まれる情報を返します。 MIB は、デバイスから取得可能な情報と、制御可能な情報(オフまたはオン)を定義するデータ構造です。UNIX コミュニティを起点とする SNMP は、すべての主要プラットフォームで広く使用されています。
MIB は、デバイスサブシステムの管理データの構造を記述します。 MIB は、 Object Identifier ( OID; オブジェクト ID )を含む階層型ネームスペースを使用します。各 OID は、 SNMP を介して読み取りまたは設定できる変数を識別します。
注:ネットアップでは、 SNMP セット操作はサポートされていません。また、 SNMP サポートはクラスタ全体でのみサポートされ、サーバ化されません。ただし、これは 8.1 以降のリリースで実行され、 7G vFiler とは異なります。これは、 snmp-support が vfilered 状態になっていないためです。
SNMP の有効化 / 無効化:
SNMP プロトコルは、 CLI/ZAPI を使用してクラスタで有効または無効にできます。
- CLI を使用したクラスタでの SNMP の有効化: NGsh から、を実行
options-option-name snmp.enable-option-value
します on - CLI を使用してクラスタ上の SNMP を無効にする: ngsh から
options-option-name snmp.enable-option-value
、 off を実行します - ZAPI を使用したクラスタでの SNMP の有効化: ONTAPI または Zexplore.exe を使用して、を実行します
API snmp-enable
- ZAPI を使用したクラスタでの SNMP の無効
API snmp-disable
$> ontapi snmp-[en|dis]able
化: ONTAPI または Zexplore.exe を使用して、例を実行します。注: SNMP プロトコルはクラスタ全体でのみ有効または無効にできます。Data ONTAP 8.1 C-Mode では、クラスタ内の個々のノードに対する SNMP は使用できません。
7G のような SNMP UI :
Data ONTAP C-Mode では、多数の UI ( CLI および ZAPI )を使用して、クラスタ上の SNMP の詳細を設定します。次に、クラスタ化されたシステムでの SNMP の設定に役立つ各 CLI の概要を示します。
snmp contact:
連絡先の詳細を表示または変更しますsnmp location:
ロケーションの詳細を表示または変更しますsnmp init:
クラスタから送信されたトラップを有効または無効にします( 1 -> 有効、 0 -> 無効)。snmp authtrap:
AuthenticationFailure トラップを有効または無効にします [1->enabled,0->disabled]snmp community add|delete:
クラスタ内のコミュニティを表示、追加、または削除するには、デフォルトの「パブリック」コミュニティ( ro )があります。- 注意:サポートされているのは、読み取り専用コミュニティのみです。また、最初の SNMP コミュニティエントリを削除するには、通知に使用するトラップホストを削除する必要があります。
snmp traphost add|delete:
クラスタ内のトラップホストを表示、追加、または削除するには、クラスタ内で発生したすべてのトラップ(またはイベント)が、ホストの実行中にこれらのホストに送信されますsnmptrapd
options snmp.enable:
クラスタ上で SNMP プロトコルを有効または無効にします。 [ オン => 有効、オフ => 無効 ]
次に、クラスタ化された Data ONTAP システムで SNMP を設定する際に役立つ ZAPI の概要を示します。
snmp-enable:
クラスタで SNMP プロトコルを有効にしますsnmp-disable:
クラスタ上の SNMP プロトコルをディセーブルにしますsnmp-trap-enable:
トラップホストに送信されるトラップをイネーブルにしますsnmp-trap-disable:
トラップホストに送信されるトラップをディセーブルにしますsnmp-community-add:
SNMP コミュニティを追加します。Data ONTAP 8.1 C-Mode では、 RO コミュニティのみがサポートされていますsnmp-community-delete:
既存のコミュニティを削除しますsnmp-traphost-add:
トラップホストを追加しますsnmp-traphost-delete:
既存のトラップホストを削除しますsnmp-status:
クラスタ上の SNMP 設定の詳細を表示します(場所、連絡先、トラップ、トラップホスト、コミュニティの詳細など)。snmp-get:
OID が API への入力として指定された場合にオブジェクト値を読み取ります( snmpget UNIX ユーティリティと同様)。snmp-get-next:
OID として指定されたオブジェクトの横にあるオブジェクトの値を読み取ります( snmpgetnext UNIX ユーティリティと同様)。Add/modify/view contact:
クラスタの連絡先とロケーションの詳細は、 SNMP CLI を使用して追加または変更できます。連絡先またはロケーションの詳細を変更するための対応する API はありません。ただし、 SNMP [Walk | Get | GetNext ] (または) snmp-status を使用して、クラスタの詳細を読み取ることができます( SNMP または ZAPI を使用して変更することはできません)
例:
CLI を使用した追加 / 変更:
ZAPI コールの使用を確認:
$> ontapi -x snmp-status
SNMP コールの使用を確認:
$> snmpwalk -c public -v [1|2c]
C-Mode システムで SNMPv3 を設定するには、次の手順を実行します。
- Security Login Create CLI を使用して、クラスタに SNMPv3 ユーザを作成します。
- engineID を入力します(デフォルトで使用されるローカル engineID を使用します)。
- 認証プロトコルを入力し、指定した SNMPv3 ユーザのパスワードを入力します。
snmp[walk|get|getnext]
-v3 を指定し、ユーザクレデンシャルを指定して、 SNMPv3 ユーザに対してを実行します。
PDF の付録セクションでは、 SNMPv3 ユーザSNMP utilities
を作成してユーザに対して実行する方法の例を示します。
SNMPトラップ
エージェントからマネージャへの非同期通知:現在の sysUpTime 値、トラップのタイプを識別する OID 、およびオプションの変数バインディングが含まれます。トラップの宛先アドレスは、アプリケーション固有の方法で決定されます。通常は、 MIB のトラップ設定変数を使用します。トラップメッセージの形式が SNMPv2 で変更され、 PDU の名前が snmpv2-trap に変更されました。
7-Mode および C-Mode での SNMP とそのトラップ Data ONTAP :
標準SNMPトラップ
RFC 1215 には、 5 つの標準 SNMP トラップがあります。
- linkDown :アクティブな物理ポートをダウンさせると、このトラップが生成されます。このポートはアップ状態になります( ifAdminStatus を up から down に変更する必要があります。また、 ifindex number 情報はトラップメッセージに含まれません。)
- linkup - このトラップは、ダウンしている物理ポートを起動すると生成されます( ifAdminStatus を down から up/ に変更する必要があります。 ifindex number 情報はトラップメッセージに含まれません。)
- warmstart ●通常のリブートを実行すると、ウォームスタートトラップが生成されます
- coldstart ● coldstart トラップは、送信側のプロトコルエンティティが、エージェントの設定またはプロトコルエンティティの実装が変更されるように再初期化していることを示します
- authenticationFailure :ユーザが不正な権限を使用してシステムにログインしようとすると、 authenticationFailure トラップが生成されます
ネットアップ組み込みの SNMP トラップ:
ネットアップには、 SNMP ユーザの利便性を考慮した多数のトラップが組み込まれています。このファイル/mroot/etc/mib/netapp.mib
には、組み込みトラップのリストが含まれています。各トラップには、一意の識別子またはトラップコードがあります。組み込みトラップの例としては、 VolumeOnline があり、そのトラップコードは 276 です。以下の情報はnetapp.mib
ファイルから取得されます。
OID の後に、トラップであることを示す notification-type タグが続きます。このタグは、説明とトラップコード(この場合は 276 )に関連付けられています。
volumeOnline NOTIFICATION-TYPE
OBJECTS {productTrapData, productSerialNum}
STATUS current
DESCRIPTION Volume is online now. The string sent with trap specifies name of volume which is online now.
::= { netapp 0 276 }
ユーザ定義SNMPトラップ
これらは、ユーザの要件に基づいて設定できるトラップです。ネットアップにはいくつかのトラップが組み込まれていますが、ユーザは他の理由でイベントを生成したい場合があります。7-Mode には、ユーザ定義トラップをサポートするインフラがありますが、 Data ONTAP 8.1 の C-Mode インフラでは、ユーザ定義トラップはサポートされません。ユーザ定義トラップの設定に役立つ計画的な UI ( Data ONTAP 8.1 以降)は次のとおりです。
- snmp-trap-list
- snmp-trap-set
- snmp-trap-delete :トラップを削除します
- snmp-trap-reset を使用します
- snmp-trap-load
EMS との提携:
トラップは EMS イベントに関連付けられます。SNMP イベントは、イベント CLI を使用しても生成できます。
SNMP トラップホストリストに追加されたすべてのトラップホストは、トラップホストエントリの下にあるイベント宛先テーブルと呼ばれる別のテーブルにレプリケートされます。
test-01::*> system snmp traphost show
TRAPHOST1
TRAPHOST2
test-01::*> event destination show -name traphost
Name: traphost
Mail Destination: -
SNMP Destination: TRAPHOST1
TRAPHOST2
Syslog Destination: -
Syslog Facility: -
SNMP Trap Community: public
Hide Parameter Values?: false
イベント * CLI を使用して、次の操作を実行できます。
新しい SNMP ホストは、イベントデスティネーションの create CLI を使用して追加できます。ホストがデフォルトのトラップホストリストに追加されると、 SNMP トラップホストリストにレプリケートされ、クラスタでトリガーされたすべてのイベントがこのホストに送信されます。
csiqa-3170-6a1365754940::*> snmp traphost
-
csiqa-3170-6a1365754940::*> event destination show -name traphost
Name: traphost
Mail Destination: -
SNMP Destination: -
Syslog Destination: -
Syslog Facility: -
SNMP Trap Community: qwerty
Hide Parameter Values?: false
csiqa-3170-6a1365754940::*> snmp community
csiqa-3170-6a1365754940
ro qwerty
csiqa-3170-6a1365754940::*> event destination modify -name traphost -hide-parameters false -snmp 10.229.88.174 -snmp-community qwerty
csiqa-3170-6a1365754940::*> event destination show -name traphost
Name: traphost
Mail Destination: -
SNMP Destination: csiqa-labopt-rh5-003.gdl.englab.netapp.com
Syslog Destination: -
Syslog Facility: -
SNMP Trap Community: qwerty
Hide Parameter Values?: false
csiqa-3170-6a1365754940::*> snmp traphost
csiqa-labopt-rh5-003.gdl.englab.netapp.com (csiqa-labopt-rh5-003.gdl.englab.netapp.com) <10.229.88.174>
csiqa-3170-6a1365754940::*>
ただし、特定のイベントだけを受信するようにホストを設定する場合は、イベントルート CLI を使用して、任意のイベントをその宛先にルーティングできます。イベントを一覧表示するには、次の手順を実行します。
csiqa-3070-591287556400::*> event route show
Freq Time
Message Severity Destinations Threshd Threshd
-------------------------------- -------------- -------------- ------- -------
EthrOutput.FamilyType.Err ERROR - 0 0
LUN.clone_snapshot_destroyed NOTICE - 0 0
LUN.destroy INFORMATIONAL - 0 0
LUN.space_reservation_not_honored
NOTICE - 0 0
LUN.volume_processing_failed_no_space
ERROR - 0 0
Nblade.DidNotInitialize ERROR - 0 0
Nblade.JunctionRootLookup WARNING - 0 0
Nblade.Nfs4IllegalDirentName ERROR - 0 0
Nblade.NfsRaidError ERROR - 0 0
対応するイベントを必要な宛先にマッピングします。
すべてのイベントが SNMP トラップに対応しているわけではありませんSNMP トラップに関連付けられているすべてのトラップを確認するには、次の CLI を使用します。
csiqa-3070-591287556400::*> event route show -snmp-support true
Freq Time
Message Severity Destinations Threshd Threshd
-------------------------------- -------------- -------------- ------- -------
app.log.alert ALERT - 0 0
app.log.crit CRITICAL - 0 0
app.log.debug DEBUG - 0 0
app.log.emerg EMERGENCY - 0 0
app.log.err ERROR - 0 0
app.log.info INFORMATIONAL - 0 0
app.log.notice NOTICE - 0 0
app.log.warn WARNING - 0 0
asup.general.create ERROR - 0 0
asup.general.drop ERROR - 0 0
asup.general.drop.enqueue INFORMATIONAL - 0 0
SNMP トラップ:トラップの設定方法とイベントの生成方法
SNMP トラップホスト CLI を使用してトラップホストを追加します。
$> snmp traphost add
-$> snmp traphost add
または - 注:トラップホスト名を解決するために、クラスタに DNS が設定されていることを確認してください。
-
Filer で SNMP プロトコルが有効になっていることを確認します。
::> options -option-name snmp.enable on
-
クラスタで SNMP トラップを有効にします。これは、
Cluster::> snmp init 1
次のいずれかの方法で実行できます。次のコマンドを実行します。 - または - ZAPI を実行します。
$> ontapi
snmp-trap-enable
- イベントのトリガーと監視
traps.dat
情報 - 参照先: BURT #460968 [2]
traps.dat
ファイルは、特にユーザ定義トラップ用です。UDT のサポートは、 Data ONTAP C-Mode ではまだサポートされていません( Data ONTAP 8.1.1 以降)。
traps.dat
ファイルの末尾には余分な 1 があり、テーブル内の OID と 0 (テーブル外)で終わる OID を区別するのに役立ちます。テーブル内の OID はトラップされないようにする必要があります。そのため、余分な暗号化は、実際には無効なユーザ定義トラップを減らすのに役立ちます
C モード OID 情報 - リファレンス: BURT #460968 [3]
netapp.mib
ファイルに表示される OID はキーであり、実際の絶対 OID 値ではありません。これを確認する最善の方法は、実際に最後の数字を削除して snmpwalk を実行することです。
例:
- [
rakeshc@cyclnb01 ~/p4]$ snmpwalk -v 1 -c public 10.10.10.10 .1.3.6.1.4.1.789.1.5.11.1.2
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1026 = STRING: "aggr0"
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1030 = STRING: "aggr0_br3040n2_rtp"
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1034 = STRING: "n1_aggr1"
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1038 = STRING: "n2_aggr1"
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1050 = STRING: "coral_aggr"
上記の 5 つの異なる OID ( 1026 、 1030 、 1034 、 1038 、 1050 )を指定し、次の手順を実行します。
[rakeshc@cyclnb01 ~/p4]$ snmpwalk -v 1 -c public 10.61.76.140 .1.3.6.1.4.1.789.1.5.11.1.2.1026
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1026 = STRING: "aggr0"
さまざまなタイプのトラップ / イベントを生成する方法の詳細な手順については、次の付録セクションを参照してください。
SNMP を有効にし、 SNMP ユーティリティを実行します。
snmpwalk/snmpget/snpgetnext etc..
クラスタ上で実行され、設定手順も実行されます
DOT_cluster::*> options snmp.enable
DOT_cluster
snmp.enable on
DOT_cluster::*> network interface show -vserver DOT_cluster
Logical Status Network Current Current Is
Vserver Interface Admin/Oper Address/Mask Node Port Home
----------- ---------- ---------- ------------------ ------------- ------- ----
DOT_cluster
cluster_mgmt up/up 10.238.44.38/18 node1 e0c true
DOT_cluster::*>
bash-3.2$ snmpwalk -c public -v 1 10.238.44.38 .1.3.6.1.4.1.789.1.5.11.1.2
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1026 = STRING: "aggr0"
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1030 = STRING: "aggr0_partnernode"
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1034 = STRING: "aggr_node1"
bash-3.2$
snmpwalk/snmpget/snpgetnext etc..
クラスタでのディセーブル化、および設定手順も実行します
DOT_cluster::*> option snmp.enable off
(options)
1 entry was modified.
DOT_cluster::*> net int show -vserver DOT_cluster
(network interface show)
Logical Status Network Current Current Is
Vserver Interface Admin/Oper Address/Mask Node Port Home
----------- ---------- ---------- ------------------ ------------- ------- ----
DOT_cluster
cluster_mgmt up/up 10.238.44.38/18 node1 e0c true
DOT_cluster::*>
bash-3.2$ snmpwalk -c public -v 1 10.238.44.38 .1.3.6.1.4.1.789.1.5.11.1.2
Timeout: No Response from 10.238.44.38
bash-3.2$ snmpget -c public -v 1 10.238.44.38 .1.3.6.1.4.1.789.1.5.11.1.2.1026
Timeout: No Response from 10.238.44.38.
bash-3.2$ snmpgetnext -c public -v 1 10.238.44.38 .1.3.6.1.4.1.789.1.5.11.1.2.1026
Timeout: No Response from 10.238.44.38.
bash-3.2$
SNMPv3 プロトコルは、 SNMPv1 、 v2c と比較してセキュリティで保護されたプロトコルです。 SNMPv3 ユーザに設定して SNMP ツールを実行するには、次の手順を実行する必要があります
DOT_cluster::*> security login create -username snmpv3user -application snmp -authmethod usm
Enter the authoritative entity's EngineID [local EngineID]:
Which authentication protocol do you want to choose (none, md5, sha) [none]: sha
Enter the authentication protocol password (minimum 8 characters long):
Enter the authentication protocol password again:
Which privacy protocol do you want to choose (none, des) [none]: des
Enter privacy protocol password (minimum 8 characters long):
Enter privacy protocol password again:
DOT_cluster::*>
bash-3.2$ snmpwalk -v 3 -u snmpv3user -a SHA -A testing123! -l authPriv -x DES -X testing123! 10.238.44.38 .1.3.6.1.4.1.789.1.5.11.1.2
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1026 = STRING: "aggr0"
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1030 = STRING: "aggr0_partnernode"
SNMPv2-SMI::enterprises.789.1.5.11.1.2.1034 = STRING: "aggr_node1"
bash-3.2$
ネットアップの組み込みトラップはnetapp.mib
ファイルで定義されています。次の手順は、トラップホストまたは SNMP の宛先にトラップを生成する方法を示しています
DOT_cluster::*> snmp traphost
-
DOT_cluster::*> snmp traphost add 10.229.88.174
DOT_cluster::*> snmp traphost
10.229.88.174 (10.229.88.174) <10.229.88.174>
DOT_cluster::*> snmp init
1
DOT_cluster::*> options snmp.enable
DOT_cluster
snmp.enable on
DOT_cluster::*>
DOT_cluster::*> volume offline -volume testvol -vserver vs0
Volume "vs0:testvol" is now offline.
Volume modify successful on volume: testvol
DOT_cluster::*> volume online -volume testvol -vserver vs0
Volume "vs0:testvol" is now online.
Volume modify successful on volume: testvol
DOT_cluster::*>
2013-05-03 05:30:00 prakashl-vsim1.sim.eng.btc.netapp.in [10.238.44.36] (via UDP: [10.238.44.36]:161) TRAP, SNMP v1, community public
SNMPv2-SMI::enterprises.789 Enterprise Specific Trap (275) Uptime: 1:10:12.70
SNMPv2-SMI::enterprises.789.1.1.12.0 = STRING: "Volume testvol@vserver:17309c4f-b3d6-11e2-a9a8-123478563412 is offline. " SNMPv2-SMI::enterprises.789.1.1.9.0 = STRING: "1-80-000011"
2013-05-03 05:31:55 prakashl-vsim1.sim.eng.btc.netapp.in [10.238.44.36] (via UDP: [10.238.44.36]:161) TRAP, SNMP v1, community public
SNMPv2-SMI::enterprises.789 Enterprise Specific Trap (276) Uptime: 1:12:12.07
SNMPv2-SMI::enterprises.789.1.1.12.0 = STRING: "Volume testvol@vserver:17309c4f-b3d6-11e2-a9a8-123478563412 is online. " SNMPv2-SMI::enterprises.789.1.1.9.0 = STRING: "1-80-000011"
イベント生成 CLI を使用してトラップを生成します。
また、イベント生成 CLI を使用してトラップを生成することもできます。
DOT_cluster::*> event destination show
Hide
Name Mail Dest. SNMP Dest. Syslog Dest. Params
---------------- ----------------- ------------------ ------------------ ------
allevents - - - false
asup - - - false
criticals - - - false
pager - - - false
traphost - 10.229.88.174
- false
5 entries were displayed.
DOT_cluster::*> snmp traphost
10.229.88.174 (10.229.88.174) <10.229.88.174>
DOT_cluster::*> event generate -messagename wafl.dir.size.warning -values TEST_EVENT
DOT_cluster::*>
2013-05-03 05:33:01 prakashl-vsim1.sim.eng.btc.netapp.in [10.238.44.36] (via UDP: [10.238.44.36]:161) TRAP, SNMP v1, community public
SNMPv2-SMI::enterprises.789 Enterprise Specific Trap (485) Uptime: 1:13:17.57
SNMPv2-SMI::enterprises.789.1.1.12.0 = STRING: "Directory TEST_EVENT is approaching the maxdirsize limit. " SNMPv2-SMI::enterprises.789.1.1.9.0 = STRING: "1-80-000011"
追加情報
ここにテキストを追加します。