EC2 实例的生产监控

EC2 实例的生产监控

我正在 EC2 上设置我的第一个生产实例,并希望确保我已设置好所有必要的监控。我想要监控三种不同类型的事物:

  1. 实例正在运行吗?如果底层硬件发生故障,EC2 实例可能会在无警告的情况下终止,而且据我所知,它们不会自动重新启动。因此,如果没有,请重新启动它。

  2. UNIX 运行正常吗?这通常是关于 CPU 负载、磁盘空间等的问题。

  3. 网站有响应吗?如果没有,请重新启动。

我最初在云之外的物理服务器上设置了 Nagios,但它实际上只对第 2 项有帮助。它可以告诉我实例是否消失或网站是否没有响应,但据我所知,它无法执行任何命令来修复这种情况。

我在 Google 上搜索了这个问题,得到了很多选择 - Cacti、Monit、God、Ganglia,可能还有更多我现在忘记的。我没有时间研究它们。我知道亚马逊的 Cloudwatch,但它似乎没有做我的 Nagios 安装没有做的任何事情。

如果您已经实施了类似的做法,能否分享一下您的有效做法?

答案1

Monit 应该可以满足您的大部分需求。如果您想要更高级但更专门针对 EC2 的产品,请查看右尺度或者标量(RightScale 的开源竞争对手)。

答案2

我已经使用 Puppet 解决了这个问题...我构建了自己的 AMI,上面安装了 Puppet 客户端,还有一个用户数据 SysV-init 脚本,该脚本在启动和启用 Puppet 进程之前设置主机名。

当 EC2 实例连接到 puppetmaster 时,它会传递其当前 IP 地址,然后我可以使用它来模板化 EC2 节点 Nagios 配置。当 IP 地址更改时,Nagios 配置文件会更新,并且 Puppet 会启动 Nagios 重启。

重新启动 EC2 实例需要在监控箱上安装 EC2 API 工具并设置一些功能来自动执行实例启动过程。我创建了一个 ruby​​ 脚本来执行此操作并根据请求启动的主机设置用户数据内容。

答案3

免责声明,我是 Zenoss 社区经理。

Zenoss 将完全按照您的要求执行。

1)有一个专门用于监控EC2实例的Zenoss ZenPack:http://community.zenoss.org/docs/DOC-4423

2) 您还可以通过打开 SSH 并在操作系统级别监控实例。我已经通过这种方式在 EC2 上完成了 Debian、Ubuntu、CentOS 和 OpenSolaris。

3) 您可以通过进程、检查页面或合成点击来监控网站。为了响应 Zenoss 中的事件,您可以调用事件命令(如“/etc/init.d/apache restart”)来重新启动已关闭的 Web 服务器(或您可以编写脚本的任何其他命令)。

查看http://zenoss.org

答案4

我只想补充一点:在监控网站正常运行时间方面,我的公司使用 Pingdom,老实说,我对他们感到非常满意。

http://www.pingdom.com/

他们甚至有 Android 和 iPhone 应用程序(运行非常好),可以在您的网站关闭时通知您。

坦白说,我并不是他们的员工。我只是一个热情的顾客 :)

相关内容