

# 创建发送电子邮件的负载均衡器延迟告警
<a name="US_AlarmAtThresholdELB"></a>

您可以设置 Amazon SNS 通知并配置告警，此告警监控经典负载均衡器超过 100 毫秒的延迟。

## 使用 Amazon Web Services 管理控制台 设置延迟告警
<a name="load-balancer-alarm-console"></a>

可以执行以下步骤以使用 Amazon Web Services 管理控制台创建负载均衡器延迟警报。

**创建负载均衡器延迟告警**

1. 访问 [https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/)，打开 CloudWatch 控制台。

1. 在导航窗格中，依次选择 **Alarms**（告警）和 **All alarms**（所有告警）。

1. 选择**Create alarm（创建警报）**。

1. 在 **CloudWatch Metrics by Category（按类别显示的 CloudWatch 指标）**下，选择 **ELB Metrics（ELB 指标）**类别。

1. 选择包含经典负载均衡器和 **Latency（延迟）**指标的行。

1. 对于统计数据，选择 **Average（平均值）**，然后选择其中的一个预定义百分比值，或者指定一个自定义百分比值（例如 **p95.45**）。

1. 对于时间段，选择 **1 Minute（1 分钟）**。

1. 选择**下一步**。

1. 在**警报阈值**下面，输入警报的唯一名称（例如，**myHighCpuAlarm**）和警报描述（例如，**Alarm when Latency exceeds 100s**）。告警名称必须仅包含 UTF-8 字符，并且不能包含 ASCII 控制字符

   名称必须仅包含 UTF-8 字符，并且不能包含 ASCII 控制字符。描述可以包含 Markdown 格式，该格式仅在 CloudWatch 控制台的警报**详细信息**选项卡中显示。Markdown 非常适合用于向运行手册或其他内部资源添加链接。

1. 在 **Whenever（每当）**下，对于 **is（是）**，选择 **>** 并输入 **0.1**。对于 **for（持续时间）**，输入 **3**。

1. 在 **Additional settings（附加设置）**下，对于 **Treat missing data as（将缺失的数据作为以下内容处理）**选择 **ignore (maintain alarm)（忽略（保持告警状态））**，以使缺失数据点不会触发告警状态更改。

   对于 **Percentiles with low samples（样本数少的百分比）**，选择 **ignore (maintain the alarm state)（忽略（保持告警状态））**，使告警只评估具有充足数量的数据样本的情况。

1. 在 **Actions（操作）**下，为 **Whenever this alarm（每当此告警）**选择 **State is ALARM（状态为“告警”）**。对于 **Send notification to（发送通知到）**，选择一个现有 SNS 主题或创建一个新 SNS 主题。

   要创建 SNS 主题，请选择 **New list（新列表）**。对于 **Send notification to（发送通知到）**输入 SNS 主题的名称（例如 **myHighCpuAlarm**），对于 **Email list（电子邮件列表）**输入在告警状态变为 `ALARM`（告警）时通知的电子邮件地址列表（以逗号分隔）。将向每个电子邮件地址发送一封主题订阅确认电子邮件。您必须先确认订阅，然后才会发送通知。

1. 选择**创建警报**。

## 使用 Amazon CLI 设置延迟告警
<a name="load-balancer-alarm-cli"></a>

可以执行以下步骤以使用 Amazon CLI创建负载均衡器延迟警报。

**创建负载均衡器延迟告警**

1. 设置 SNS 主题。有关更多信息，请参阅 [设置 Amazon SNS 通知](Notify_Users_Alarm_Changes.md#US_SetupSNS)。

1. 使用 [put-metric-alarm](https://docs.amazonaws.cn/cli/latest/reference/cloudwatch/put-metric-alarm.html) 命令创建告警，如下所示：

   ```
   1. aws cloudwatch put-metric-alarm --alarm-name lb-mon --alarm-description "Alarm when Latency exceeds 100s" --metric-name Latency --namespace AWS/ELB --statistic Average --period 60 --threshold 100 --comparison-operator GreaterThanThreshold --dimensions Name=LoadBalancerName,Value=my-server --evaluation-periods 3 --alarm-actions arn:aws:sns:us-east-1:111122223333:my-topic --unit Seconds
   ```

1. 通过使用 [set-alarm-state](https://docs.amazonaws.cn/cli/latest/reference/cloudwatch/set-alarm-state.html) 命令强制更改警报状态来测试警报。

   1. 将告警状态从 `INSUFFICIENT_DATA`（数据不足）更改为 `OK`（正常）。

      ```
      1. aws cloudwatch set-alarm-state --alarm-name lb-mon --state-reason "initializing" --state-value OK
      ```

   1. 将告警状态从 `OK`（正常）更改为 `ALARM`（告警）。

      ```
      1. aws cloudwatch set-alarm-state --alarm-name lb-mon --state-reason "initializing" --state-value ALARM
      ```

   1. 检查您是否收到有关告警的电子邮件通知。