Data ONTAP で SNMP による監視を設定する方法
環境
- clustered Data ONTAP 8
- ONTAP 9
回答
注:新しいバージョンのONTAPでSNMPを管理するには、次の項目を参照してください。 SNMPを管理するコマンド
- clustered Data ONTAPで簡易ネットワーク管理プロトコル(SNMP)とSNMPトラップが簡単に導入されました。
- SNMPを使用してC-Modeクラスタシステムから情報を取得する方法
- SNMPトラップを設定し、目的のクライアントでイベントを受信するにはどうすればよいですか。
注:次のTR-Guide - Data ONTAPでのSNMPサポートを参照してください。
本レポートの目的は、clustered Data ONTAP 8 .2.x、8.3.x、およびONTAP 9におけるSNMPサポートのレベルを、お客様やNetAppのフィールドチームが把握できるようにすることです。 また、7-ModeとクラスタモードのOIDの可用性も比較します。個 々 のテーブルまたはグループレベルでのみ情報が提供されます。netapp.mibファイルは、テーブルまたはグループ内でサポートされるさまざまなフィールドや変数に関する追加情報を提供します。iReasoningなどのMIBブラウザツールを使用すると、netapp.mib
ファイルの内容を簡単に解釈できます。
SNMP:
SNMPは、一般に普及しているネットワーク監視および制御プロトコルです。データはSNMPエージェントから渡されます。SNMPエージェントは、各ネットワークデバイス(ハブ、ルータ、またはブリッジ)のアクティビティを報告するハードウェアプロセスまたはソフトウェアプロセスであり、ネットワークの監視に使用されるワークステーションコンソールに渡されます。エージェントは、Management Information Base(MIB;管理情報ベース)に含まれる情報を返します。MIBは、デバイスから取得できる情報と、制御可能な情報(オフまたはオン)を定義するデータ構造です。UNIXコミュニティに起源を持つSNMPは、すべての主要プラットフォームで広く使用されるようになりました。
MIBは、デバイスサブシステムの管理データの構造を表します。MIBは、Object Identifier(OID;オブジェクト識別子)を含む階層型ネームスペースを使用します。各OIDは、SNMPを介して読み取りまたは設定できる変数を識別します。
注 :NetAppでは、snmp-set操作はサポートされていません。また、snmp-supportはクラスタ全体に限定され、サーバ化は行われません。ただし、SNMPサポートがvFiler化されなかったため、これは8.1以降のリリースで実行され、7G vFilerとは異なります。
SNMPsの有効化/無効化:
SNMPプロトコルは、CLI / ZAPIを使用してクラスタで有効または無効にすることができます。
- CLIを使用したクラスタでのSNMPの有効化- ngshから
options-option-name snmp.enable-option-value
を実行 - CLIを使用したクラスタでのSNMPの無効化- ngshから
options-option-name snmp.enable-option-value
を実行 - ZAPIを使用したクラスタでのSNMPの有効化- ONTAPIまたはzexplore.exeを使用して、
API snmp-enable
- ZAPIを使用したクラスタでのSNMPの無効化- ONTAPIまたはzexplore.exeを使用して、
API snmp-disable
を実行します
$> ontapi snmp-[en|dis]able
例:$> ontapi snmp-[en|dis]able
注: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 ->有効、0 ->無効]snmp community add|delete:
クラスタ内のコミュニティを表示、追加、または削除するには、デフォルトの「public」コミュニティ(ro)があります。- 注: 読み取り専用コミュニティのみがサポートされます。また、最初のSNMPコミュニティエントリを削除するには、通知に使用されるトラップホストを削除する必要があります。
snmp traphost add|delete:
クラスタ内のトラップホストを表示、追加、または削除するために、ホストの実行中にクラスタ内で発生したすべてのトラップ(またはイベント)が該当するホストに送信されます。snmptrapd
options snmp.enable:
クラスタでSNMPプロトコルを有効または無効にします[on => enabled、off => disabled]
以下は、clustered 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:
APIへの入力としてOIDが指定されたときにオブジェクト値を読み取ります(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ユーザのパスワードを入力します。
- -v 3を指定してユーザクレデンシャルを指定し、SNMPv3ユーザに対して
snmp[walk|get|getnext]
実行します。
PDFの付録セクションでは、SNMPv3ユーザを作成し、そのユーザに対してSNMP utilities
実行する方法の例を示します。
SNMPトラップ:
エージェントからマネージャへの非同期通知:現在のsysUpTime値、トラップのタイプを識別するOID、およびオプションの変数バインディングが含まれます。トラップの宛先アドレス指定は、アプリケーション固有の方法で決定されます。通常は、MIBのトラップ設定変数を使用します。トラップメッセージの形式がSNMPv2で変更され、PDUの名前がSNMPv2-Trapに変更されました。
7-ModeおよびC-Mode Data ONTAPでのSNMPとそのトラップ:
標準SNMPトラップ:
RFC 1215に従って、次の5つの標準SNMPトラップがあります。
- linkDown -このトラップは、アクティブな物理ポート(稼働中)を停止したときに生成されます(ifAdminStatusをupからdownに変更する必要があります。また、ifindex番号情報はトラップメッセージに含まれません。)
- linkup -このトラップは、ダウンしている物理ポートを起動したときに生成されます(ifAdminStatusをdownからupに変更する必要があります。また、ifindex番号の情報がトラップメッセージに含まれていません)。)
- warmstart -通常のリブート時にウォームスタートトラップが生成されます。
- coldstart - coldStartトラップは、エージェントの設定またはプロトコルエンティティの実装が変更されるように、送信側プロトコルエンティティが自身を再初期化していることを示します。
- authenticationFailure -ユーザが不正なPrivilegesを使用してシステムにログインしようとすると、authenticationFailureトラップが生成されます。
ネットアップの組み込みSNMPトラップ:
NetAppには、SNMPユーザの利便性を考慮して、多数のトラップが組み込まれています。ファイル/mroot/etc/mib/netapp.mib
には、ビルトイントラップのリストが含まれています。各トラップには一意の識別子またはトラップコードがあります。組み込みトラップの例はvolumeOnlineで、トラップコードは276です。以下の情報はnetapp.mib
ファイルから取得されています。
OIDの後にnotification-typeタグが続きます。これは、OIDがトラップであり、概要およびトラップコード(この場合は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トラップ:
これらは、ユーザの要件に基づいて設定できるトラップです。NetAppにはいくつかのトラップが組み込まれていますが、他の理由でイベントを生成したい場合もあります。7-Modeにはユーザ定義トラップをサポートするインフラがありますが、Data ONTAP 8 .1向けのclustered Data ONTAPインフラではユーザ定義トラップはサポートされません。ユーザ定義トラップの設定に役立つ、予定されている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トラップホストリストに追加されたすべてのトラップホストは、トラップホストエントリのevent destinationテーブルという別のテーブルにレプリケートされます。
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
event * CLIを使用して実行できる操作は次のとおりです。
新しいSNMPホストは、event destination 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
対応するイベントを「Destination Required」にマッピングします。
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トラップを有効にします。
次のいずれかの方法で実行できます。次のコマンドを実行します。
ZAPI -または-Cluster::> snmp init 1
を実行します。
$> ontapi
snmp-trap-enable
- イベントのトリガーと監視
traps.dat
情報-リファレンス:BURT #460968 [1]
traps.dat
ファイルは、特にユーザ定義トラップ用です。UDTは、Data ONTAP C-Modeではまだサポートされていません(Data ONTAP 8.1.1以降)。
traps.dat
ファイルの末尾には1が追加されており、テーブル内のOIDと0で終わるOID(テーブルの外側)を区別するのに役立ちます。テーブル内のOIDはトラップされるべきではないため、余分な難読化は実際には無効なユーザ定義トラップを減らすのに役立ちます。
C-Mode OID情報-リファレンス:BURT #460968 [2]
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組み込みトラップは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"
追加情報
ここにテキストを追加します。