介绍
DigitalOcean Monitoring可以通过各种指标来了解整个基础设施的资源使用情况。 警报策略允许您为各个资源配置自定义阈值,以定义健康的使用。 通知会被发送出来,以便在使用率超过阈值时知道,以便您可以快速响应更改。
在本指南中,我们将介绍如何设置警报策略并为DigitalOcean Droplet配置通知。
配置目标Droplet
与其他DigitalOcean监控功能一样,警报策略和通知功能依赖于DigitalOcean Agent提供的信息 :一个收集指标的小型开源程序。 在设置警报策略之前,必须在每个参与的滴滴上安装代理。
在本指南中,我们将使用Ubuntu 16.04 Droplet来演示如何配置警报策略和通知。 要迅速让代理启动并在Droplet上运行,请按照以下说明进行操作。 如果您想要其他说明,我们的“ 如何安装和使用DigitalOcean代理进行监控 ”文章提供了有关代理的更深入的信息和更完整的演练。
对于新的Droplet ,可以在创建过程中通过在“创建”页面的“选择附加选项”部分选择“监控”来安装代理 。
对于现有的Droplet ,可以通过登录到Droplet并键入以进行安装:
curl -sSL https://agent.digitalocean.com/install.sh | sh
一旦DigitalOcean代理安装在您的Droplet上,为管理目的配置一个sudo
用户。 您可以按照Ubuntu 16.04的初始服务器设置指南创建管理用户。
准备继续时,请访问DigitalOcean控制面板 。
创建警报策略
代理已安装在您的Droplet上后,您可以开始创建警报策略。 在控制面板中,单击顶部菜单中的监视 :
在随后的页面上,单击创建警报策略按钮。 如果您目前没有任何警报策略,您将看到一个欢迎屏幕,中间有按钮:
如果您有活动警报策略,则该按钮将在右侧:
您将被带到警报策略创建页面。
选择公制并设置阈值
每个警报策略由度量 , 阈值和警报间隔组成 。 这些可以在“ 选择指标和设置阈值”部分中配置。
定义警报策略的第一步是选择您希望创建策略的资源。 支持以下指标:
- CPU :在Droplet上使用的总CPU占百分之百的百分比
- 带宽 - 入站 : 到达Droplet的入站流量(MBps)
- 带宽 - 出站 :来自Droplet的传出流量,以MBps为单位
- 磁盘 - 读取 :Droplet磁盘的读取活动(MB / s)
- 磁盘 - 读取 :Droplet磁盘的写入活动,单位为MB / s
- 内存利用率 :使用总内存的百分比,100%
- 磁盘利用率 :正在使用的总存储(包括附加块存储)的百分比,100%
有关每个度量的附加信息,请参见我们的“数字海量指标和术语词汇表” 。
选择您要配置警报策略的指标。 对于本指南,我们将选择CPU :
在下一个字段中,选择是否要在资源利用率高于或低于我们设置的阈值时收到警报。 在大多数情况下,当使用率上升到阈值以上时,警报是更有用的选项,因为高使用率告诉我们当前的资源可能已经不足够了。 因此,我们将选择以上政策:
接下来,设置触发警报的实际阈值。 这将取决于您选择的指标,具体值或百分比。 因为在这个例子中,我们正在创建一个CPU警报策略,这将是一个百分比。
注意:您应该选择的阈值在很大程度上取决于您对于警报策略的意图以及基础设施中该资源被认为正常的使用量。 例如,计算集群的正常CPU使用率可能与Web应用程序的CPU使用率不同。 同样地,为您提供可能需要扩展的早期指标的阈值可能与立即应对的紧急阈值不同。
对于我们的示例,我们将使用70%的警报策略,这表明实质性但不是过度使用:
下一个字段表示警报间隔。 指标在所选时间间隔内进行平均,以决定是否触发警报。 警报窗口的范围可以为5分钟到1天。 我们会选择5分钟 ,以便如果平均使用量超过我们的门槛,我们会迅速通知:
现在我们已经定义了警报策略的参数,我们可以将策略与特定的Droplet相结合。
将政策应用于Droplet
“ 选择Droplet”或“标签”部分包含一个字段,您可以将警报策略应用于特定的“Droplet”或“Droplet组”。
在提供的字段中,您可以输入单个Droplet , Droplet标签或这两个标识符的混合的名称。 通过名称添加滴可以明确地定位各个资源。 将标签添加到警报策略中,可以灵活地决定通过添加或删除Droplet中的标签来决定策略涵盖的哪些Droplet。
选择要应用警报策略的滴液或Droplet。 请记住, 只有安装了代理的Droplet将被监控 :
一旦警报策略与至少一个Droplet或标签相关联,我们可以继续。
选择警报通知方式
当触发警报时,发送通知。 DigitalOcean目前可以向您的DigitalOcean帐户电子邮件地址或使用Slack发送通知。 可以启用多个通知方法,并且必须至少选择一种警报类型。
默认情况下,选择与当前DigitalOcean帐户相关联的电子邮件。 目前,无法为警报通知设置备用电子邮件地址。 如果您设置了Slack通知,您可以选择取消选中电子邮件通知,将其关闭。
如果您是Slack组织的一部分,您可以选择连接您的Slack帐户以接收Slack中的通知。 点击连接松弛按钮授权DigitalOcean在您的Slack组织中创建通知:
在下面的授权页面上,您可以选择您认证的任何Slack团队或登录到其他团队。 然后,您可以选择通知Slackbot(它将仅向您发送消息),通知频道,或通过直接消息通知任何人或组。
对于此演示,我们将使用DigitalOcean帐户电子邮件通知,因此我们不需要修改本节中的任何设置。
选择警报名称并保存策略
最后,选择警报策略的名称。 当通知发送时,此名称将用于标识此特定警报策略,因此选择唯一和描述性值很重要。
我们将呼叫我们的警报测试CPU警报 :
完成后,单击创建警报按钮创建警报策略。
您的警报策略将被创建。 您将被带回到监控索引页面,您可以看到新的警报:
现在我们有一个警报策略,我们可以触发它来测试我们的通知。
触发警报
创建新的警报策略后,测试它是非常重要的。 我们需要确保它正确触发,并且在触发警报时能够接收到通知。 登录到您的警报政策覆盖的Ubuntu 16.04 Droplet继续。 如果您担心中断生产主机上的服务,最好创建并添加新的Droplet到您的测试策略。
为了产生必要的CPU使用率来触发警报,我们将使用一个称为stress
的工具,这在Ubuntu的默认软件包存储库中是可用的。 更新apt
包索引并通过键入以下内容安装该实用程序:
sudo apt-get update
sudo apt-get install stress
安装stress
后,运行此命令占用您的Droplet的CPU:
stress -c `nproc --all`
这将为您的每个Droplet处理器启动一个工作进程,以生成高CPU使用率指标。 让进程运行,以使用超出我们选择的警报间隔的配置阈值。
检查通知
由于我们的警报策略被配置为在门槛破裂五分钟后触发,我们应该期待很快收到我们的第一个通知。 关注与您的DigitalOcean帐户相关联的电子邮件地址。
通知电子邮件将在主题行中指示警报策略的名称。
电子邮件的正文显示了触发警报的度量值以及被破坏的阈值。 还提供了一个到控制面板中提示Droplet页面和Droplet IP地址的链接:
现在我们已经成功触发了警报,我们可以停止我们的CPU饥饿进程来测试解决通知。
解决警报
当警报间隔的平均资源使用率回落到预期范围内时,警报将自动解决。 此时,警报无法手动解决或确认。
让我们考虑一下我们的例子。 我们的CPU警报策略配置了70%的阈值和5分钟的警报间隔。 这意味着当过去五分钟内收集的CPU指标的平均值低于70%的阈值时,警报将被解决。 这提供了一个很好的平衡,允许Droplet过渡到触发状态,当有合理的期望,一个新的警报不会再次立即触发。
要解决我们的警报,我们需要停止我们的stress
过程,以允许CPU使用率低于阈值一段时间。 如果还没有,在Ubuntu 16.04 Droplet上,按CTRL + C可以停止stress
过程并返回到bash
提示符。
在五分钟内平均CPU使用率下降到70%以下之后,“滴滴”将过渡到触发状态,您将被发送一个分辨率的电子邮件。
再次,主题行将按名称提及警报政策。 分辨率电子邮件的主体报告了Droplet处于触发状态的总时间,警报间隔当前的度量平均值以及Droplet的IP地址。 如果您想进行任何更改,则会将警报政策中包含链接:
目前的警报已经解决了。 警报策略将继续监视Droplet的CPU使用情况。
结论
在本指南中,我们演示了如何配置警报策略来监视Droplet资源,并在使用超过可定制阈值时通过电子邮件通知我们。 我们已经将安全策略应用于安装了DigitalOcean Agent的Droplet,并使用CPU密集型程序来触发警报。 我们还确认警报和解决通知都按预期工作。
要了解有关DigitalOcean监控的更多信息,请查看以下文章: