跳转到主内容

如何在 DATA ONTAP 上配置 SNMP 监控

Views:
1,578
Visibility:
Public
Votes:
2
Category:
clustered-data-ontap-8
Specialty:
core
Last Updated:

适用于

  • 集群模式 Data ONTAP 8
  • ONTAP 9

回答

注意:有关在较新版本的 ONTAP 中管理 SNMP 的信息,请参见以下内容:用于管理 SNMP 的命令

  • 简要介绍简单网络管理协议 (SNMP) 和集群模式 Data ONTAP 中的 SNMP 陷阱。
  • 如何使用 SNMP 从 C-Mode 集群系统获取信息?
  • 如何在所需客户端上配置 SNMP 陷阱并接收事件?

注意:请参阅以下TR-Guide - SNMP Support in Data ONTAP

本报告的目的是帮助客户和 NetApp 现场团队了解集群模式 Data ONTAP 8.2.x、8.3.x 和 ONTAP 9 中的 SNMP 支持级别。  它还比较了 7-mode 和集群模式的 OID 可用性。它仅提供单个表或组级别的信息。netapp.mib 文件提供有关表或组中支持的各种字段或变量的其他信息。可以使用类似 iReasoning 的 MIB 浏览器工具轻松解释 netapp.mib 文件的内容。 

SNMP:

SNMP 是一个广泛使用的网络监视和控制协议。数据从 SNMP 代理传递到用于监视网络的工作站控制台,SNMP 代理是每个网络设备(集线器、路由器或网桥)中报告活动的硬件和/或软件进程。代理返回管理信息库(MIB)中包含的信息,该管理信息库是一个数据结构,用于定义可从设备获得的内容以及可控制的内容(关闭或打开)。SNMP 起源于 UNIX 社区,已在所有主要平台上广泛使用。
MIB 描述了设备子系统的管理数据的结构;它们使用包含对象标识符(OID)的分层命名空间。每个 OID 标识一个可以通过 SNMP 读取或设置的变量。

注意: NetApp 不支持 snmp-set 操作。此外,SNMP-support 仅适用于群集范围,不会 vserverized。但是,这将在 8.1 之后的版本中完成,并且与 7G vfilers 不同,因为 snmp-support 从未 vfilerized。

 Clustered Data ONTAP

启用/禁用 SNMP:

可以使用 CLI/ZAPI 在集群上启用和禁用 SNMP 协议:

  • 使用 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 的 SNMP 用户界面:

集群模式 Data ONTAP 利用一组 UI(CLI 和 ZAPI)来配置集群上的 SNMP 详细信息。下面简要介绍了有助于在集群系统上配置 SNMP 的每个 CLI:

  • snmp contact: 查看或修改联系人详细信息
  • snmp location: 查看或修改位置详细信息
  • snmp init: 启用或禁用从集群发送的陷阱 [1-> enabled, 0->disabled]
  • snmp authtrap: 启用或禁用 authenticationFailure 陷阱 [1->enabled,0->disabled]
  • snmp community add|delete: 要查看、添加或删除集群中的社区,将存在默认的 'public' 社区,即 ro。
  • 注意: 仅支持只读社区。此外,为了删除第一个 snmp 社区条目,用户需要删除用于通知目的的 traphost。
  • snmp traphost add|delete: 要查看、添加或删除集群中的 traphost,集群中发生的所有陷阱(或事件)将在主机运行时发送给这些主机 snmptrapd
  • options snmp.enable: 启用或禁用集群上的 snmp 协议 [on=>enabled, off=>disabled]

以下是有助于在集群模式 Data ONTAP 系统上配置 SNMP 的每个 ZAPI 的简介:

  • snmp-enable: 在集群上启用 snmp 协议
  • snmp-disable: 在集群上禁用 snmp 协议
  • snmp-trap-enable: 启用向 traphosts 发送陷阱
  • snmp-trap-disable: 禁用向 traphosts 发送陷阱
  • snmp-community-add: 添加 snmp 社区。Data ONTAP 8.1 C-Mode 中仅支持 ro 社区
  • snmp-community-delete: 删除现有社区
  • snmp-traphost-add: 添加 traphost
  • snmp-traphost-delete: 删除现有 traphost
  • snmp-status: 提供集群上 snmp 配置的详细信息(例如位置、联系人、陷阱、traphosts、社区详细信息)
  • 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 用户的密码。
  • 通过指定 -v 3 并提供用户凭据,对 snmpv3 用户运行 snmp[walk|get|getnext]

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 ,有 5 个标准 SNMP 陷阱:

  • 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 基础架构不支持用户定义陷阱。这些是计划的用户界面(在 Data ONTAP 8.1 之后),将有助于配置用户定义的陷阱:

  • snmp-trap-list
  • snmp-trap-set
  • snmp-trap-delete
  • snmp-trap-reset
  • snmp-trap-load

与 EMS 的关联:

陷阱与 EMS 事件相关联。也可以使用事件 CLI 生成 SNMP 事件。
添加到 SNMP traphost 列表的所有 traphost 都将复制到 traphost 条目下名为事件目标表的另一个表中。
                               
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 主机。当主机添加到默认 traphost 列表时,它会在 SNMP traphost 列表中复制,集群中触发的所有事件都会发送到此主机。

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 添加 traphost:

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

注意: 确保在集群上配置 dns 以解析 traphost 名称。 

  1. 确保在文件管理器上启用 SNMP 协议:

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

  2. 在集群上启用 SNMP 陷阱。这可以通过以下任一方式完成:       
                 
    运行以下命令:
    Cluster::> snmp init 1
    -OR-
    运行 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 实用程序:

与 snmpv1|v2c 相比,snmpv3 协议是一种安全协议;为 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 文件中定义;以下步骤显示如何在 traphost 或 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"


           

追加信息

在此处添加文字。

 

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.