Date: 12月 11, 2020
使用Datadog进行Amazon EC2监控? 与SIOS AppKeeper配对以进行自动修复
您是否曾经想过:“如果Datadog能够监视我们的Amazon EC2服务并在检测到故障时自动重新启动它们,那将是一件很好的事吗?”我也有同样的想法,因此决定自己尝试一下。
SIOS AppKeeper会自动监视Amazon EC2实例的故障,并在检测到故障时自动重启实例甚至重启服务。我心想:“如果将Datadog的监视功能与AppKeeper的自动修复功能结合起来,该怎么办?”
它有效,这就是我的工作方式。
如果您已经在使用Datadog,并且有兴趣自己尝试一下,请在本文结尾处注册以访问我们的API。
这是我设置AppKeeper以便从Datadog接收警报并在检测到停机时重新启动Amazon EC2上的Web服务器的步骤。
为了成功运行此实验,我们已经在Amazon EC2(使用Linux 2)上运行了Datadog帐户,AppKeeper帐户和NGINX Web服务器。
如何将Datadog与AppKeeper集成以提供自动修复
第一步:从AppKeeper获取重启API令牌
通过以下表单请求用于Datadog集成的API令牌:
https://mk.sios.jp/BC_AppKeeper_Datadog_api_application
如果您从表单中请求,令牌将被发送到您提供的电子邮件地址。
第二步:在AppKeeper中创建租户
下一步是在AppKeeper中注册受监视实例所属的AWS账户。 (AppKeeper将注册的AWS账户称为“租户”。)
https://sioscoati.zendesk.com/hc/zh-CN/articles/900000123406-Quick-Start-Guide#h_39404cfb-4a76-450f-99c2-e197cc63e50d
第三步:在AWS中创建IAM角色
然后,我在AWS中创建了一个IAM角色(您需要使用它来设置AppKeeper帐户)。如果您不熟悉此过程,请按以下说明进行操作。
第四步:在AppKeeper中添加租户
下一步是在AppKeeper中添加“租户”(AppKeeper认为AWS账户为“租户”)。这是有关执行此操作的详细说明的链接。
第五步:在Datadog中设置综合测试
然后,我需要为我们要监视的Nginx服务器(EC2实例)配置Datadog的轮廓监视。方法如下:
打开Datadog仪表板,然后从菜单中选择UX监视>综合测试。
单击[New Test]右上角的按钮,然后选择[New API Test]创建轮廓监视案例。
在表单中输入以下信息以创建概要监视案例。
- 选择请求类型
选择“ HTTP”。 - 定义请求:
设置以下值。
网址:获取http:// {{{EC2 IP地址}}
名称:AppKeeper Datadog集成测试(任何名称)
地点:东京
3。 指定测试频率
没变化
4。 定义断言
点击“新断言”并设置以下值
什么时候 :
[status code][is][200]
5, 定义警报条件
没变化
6。通知您的团队
没变化
第六步:在Datadog中运行综合测试
完成上述输入后,请按“创建测试”以创建用于外部监视的测试用例。
结果可见,我们可以在“测试结果”部分中看到网络服务器正常工作。
这就是使用Datadog配置Synthetics监视所需要做的全部工作。
第七步:将AppKeeper设置为接收合成警报
接下来,我必须将AppKeeper设置为通知目标。从Datadog菜单中,转到Integrations,然后选择Integrations选项卡。
在搜索框中,输入“ Webhooks”以查找Webhooks集成。
单击“可用”以在您的Datadog帐户中启用Webhooks集成。 (一旦启用,它将显示在“已安装”列中。)
单击“配置”以打开Webhooks集成配置页面。
在页面底部的“ Webhooks”列中,单击“新建+”以创建新的Webhooks通知目标。 对于参数,输入以下内容
名称:集成名称(任何名称)
网址:https://api.appkeeper.sios.com/v2/integration/ {{AWS账户ID}} / actions / recover
有效载荷
{
“ instanceId”:“ {{EC2实例ID}}”, “名称”:“ nginx” } |
自定义标题:选中该复选框并输入以下内容
{ “内容类型”:“应用程序/ json”, “ accept”:“ application / json”, “ appkeeper-integration-token”:“ {{获取AppKeeper外部集成令牌}}中获得的令牌” } |
完成后,按“保存”。
第八步:将AppKeeper连接到综合测试
接下来,我必须配置AppKeeper(注册的Webhooks集成),以便在发生Synthetics监视警报时调用它。
从菜单的“ UX监视”>“综合测试”中打开在“使用Datadog配置综合监视”中设置的测试用例。
从右上方的变速箱中选择“编辑测试详细信息”,然后在“ 5.输入以下值”中输入以下值。 通知您的团队”框以保存更改。
@webhook-{{Datadog中Webhook集成的名称}} |
※您可以设置“如果显示器尚未解决则重新通知”。如果AppKeeper第一次无法恢复,则可以重试。测试不是必需的,但是我们建议您将其设置为([10 minutes]最小间隔)。
安装完成。
第九步:通过再次运行测试来确认集成
然后,我确认如果Datadog检测到它关闭,AppKeeper将还原Web服务器。
打开您刚刚从Datadog中的UX监视>综合测试中设置的综合监视测试用例。
单击右上角的“恢复测试”,然后打开“合成”监视。
现在,Datadog将定期执行Synthetics监视。
测试结果表明服务器已成功访问。
接下来,我创建了网络服务器的伪故障,以测试AppKeeper的自动修复。
由于很难造成真正的失败,因此我停止了该服务,并造成了无法查看网页的情况。为此,我连接到使用SSH安装Nginx服务器并停止Nginx的EC2实例。
sudo systemctl停止nginx |
短暂等待后,Datadog检测到Web服务器不再可访问。
Datadog中的“综合测试”页面还显示测试用例失败。
如果测试用例失败,Datadog将通知AppKeeper Synthetics监视失败。
当AppKeeper收到通知时,它将自动尝试重新启动Nginx。
因此,如果您稍等片刻,就会发现Datadog的Synthetics监控检查将再次通过。
另外,如果您登录到AppKeeper仪表板,则会看到恢复已执行。
–
在本练习中,我以Web服务器(Nginx)为例,通过Datadog自动执行检测故障并通过AppKeeper恢复服务的过程。
通过将Datadog与EventBridge和Lambda集成或创建自定义脚本,可以实现类似的自动化。
但是,如果您经常添加目标实例或重新启动各种服务,则维护EventBridge和Lambda或脚本的成本和复杂性将会增加。
AppKeeper已与Datadog进行了可靠的集成,并且您可以轻松地向应用程序添加目标实例,从而可以轻松地将自动化添加到DevOps环境中,从而减少停机时间。
如果您当前正在使用Datadog,并且想试用AppKeeper的Restart API,请先在此处注册我们的14天免费试用版(安装免费试用版后即可购买订阅)。然后单击此处以请求免费试用。 我们将引导您完成整个过程,并为您提供免费的评估令牌,以帮助您入门。
申请评估令牌
谢谢。我希望您能借此机会更多地了解SIOS AppKeeper,它可以自动监视和恢复在EC2上运行的应用程序。
-SIOS Technology技术团队的Tatsuya Hirao。
经SIOS许可转载