使用cloudwatch确定linux服务是否正在运行

时间:2015-08-05 17:58:30

标签: amazon-web-services service amazon-cloudwatch

假设我有一个带有内容

的服务Template.myTemplate.onRendered = function(){ //code here}的ec2实例
/etc/init/my_service.conf

如何监控该ec2实例,以便script exec my_exec end script 停止运行时我可以对其进行操作?

2 个答案:

答案 0 :(得分:15)

您可以以心跳的形式向CloudWatch发布自定义指标"。

  • 在服务器上通过cron运行一个小脚本来检查 进程列表以查看my_service是否正在运行,如果是,则make 对{@ 1}} CloudWatch的调用。
  • 指标可以像推送数字一样简单" 1"到CloudWatch中的自定义指标。
  • 设置CloudWatch警报,如果指标的平均值低于1
  • ,则会触发该警报
  • 使警报的周期为> = cron运行的周期,例如cron每隔5分钟运行一次,如果两次5分钟的时间内平均值低于1,则发出警报。
  • 确保您还处理未公布度量标准的情况(例如,cron无法运行或整个计算机死机)。如果缺少指标,您可能需要设置警报。 (见这里:AWS Cloudwatch Heartbeat Alarm
  • 请注意,自定义指标会为您的AWS账单增加50c的额外成本(对于一个指标而言不是很大 - 但如果您想推送数百/数千个指标,那么等式会发生巨大变化 - 即了解它#39;不像人们期望的那样自由)

请点击此处了解如何发布自定义指标:http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html

答案 1 :(得分:1)

我不确定CloudWatch是否是检查服务是否正在运行的正确途径 - 使用Nagios解决方案会更容易。

尽管如此,您可以尝试使用CloudWatch自定义指标方法。您每隔5分钟添加一些代码,这些代码将发布的整数1表示为CloudWatch Custom Metrics。然后,您可以配置CloudWatch警报,以针对样本计数或偏离预期值的总和等条件执行SNS通知/邮件通知。

script
    exec my_exec
    publish cloudwatch custom metrics value
end script

更多信息

发布自定义指标 - http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/publishingMetrics.html