linux – 短期运行的短暂服务器的性能数据收集
我们正在构建一个医疗图像处理软件堆栈,目前托管在各种AWS资源上.作为此应用程序的一部分,我们有一些长期运行的服务器(数据库,负载平衡器,Web应用程序等).在这些服务器上收集性能数据非常简单 – 我的Nagios(用于监控/通知)和Munin(用于收集性能数据和显示趋势)的配方工作正常.
但是 – 作为此应用程序的一部分,我们不断启动并终止EC2上的计算实例.在典型用法中,这些计算实例启动,自行配置,从消息队列接收作业,然后开始处理该作业,这需要15分钟到8小时以上.作业完成后,这些实例将被终止,永远不会再被听到. 在这些短期实例上收集性能数据的体面策略是什么? 我不一定需要对它们进行监控 – 如果它们由于某种原因而失败,我们的应用程序将检测到这一点,并处理在另一个实例上重新启动作业或提升标志,以便管理员可以查看事情.但是,收集CPU(用户,空闲,iowait等),内存使用,网络流量,磁盘读/写数据等信息仍然很有用.在我们的内部数据库中,我们跟踪机器的实例ID运行每个作业,能够查找特定实例ID的性能数据以进行故障排除和分析是非常有帮助的. Munin似乎不是一个很好的候选者,因为它需要在文本文件中维护一个munin节点列表 – 对于一个流失量大的环境来说远非理想,并且每个节点运行的时间很短,我宁愿无限期地保留全分辨率数据,而不是让RRD随着时间的推移降低数据. 最后,我的猜测是这需要一个监控引擎: >使用数据库(MySQL,SQLite等)进行配置和数据存储 在评估选项时,还有其他我应该考虑的事情吗? 也许我过度思考这个问题,并且应该在这些短期实例上以1分钟的间隔运行sar并在终止之前收集sar db文件. 解决方法
Zenoss有一个EC2Manager插件,可以自动添加所有EC2实例(即使在开源版本中),并监视EC2的变化.但是,Zenoss可能比你真正想要的更重量级.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |