我在 AWS 中有一个使用 Centos 6 的 EC2 实例,我只有一个负责维护单个 PHP 脚本的主管。在某些情况下,此脚本会失败,我会看到类似这样的内容:
$ sudo /usr/local/bin/supervisorctl status
my-worker EXITED Aug 19 10:19 AM
我希望收到有关它的警报电子邮件,因为我的脚本自 8 月 19 日以来一直无法运行。
我试图找到与健康检查相关的内容,但健康检查仅适用于负载均衡器。我也试图在 CloudWatch 中找到一些东西,但找不到适合我的相关指标。
知道吗,当我的 worker 摔倒时我如何接收电子邮件?
最佳答案
对于类似的东西,没有开箱即用的指标,因为默认情况下 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 向所有订阅地址发送电子邮件,但也可能执行某些操作,例如重启实例)。
关于amazon-web-services - 工作人员在 AWS EC2 上失败时发出警报电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39220011/