メインコンテンツへスキップ

Data ONTAPでSNMP監視を設定する方法

Views:
9,816
Visibility:
Public
Votes:
6
Category:
clustered-data-ontap-8
Specialty:
core
Last Updated:

環境

  • clustered Data ONTAP 8
  • ONTAP 9

回答

注記:新しいバージョンの ONTAP での SNMP の管理については、以下を参照してください:SNMP を管理するためのコマンド

  • clustered Data ONTAP における Simple Network Management Protocol ( SNMP )と SNMP トラップの概要。
  • SNMP を使用して C-Mode クラスタ システムから情報を取得する方法
  • SNMP トラップを設定し、目的のクライアントでイベントを受信する方法

注記:以下を参照してくださいTR-Guide - SNMP Support in Data ONTAP

このレポートの目的は、お客様とNetAppフィールドチームがClustered Data ONTAP 8.2.x、8.3.x、およびONTAP 9におけるSNMPサポートのレベルを理解できるようにすることです。  また、7-modeとCluster modeの両方におけるOIDの可用性を比較します。個々のテーブルまたはグループレベルの情報のみを提供します。netapp.mibファイルには、テーブルまたはグループ内でサポートされているさまざまなフィールドまたは変数に関する追加情報が記載されています。iReasoningなどのMIBブラウザツールを使用すると、netapp.mibファイルの内容を簡単に解釈できます。 

SNMP:

SNMPは、広く利用されているネットワーク監視および制御プロトコルです。データは、各ネットワークデバイス(ハブ、ルーター、ブリッジなど)のアクティビティを報告するハードウェアおよび/またはソフトウェアプロセスであるSNMPエージェントから、ネットワークを監視するために使用されるワークステーションコンソールに渡されます。エージェントは、管理情報ベース(MIB)に含まれる情報を返します。MIBは、デバイスから取得できる情報と、制御可能な情報(オンまたはオフにできる情報)を定義するデータ構造です。SNMPはUNIXコミュニティで誕生し、現在では主要なプラットフォームすべてで広く利用されています。
MIBは、デバイスサブシステムの管理データの構造を記述するものであり、オブジェクト識別子(OID)を含む階層的な名前空間を使用します。各OIDは、SNMPを介して読み取りまたは設定可能な変数を識別します。

注記: NetAppはsnmp-set操作をサポートしていません。また、SNMPのサポートはクラスタ全体に限定されており、vserver化されていません。ただし、これは8.1以降のリリースで実施される予定であり、7Gのvfilerとは異なります。なぜなら、snmpサポートはvfiler化されていなかったからです。

 Clustered Data ONTAP

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 を無効にする - ontapi または zexplore.exe を使用して、API snmp-disableを実行します

    例:$> ontapi snmp-[en|dis]able
    注記:SNMP プロトコルは、クラスタ全体でのみ有効化または無効化できます。Data ONTAP 8.1 C-Mode では、クラスタ内の個々のノードへの SNMP は使用できません。

7G-like SNMP UI:

Data ONTAP C-Modeは、クラスタ上のSNMPの詳細を設定するために、多数のUI(CLIおよびZAPI)を活用します。以下は、クラスタ システム上の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=>有効、off=>無効]

以下は、クラスタ 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が与えられた場合に、そのオブジェクトの値を読み取ります(Unixユーティリティのsnmpgetに類似)
  • snmp-get-next:OIDとして指定されたオブジェクトの次のオブジェクトの値を読み取ります(Unixユーティリティのsnmpgetnextに類似)
  • 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]をsnmpv3ユーザーに対して実行します。-v 3を指定し、ユーザー認証情報を提供します。

PDFの付録セクションには、snmpv3ユーザーを作成し、SNMP utilitiesをユーザーに対して実行する方法の例が記載されています。

SNMP トラップ:

エージェントからマネージャーへの非同期通知:これには現在のsysUpTime値、トラップの種類を識別するOID、およびオプションの変数バインディングが含まれます。トラップの宛先アドレスは、アプリケーション固有の方法で決定され、通常はMIB内のトラップ構成変数によって決定されます。SNMPv2ではトラップメッセージのフォーマットが変更され、PDUはSNMPv2-Trapと名称変更されました。

Clustered Data ONTAP

7-Mode および C-Mode Data ONTAP における SNMP とそのトラップ:

Clustered Data ONTAP

標準 SNMP トラップ:

RFC 1215によると、標準的なSNMPトラップは5種類あります:

  • linkDown - このトラップは、稼働中のアクティブな物理ポートをダウンさせたときに生成されます(ifAdminStatusをupからdownに変更する必要があります/ifindex番号の情報はトラップメッセージに含まれていません。)
  • linkUp - このトラップは、ダウンしている物理ポートを起動したときに生成されます(ifAdminStatusをdownからupに変更する必要があります/ifindex番号の情報はトラップメッセージに含まれていません。)
  • warmStart - warmstartトラップは、通常の再起動を実行したときに生成されます
  • coldStart - coldStartトラップは、送信プロトコルエンティティが、エージェントの設定またはプロトコルエンティティの実装が変更される可能性のある方法で自身を再初期化していることを示します
  • authenticationFailure - authenticationFailureトラップは、ユーザーが誤った権限を使用してシステムにログインしようとしたときに生成されます

NetApp 組み込み SNMP トラップ:

NetAppは、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 トラップ:

これらは、ユーザーの要件に基づいて設定できるトラップです。NetAppにはいくつかの組み込みトラップがありますが、ユーザーは他の理由でイベントを生成したい場合もあります。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

event * CLI を使用すると、以下の操作を実行できます:

イベント宛先作成CLIを使用して、新しいSNMPホストを追加できます。ホストがデフォルトのトラップホストリストに追加されると、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 traphost CLI を使用してトラップホストを追加します:

$> snmp traphost add
-OR-
$> snmp traphost add

注: トラップホスト名を解決するために、クラスタでDNSが設定されていることを確認してください。 

  1. ファイラで SNMP プロトコルが有効になっていることを確認します:

    ::> options -option-name snmp.enable on

  2. クラスタで SNMP トラップを有効にします。これは、次のいずれかの方法で実行できます:       
                 
    次のコマンドを実行します:
    Cluster::> snmp init 1
    - または -
    ZAPI を実行します:
    $> ontapi snmp-trap-enable

  3. イベントをトリガーして監視します。

traps.dat情報 - 参考:Burt # 460968

traps.datファイルは、特にユーザ定義トラップ用です。UDT サポートは、 Data ONTAP C-Mode ではまだサポートされていません( Data ONTAP 8.1.1 時点)。

traps.datファイル末尾に余分な「1」が付いているのは、テーブル内のOIDと末尾が0のOID(テーブル外)を区別するためです。テーブル内のOIDはトラップの対象とすべきではないため、追加の難読化は実際には無効なユーザー定義トラップを減らすのに役立ちます。 

C-Mode OID情報 - 参考資料:Burt #460968 

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$

 
SNMPを無効にしてSNMPユーティリティを実行します:

クラスタで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ユーザーを追加し、snmpユーティリティを実行します:

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 の組み込み SNMP トラップを生成する:

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"

event generate 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"


           

追加情報

ここにテキストを追加してください。

 

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.