

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

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