跳转到主内容

如何在 Data ONTAP 上配置 SNMP 监控

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

适用场景

  • 集群模式 Data ONTAP 8

问题解答

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

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

:请参阅以下 TR-Guide - Data ONTAP 8.2.x 和 Data ONTAP 8.3.x 中的 SNMP 支持

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

SNMP

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

注: NetApp 不支持 SNMP 设置操作。此外、仅在集群范围内支持 SNMP-Support 、并且不对其进行虚拟化。但是,这将在 8.1 之后的版本中完成、与 7G vFiler 不同、因为从不对 snmp-support 进行 vfilered 处理。

 集群模式 Data ONTAP

启用 / 禁用 Snmps :

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

  • 在使用 CLI 的集群上启用 SNMP —从 NGSH 运行 options-option-name snmp.enable-option-value on
  • 使用 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
    注: SNMP 协议只能在集群范围内启用或禁用。在 Data ONTAP 8.1 C 模式下,无法将 SNMP 发送到集群中的单个节点。

7G 类 SNMP UI :

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

  • snmp contact: 查看或修改联系人详细信息
  • snmp location: 查看或修改位置详细信息
  • snmp init: 启用或禁用从集群 [1-> 已启用、 0-> 已禁用 ] 发出的陷阱
  • snmp authtrap: 启用或禁用身份验证故障陷阱 [1] 启用、 0-> 禁用 ]
  • 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 模式仅支持 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 模式系统上配置 SNMPv3 :

  • 使用安全登录创建 CLI 在集群上创建 SNMPv3 用户。
  • 输入 EngineID (使用作为默认值的本地 EngineID )。
  • 输入身份验证协议并输入指定的 SNMPv3 用户的密码。
  • snmp[walk|get|getnext]通过指定 -v3 并提供用户凭据来运行到 SNMPv3 用户。

PDF 中的附录部分提供了如何创建 SNMPv3 用户并运行SNMP utilities给用户的示例。

SNMP 陷阱

从代理到管理器的异步通知:包括当前的 sysuptime 值、标识陷阱类型的 OID 和可选的变量绑定。陷阱的目标寻址是以特定于应用程序的方式确定的、通常是通过 MIB 中的陷阱配置变量来确定的。在 SNMPv2 中更改了陷阱消息的格式,并将 PDU 重命名为 SNMPv2-Trap 。

集群模式 Data ONTAP

SNMP 及其在 7- 模式和 C 模式 Data ONTAP 中的陷阱:

集群模式 Data ONTAP

标准 SNMP 陷阱:

根据 RFC 1215 ,有 5 个标准 SNMP 陷阱:

  • linkdown —关闭活动物理端口时生成此陷阱,此端口已启动( ifAdminStatus 应从 up 更改为 down/ 陷阱消息中不包含 ifIndex 编号信息。)
  • LinkUp —启动已关闭的物理端口时,将生成此陷阱( ifAdminStatus 应从 down 更改为 up/ifIndex Number 信息不包含在陷阱消息中。)
  • 预热启动—执行正常重新引导时会生成预热启动陷阱
  • 冷启动 - 冷启动陷阱表示发送协议实体正在重新初始化自身、从而可以更改代理的配置或协议实体实现
  • 验证失败—当用户尝试使用不正确的权限登录到系统时,将生成验证失败陷阱

NetApp 内置 SNMP 陷阱:

为了方便 SNMP 用户, NetApp 提供了大量内置陷阱。该文件/mroot/etc/mib/netapp.mib包含内置陷阱列表。每个陷阱都有唯一的标识符或陷阱代码。内置陷阱的一个示例是 VolumeOnline ,其陷阱代码为 276 。以下信息取自netapp.mib文件。

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- 模式具有支持用户定义陷阱的基础架构、但 Data ONTAP 8.1 的 C 模式基础架构不支持用户定义的陷阱。这些是计划中的 UIS ( 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 条目下称为事件目标表的另一个表中。
                               
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 执行以下操作:

可以使用事件目标 create 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 陷阱主机 CLI 添加陷阱主机:

$> snmp traphost add
- 或 -
$> 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 [1]

traps.dat 文件尤其适用于用户定义的陷阱。UDT 支持尚未进入 Data ONTAP C 模式(从 Data ONTAP 8.1.1 开始)

traps.dat 文件的结尾有额外的 1 ,有助于区分表内的 OID 和 0 结尾的 OID (表外)。表中的 OID 不应被捕获,因此额外的混淆实际上有助于减少无效的用户定义陷阱 

C 模式 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$

 
禁用 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文件中定义;以下步骤说明了如何在陷阱主机或 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.