如何在 Data ONTAP 上配置 SNMP 监控
适用场景
集群模式 Data ONTAP
问题解答
- 简单网络管理协议( 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 处理。
启用 / 禁用 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 。
SNMP 及其在 7- 模式和 C 模式 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 以解析陷阱主机名称。
-
确保已在文件管理器上启用 SNMP 协议:
::> options -option-name snmp.enable on
-
在集群上启用 SNMP 陷阱。这可以通过以下任一方式完成:
运行以下命令:Cluster::> snmp init 1
- 或 -
运行 ZAPI :
$> ontapi
snmp-trap-enable
- 触发和监控事件。
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$
在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$
与 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 内部陷阱在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"
追加信息
在此处添加您的文本。