

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 监控 FSx for ONTAP EMS 事件
<a name="ems-events"></a>

您可以使用 NetAPP ONTAP 的本机事件管理系统（EMS）监控 FSx for ONTAP 文件系统事件。您可以使用 NetApp ONTAP CLI 查看这些事件。

**Topics**
+ [EMS 事件概述](#ems-events-overview)
+ [查看 EMS 事件](#view-ems-events)
+ [EMS 事件转发到 Syslog 服务器](#ems-log-forwarding)

## EMS 事件概述
<a name="ems-events-overview"></a>

EMS 事件是自动生成的通知，当 FSx for ONTAP 文件系统中出现预定义的情况时，会提醒您。这些通知可让您随时了解情况，以便预防或纠正问题，避免导致更大问题，例如存储虚拟机（SVM）身份验证问题或卷已满。

默认情况下，事件会记录在事件管理系统日志中。使用 EMS 可以监控诸如用户密码更改、FlexGroup 中接近满容量的部分、逻辑单元号（LUN）手动联机或脱机或自动调整卷大小之类的事件。

有关 ONTAP EMS 事件的更多信息，请参阅 NetApp ONTAP 文档中心中的 [ONTAP EMS 参考](https://docs.netapp.com/us-en/ontap-ems-9121/index.html)。要显示事件类别，请使用文档的左侧导航窗格。

**注意**  
仅部分 ONTAP EMS 消息适用于 FSx for ONTAP 文件系统。要查看可用 ONTAP EMS 消息的列表，请使用 NetApp ONTAP CLI 中的 [event catalog show](https://docs.netapp.com/us-en/ontap-cli-9131/event-catalog-show.html) 命令。

EMS 事件描述包含事件名称、严重性、可能的原因、日志消息和纠正措施，可帮助您决定如何响应。例如，当自动调整卷大小失败时即会发生 [wafl.vol.autoSize.fail](https://docs.netapp.com/us-en/ontap-ems-9121/wafl-vol-events.html#wafl-vol-autosize-fail) 事件。根据事件描述，纠正措施是在设置自动调整大小的同时增加最大卷的大小。

## 查看 EMS 事件
<a name="view-ems-events"></a>

使用 NetApp ONTAP CLI 中的 [event log show](https://docs.netapp.com/us-en/ontap-cli-9131/event-log-show.html) 命令显示事件日志的内容。如果您在文件系统上具有 `fsxadmin` 角色，则此命令适用。命令语法如下所示：

```
event log show [{{event_options}}]
```

最近的事件列在最前面。默认情况下，此命令会显示 `EMERGENCY`、`ALERT`、和 `ERROR` 严重性等级事件，其中包含以下信息：
+ **时间** – 事件的时间。
+ **节点** –发生事件的节点。
+ **严重性** –事件的严重性等级。要显示 `NOTICE`、`INFORMATIONAL`、或 `DEBUG` 严重性等级事件，请使用 `-severity` 选项。
+ **事件** –事件名称和消息。

要显示有关事件的详细信息，请使用下表中列出的一个或多个事件选项。


| 事件选项 | 描述 | 
| --- | --- | 
| `-detail` | 显示其他事件信息。 | 
| `-detailtime` | 按反向时间顺序显示详细事件信息。 | 
| `-instance` | 显示有关所有字段的详细信息。 | 
| `-node {{nodename}}\|local` | 显示您指定的节点的事件列表。使用此选项和 `-seqnum` 显示详细信息。 | 
| `-seqnum {{sequence_number}}` | 选择序列中与该数字匹配的事件。与 `-node` 一起使用可显示详细信息。 | 
| `-time {{MM/DD/YYYY HH:MM:SS}}` | 选择在此特定时间发生的事件。使用格式：MM/DD/YYYY HH:MM:SS [\+- HH:MM]。您可以通过在两个时间语句之间使用 `..` 运算符来指定时间范围。<pre>event log show -time "04/17/2023 05:55:00".."04/17/2023 06:10:00"</pre><br />比较时间值是相对于运行命令时的当前时间而言的。以下示例说明了如何仅显示最近一分钟内发生的事件：<pre>event log show -time >1m</pre><br />此选项的月份和日期字段不使用零填充。这些字段可以是个位数；例如，`4/1/2023 06:45:00`。 | 
| `-severity {{sev_level}}` | 选择与 {{sev\_level}} 值匹配的事件，该值必须为以下类型之一：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/fsx/latest/ONTAPGuide/ems-events.html)<br />要显示所有事件，请按如下方式指定严重性：<pre>event log show -severity <=DEBUG</pre> | 
| `-ems-severity {{ems_sev_level}}` | 选择与 {{ems\_sev\_level}} 值匹配的事件，该值必须为以下类型之一：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/fsx/latest/ONTAPGuide/ems-events.html)<br />要显示所有事件，请按如下方式指定严重性：<pre>event log show -ems-severity <=DEBUG</pre> | 
| `-source {{text}}` | 选择与{{文本}}值匹配的事件。源代码通常是软件模块。 | 
| `-message-name {{message_name}}` | 选择与 {{message\_name}} 值匹配的事件。消息名称是描述性的，因此按消息名称筛选输出会显示特定类型的消息。 | 
| `-event {{text}}` | 选择与{{文本}}值匹配的事件。`event` 字段包含事件全文，包括任何参数。 | 
| `-kernel-generation-num {{integer}}` | 选择与{{整数}}值匹配的事件。仅来自内核的事件具有内核生成号。 | 
| `-kernel-sequence-num {{integer}}` | 选择与{{整数}}值匹配的事件。仅来自内核的事件具有内核序列号。 | 
| `-action {{text}}` | 选择与{{文本}}值匹配的事件。`action` 字段描述了您必须采取哪些纠正措施（如果有）来纠正这种情况。 | 
| `-description {{text}}` | 选择与{{文本}}值匹配的事件。`description` 字段描述了事件发生的原因及其含义。 | 
| `-filter-name {{filter_name}}` | 选择与 {{filter\_name}} 值匹配的事件。只有与该值匹配的现有筛选条件所包含的事件才会显示。 | 
| `-fields {{fieldname}},...` | 表示命令输出中还包括指定的一个或多个字段。您可以使用 `-fields ?` 选择想要指定的字段。 | 

**查看 EMS 事件**

1. 要通过 SSH 进入文件系统的 NetApp ONTAP CLI，请按照《适用于 NetApp ONTAP 的 Amazon FSx 用户指南》**中 [使用 NetApp ONTAP CLI](managing-resources-ontap-apps.md#netapp-ontap-cli) 部分中记录的步骤进行操作。

   ```
   ssh fsxadmin@{{file-system-management-endpoint-ip-address}}
   ```

1. 使用 `event log show` 命令显示事件日志的内容。

   ```
   ::> event log show
   Time                Node          Severity      Event
   ------------------- ------------- ------------- ------------------------
   6/30/2023 13:54:19  node1         NOTICE        vifmgr.portup: A link up event was received on node node1, port e0a.
   6/30/2023 13:54:19  node1         NOTICE        vifmgr.portup: A link up event was received on node node1, port e0d.
   ```

有关 `event log show` 命令返回的 EMS 事件的信息，请参阅 NetApp ONTAP 文档中心的 [ONTAP EMS 参考](https://docs.netapp.com/us-en/ontap-ems-9121/index.html)。

## EMS 事件转发到 Syslog 服务器
<a name="ems-log-forwarding"></a>

您可以将 EMS 事件配置为转发通知至 Syslog 服务器。EMS 事件转发用于实时监控文件系统，以确定和隔离各种问题的根本原因。如果您的环境还没有用于处理事件通知的 Syslog 服务器，必须先创建一个。必须在文件系统上配置 DNS 才能解析 Syslog 服务器名称。

**注意**  
Syslog 目的地必须位于文件系统使用的主子网中。

**将 EMS 事件配置为转发通知至 Syslog 服务器。**

1.  要通过 SSH 进入文件系统的 NetApp ONTAP CLI，请按照《适用于 NetApp ONTAP 的 Amazon FSx 用户指南》**中 [使用 NetApp ONTAP CLI](managing-resources-ontap-apps.md#netapp-ontap-cli) 部分中记录的步骤进行操作。

   ```
   ssh fsxadmin@{{file-system-management-endpoint-ip-address}}
   ```

1. 使用 [event notification destination create](https://docs.netapp.com/us-en/ontap-cli-9131/event-notification-destination-create.html) 命令，创建类型为 `syslog` 的事件通知目的地，并指定以下属性：
   + `{{dest_name}}` - 要创建的通知目的地的名称（例如，`syslog-ems`）。事件通知目的地名称必须有 2 到 64 个字符。有效字符为以下 ASCII 字符：A-Z、a-z、0-9、“\_” 和“-”。名称必须以 A-Z、a-z 或 0-9 开头和结尾。
   + `{{syslog_name}}` - Syslog 消息发送到的 Syslog 服务器主机名称或 IP 地址。
   + `{{transport_protocol}}` - 用于发送事件的协议：
     + `udp-unencrypted` - 非安全用户数据报协议。此为默认协议。
     + `tcp-unencrypted` - 非安全传输控制协议。
     + `tcp-encrypted` - 采用传输层安全性协议（TLS）的传输控制协议。指定此选项后，FSx for ONTAP 将通过验证目的地主机的证书来验证其身份。
   + `{{port_number}}` - Syslog 消息发送到的 Syslog 服务器端口。`syslog-port` 参数默认值取决于 `syslog-transport` 参数的设置。如果 `syslog-transport` 设置为 `tcp-encrypted`，`syslog-port` 默认值为 `6514`。如果 `syslog-transport` 设置为 `tcp-unencrypted`，`syslog-port` 默认值为 `601`。否则，默认端口设置为 `514`。

   ```
   ::> event notification destination create -name {{dest_name}} -syslog {{syslog_name}} -syslog-transport {{transport_protocol}} -syslog-port {{port_number}}
   ```

1. 使用 [event notification create](https://docs.netapp.com/us-en/ontap-cli-9131/event-notification-create.html) 命令创建新的通知，将事件过滤器定义的一组事件转发到在上一步中创建的通知目的地，并指定以下属性：
   + `{{node_name}}` – 事件筛选器的名称。事件过滤器中包含的事件会被转发到 `-destinations` 参数中指定的目的地。
   + `{{dest_name}}` - 事件通知发送到的现有通知目的地的名称。

   ```
   ::> event notification create -filter-name {{filter_name}} -destinations {{dest_name}}
   ```

1. 如果选择 TCP 作为 `{{transport_protocol}}`，则可以使用 `event notification destination check` 命令生成测试消息并验证设置是否有效。用该命令指定以下属性：
   + `{{node_name}}` - 节点的名称（例如，`FsxId07353f551e6b557b4-01`）。
   + `{{dest_name}}` - 事件通知发送到的现有通知目的地的名称。

   ```
   ::> set diag
   ::*> event notification destination check -node {{node_name}} -destination-name {{dest_name}}
   ```