如何检查AWS EC2实例的当前正常运行时间

时间:2017-01-12 21:31:29

标签: amazon-web-services amazon-ec2 aws-cli amazon-cloudwatch uptime-monitoring

检查EC2实例正常运行时间的最佳方法是什么,如果正常运行时间超过N小时,可能会发送警报?如何使用默认的AWS工具(如CloudWatch,Lambda?

)进行组织

3 个答案:

答案 0 :(得分:5)

一种选择是使用AWS CLI并获取启动时间。从中计算正常运行时间并将其发送到Cloudwatch:

aws ec2 describe-instances --instance-ids i-00123458ca3fa2c4f --query 'Reservations[*].Instances[*].LaunchTime' --output text

<强>输出

2016-05-20T19:23:47.000Z

另一个选择是定期运行一个cronjob脚本:

  • 调用uptime -p命令
  • 将输出转换为小时
  • 将结果发送到尺寸为Count
  • 的Cloudwatch

添加cronjob后:

  • 添加一个Cloudwatch警报,当该值超过阈值或存在不充分数据时发送警报
  • INSUFFICIENT DATA表示机器未启动

答案 1 :(得分:5)

这是另一个可以在CloudWatch中完成的选项。

使用类似CPUUtilization的内容为您的EC2实例创建一个警报 - 当实例运行时,您将始终获得一个值。

  • 将闹钟设置为&gt; = 0;这将确保无论何时实例运行,它都匹配。
  • 设置周期和连续周期以匹配所需的警报正常运行时间,例如24小时,您可以将周期设置为1小时,将连续周期设置为24。
  • 设置一个操作,以便在警报处于警报状态时发送通知。

现在,当实例开启时间小于设定时间时,警报将处于INSUFFICIENT DATA状态。一旦启动正常运行时间,它将进入警报状态并发送通知。

答案 2 :(得分:2)

我建议调查一下&#34; AWS&#34;本地的做法。

如果它基本上是向Cloudwatch发送操作系统级指标(例如可用内存,正常运行时间,磁盘使用情况等),那么可以按照指南来实现: 这将在您的EC2实例上安装Cloudwatch Logs Agent。 http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/QuickStartEC2Instance.html

关于这一点的好处是,您可以在Cloudwatch日志中显示指标(请参阅附图,其中显示了AWS控制台中的CW日志界面。)。enter image description here