我在AWS中有一个带有Centos 6的EC2实例,我只有一个主管,它维护着一个PHP脚本。在某些情况下,此脚本失败,我可以看到类似的内容:
$ sudo /usr/local/bin/supervisorctl status
my-worker EXITED Aug 19 10:19 AM
我希望收到关于它的提醒电子邮件,因为我的脚本自8月19日以来一直无效。
我尝试查找与运行状况检查相关的内容,但运行状况检查仅适用于负载均衡器。此外,我试图在CloudWatch中找到一些东西,但找不到相关的指标。
任何想法,当我的工作人员倒下时,我如何收到电子邮件?
答案 0 :(得分:3)
由于Cloudwatch默认只能访问管理程序级指标而不是基于操作系统的指标(如RAM使用情况或与流程相关的统计数据),因此没有开箱即用的指标。
要扩充Cloudwatch中的数据,您可以编写一个小脚本来检查流程是否正在运行,然后调用PutMetricData
将该指标上传到Cloudwatch。
这样的事情应该有效:
#!/bin/bash
${process_name}=$1
DATE=`date +%Y-%m-%dT%H:%M:%S.000Z`
processes_running=`pidof ${process_name} | wc -w`
aws cloudwatch put-metric-data --metric-name ${process_name}_running --namespace "MyService" --value ${processes_running} --timestamp $DATE
然后每隔一分钟用cron
或其他东西调用(或者通常你想要更新Cloudwatch - 最大分辨率是1分钟,但会聚集更频繁的呼叫)
然后您只需create an alarm执行某些操作(例如使用SNS向所有订阅的地址发送电子邮件,但可能还会执行某些操作,例如重新启动实例)。