设置Amazon Cloudwatch以在服务器关闭时获得警报


13

我有一个在Amazon EC2上运行的实例,该实例已变成Web服务器。

现在,我一直在查看cloudwatch,但是我不知道它是否是正确的工具。基本上,无论出于何种原因,我都希望在服务器关闭时得到通知。

也许服务器被黑客入侵,或者服务器由于任何原因而关闭,我都希望收到通知。

我已启用clouwatch,并尝试设置警报,但是我只看到诸如网络输入输出或cpu使用情况,d metrix之类的信息。现在,我不知道这些方法是否可以解决问题。


1
结帐cloudkick。我知道我们不应该传播意见,但是cloudkick是我最喜欢的监视解决方案。pingdom几乎没有用,因为您的站点可以ping(apache / nginx),但是您代理的php / java / ruby​​进程也可能无法正常工作。每三分钟用cloudkick命中一个实际的URL并检查您指定的文本是否存在,或2xx成功,这将非常有用,并确保整个堆栈正常工作。我有显示器设置为loadaverage,内存使用,代理连接(服务器脱机或连接断开),HTTP 2XX在页面上的成功,等等
iainlbc

您在这里提出了一个好观点。如果只有php关闭,您仍然会收到200响应。您提供的链接是一个很好的选择。当我做出最后决定时,我将对其进行查看。
Saif Bechan

@iainlbc您可以将Pingdom设置为击中实际URL并检查特定文本。
ceejayoz 2012年

Answers:


11

一种建议是监视应该始终具有数值的指标(例如CPU使用率),并在指标状态为“数据不足”时触发警报,您​​可以使用Amazon的SNS通知您。

另外,您可以设置自定义指标,这些指标返回特定服务(httpd,mysql等)的二进制状态,并在任何这些读为0的任何时间生成警报。这种方法提供了更精细的细节-将其与“数据不足”结合'涵盖所有情况。

使用实际监视您的站点的东西(例如Pingdom,UptimeRobot等)可能会更成功。


我已经看过像pingdom这样的服务,并且我一定会启用它们。此外,我还考虑查看cpu,但我认为仅当Web服务器被黑客入侵时,会发生什么。对httpd,mysql等进行测试肯定会有所帮助。您能否给我一个有关如何启用此二进制状态度量的提示
赛义夫·拜坎(

简要地说:确定一种获取感兴趣的服务状态的方法(例如ps / grep的pid / name;检查所用的端口等)-即看门狗脚本。修改这样的脚本,以调用Cloudwatch API(PutMetricData),将其传递为0(向下)或1(向上)-最好使用为此目的存在的一个SDK(例如Ruby,PHP,等等); 命令行版本的mon-put-data较慢。用cron运行所有程序。
cyberx86

1
好吧,听起来有点复杂。我认为像uptimerobot这样的服务对我个人而言将是更好的选择。感谢您的所有帮助。
Saif Bechan

3

您可以使用OpsGenie(http://www.opsgenie.com)发送有关CloudWatch的丰富警报。Currenly CloudWatch通过其SNS机制具有一组有限的警报机制,包括电子邮件和SMS。

您可以配置CloudWatch来调用OpsGenie Web服务API,根据收件人的喜好通过向iPhone / Android应用程序,SMS,语音电话等的推送通知来迅速通知合适的人。

请查看以下博客文章以获取详细信息:

http://www.opsgenie.com/blog/2012/09/04/aws-cloudwatch-alarms-on-your-mobile-with-opsgenie.html


2

您可以在Cloudwatch中创建警报,并设置警报以使其在进入“数据不足”状态时通知您。大多数已经可用的指标来自VM Host,它对计算机内部发生的事情没有任何真正的了解。

首先,建议您在实例中安装Amazon工具,并设置脚本以报告某些内容(任何情况:CPU使用情况,并进行报告),​​并在该指标停止发送数据时发出警报(因此,该指标进入数据不足状态) )。

这只是最低要求,但应该是一个不错的起点。

请参阅《 Cloudwatch开发人员指南》的监视脚本部分:http : //docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html


太棒了,正是我想要的。
GivP 2015年

2

您可以使用Route 53及其“运行状况检查”。这样,您可以发送SNS警报,还可以将用户重定向到另一个辅助网站或错误屏幕。我认为这是比Cloudwatch更适合您的问题的解决方案。


2

您可以实施EC2状态检查。这是从EC2仪表板完成的。转到实例,选择您的实例,选择状态检查选项卡(在实例描述旁边)单击创建状态检查警报。默认“状态检查失败(任何)”应该是正确的。我总是将间隔设置为大于1,这样我就不会为瞬态问题而烦恼。

还可以将EC2设置为由于某种原因而关闭的实例自动恢复

我还建议使用辅助监视系统。哑巴对这个好。我设置了Linux实用程序mon,它从另一台主机指向我的Web服务器。如果连续两次未能收到200响应代码,则会收到一封电子邮件。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.