检查EC2实例正常运行时间的最佳方法是什么,如果正常运行时间超过N小时,可能会发送警报?如何使用默认的AWS工具(如CloudWatch,Lambda?
)进行组织答案 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
添加cronjob
后:
答案 1 :(得分:5)
这是另一个可以在CloudWatch中完成的选项。
使用类似CPUUtilization的内容为您的EC2实例创建一个警报 - 当实例运行时,您将始终获得一个值。
现在,当实例开启时间小于设定时间时,警报将处于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日志界面。)。