EC2实例的生产监控

我在EC2上build立了我的第一个生产实例,并且要确保我已经完成了所有必要的监控。 有三种不同types的东西我想监测:

  1. 实例是否正在运行? 如果底层硬件发生故障,EC2实例可以在不发出警告的情况下终止,并且据我所知,它们不会自动重新启动。 所以,如果没有,开始备份。

  2. UNIX是否正常运行? 这是关于CPU负载,磁盘空间等常见的东西

  3. 该网站是否响应? 如果没有,请重新启动它。

我最初在云外的一台物理服务器上设置了Nagios,但它实际上只对项目2有帮助。它可以告诉我实例是否消失了,或者网站没有响应,但是据我所知,执行任何命令来解决这个问题。

我在这个问题上search了许多选项 – 仙人掌,Monit,上帝,Ganglia,现在可能更多,我忘记了。 我没有时间研究这些。 我知道亚马逊的Cloudwatch,但似乎并没有做任何我的Nagios安装尚未做的事情。

如果你已经有了这样的东西,可以请你分享一下对你有用的东西吗?

Monit应该做你需要的大部分。 如果你想要一些更先进的,但更专门为EC2定制的东西,看看由RightScale或Scalr ( RightScale的开源竞争对手)提供的服务。

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

当EC2实例连接到puppet时,它会传递它的当前IP地址,然后我可以使用它来模拟EC2节点的Nagiosconfiguration。 当IP地址改变时,Nagiosconfiguration文件被更新,Puppet启动Nagios重启。

重新启动EC2实例需要在监视盒上安装EC2 API工具,并设置一些内容来自动执行实例引导过程。 我已经创build了一个ruby脚本来完成这项工作,并为每个被请求启动的主机设置用户数据内容。

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

Zenoss会完全按照你的要求去做。

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

2)您也可以通过打开SSH并在操作系统级别监视它们来监视实例。 我已经在EC2上完成了Debian,Ubuntu,CentOS和OpenSolaris。

3)您可以通过stream程监控网站,检查页面或合成点击。 为了响应Zenoss中的事件,你可以调用一个事件命令,比如'/etc/init.d/apache restart'来重新启动一个停止运行的web服务器(或者其他脚本)。

http://zenoss.org查看

我只想补充一点:就监控网站正常运行时间而言,我的公司使用Pingdom,而且我真的很激动。

http://www.pingdom.com/

他们甚至有Android和iPhone应用程序(工作得很好),当您的网站停工时,它们会通知您。

为了充分披露,不,我不为他们或任何事情工作。 我只是一个热心的客户:)