amazon-web-services - 工作人员在 AWS EC2 上失败时发出警报电子邮件

标签 amazon-web-services amazon-ec2 monitoring supervisord amazon-cloudwatch

我在 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/

相关文章:

amazon-web-services - Terraform 破坏错误 'Instance cannot be destroyed' 和 'Failed getting S3 bucket'

amazon-web-services - AWS 存储桶策略创建失败 - 策略具有无效资源

python - amazon ec2 centOS 上没有名为 tkinter 的模块

mysql - 为 EC2 上的高流量调整 php-fpm、nginx、mysql

Jboss as7 监控 HTTP 监听器线程

amazon-web-services - CloudFormation 正在等待清理与 Lambda 函数关联的 NetworkInterfaces

mysql - 在 MySQL 中存储 AWS ARN 的最佳数据类型?

amazon-web-services - Cloud Formation 模板将入口规则添加到现有安全组

ruby-on-rails - 监控基于 Web 的生产应用程序

monitoring - 为远程 influxdb 节点配置 kapacitor 时无法收到警报