跳转到主内容

NetApp_Insight_2020.png 

什么是 SNMP ?如何使用它从集群模式 Data ONTAP 系统获取信息?

Views:
15
Visibility:
Public
Votes:
0
Category:
data-ontap-8
Specialty:
core
Last Updated:

可不使用  

适用于

集群模式 Data ONTAP 8

解答

  • 简单网络管理协议( 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 处理。

 3010108__en_US__solutionskb60714_1.jpg

启用 / 禁用 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 。

3010108__en_US__solutionskb60714_2.jpg

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

参考 - TR3608

3010108__en_US__solutionskb60714_3.jpg

标准 SNMP 陷阱:

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

  • LinkDown —此陷阱是在关闭活动物理端口时生成的( ifadminstatus 应从上改为下)
  • LinkUp —启动关闭的物理端口时将生成此陷阱( IFAdminStatus 应从“向下”更改为“向上”)
  • 预热启动—执行正常重新引导时会生成预热启动陷阱
  • 冷启动 - 冷启动陷阱表示发送协议实体正在重新初始化自身、从而可以更改代理的配置或协议实体实现
  • 验证失败—当用户尝试使用不正确的权限登录到系统时,将生成验证失败陷阱

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

使用事件生成 CLI 生成陷阱的步骤在本附件的附录部分中介绍。 

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"


           

其他信息

在此处添加您的文本。