更多细节EC2实例监控?

目前,我正在使用AWS Cloudwatch来监控我的EC2服务器的基本指标。

但缺乏使用分区空间,无内存等细节监控。

我应该安装并使用Nagios还是其他更好的select?

(我想尽可能自动化,我不喜欢Nagios …)

我所拥有的是一个简单的脚本,我编写并检查CPU或内存是否达到我认为是高负载的阈值。 如果是这样的话,脚本会调用另一个脚本来收集信息,以分析导致高负载的原因并将其作为附件发送到我的电子邮件地址。 以下是我的脚本示例,您可能需要考虑对其进行增强并将其应用于您的需求。

#!/bin/bash GATHER_INFO=<SCRIPT_NAME_HERE> CPU_LOAD=$(uptime | cut -d"," -f4 | cut -d":" -f2 | cut -d" " -f2 | sed -e "s/\.//g") CPU_THRESHOLD=<VALUE_HERE> MEMORY_USAGE=$(free -m | grep -i "buffers/cache" | awk '{ print $3 }') MEMORY_THRESHOLD=<VALUE_HERE> if [ $CPU_LOAD -gt $CPU_THRESHOLD ] ; then $GATHER_INFO # I call another script here. <SEND_INFORMATION_GATHERED_BY_EMAIL_HERE> # I use nail/mailx here. exit 0 elif [ $MEMORY_USAGE -gt $MEMORY_THRESHOLD ] ; then $GATHER_INFO # I call another script here. <SEND_INFORMATION_GATHERED_BY_EMAIL_HERE> # I use nail/mailx here. exit 0 fi exit 0 

请注意,外部脚本$ GATHER_INFO依赖于已经安装在系统中的工具(例如sysstat)。

我已经回答了类似的问题,并在这里供您参考。

我也使用了Munin ,使用起来非常简单,但问题在于,在Munin服务器上的磁盘I / O太高,如果您将其托pipe在一个EC2实例中,除非您只监视几个实例数量。

Cloudwatch默认提供基本指标。 您可以根据需要添加自定义和详细的指标(尽pipe您仅限于10个额外的免费指标)。

对于您提供的两个示例(磁盘空间和已用内存),设置Cloudwatch非常简单。 实质上,您需要:通过cron运行的脚本,将收集数据并将自定义指标logging到cloudwatch(例如aws-missing-tools或此论坛post )。

除此之外,它真的归结于你想要做的事情。 如果以上方面满足您的需求,则无需考虑更复杂的解决scheme。 而且,根据“自动化”的含义,cloudwatch更加集成到AWS的其他部分,这将使您在许多情况下(例如启动新实例)更容易控制。

Cloudwatch并不打算高度灵活并满足您的所有监控需求。 它覆盖了基础到中级监控,缺乏企业监控系统中的许多function(因为它并不是像其中之一一样,其重点不同)。

我个人build议你使用ZenOSS(易用性)或Nagios(复杂的手动设置)

CopperEgg提供了有关服务器性能和操作的更详细的视图。 在以下方面更详细: – 更高分辨率的数据…意味着服务器指标每分钟收集,分析和显示多达10次,并且 – 更丰富的度量指标…例如,查看每个实例上运行的顶级进程,在实时和历史上

在自动化方面,CopperEgg提供了与木偶和厨师的整合。

全面披露:我的名字是Scott Johnson,我在CopperEgg工作。 CopperEgg的服务托pipe在Amazon EC2上,我们使用我们所有的工具来监控我们自己的服务。

最好的,斯科特