【问题标题】:Memory Utilization for auto scaling group AWSAuto Scaling 组 AWS 的内存利用率
【发布时间】:2018-04-16 03:11:31
【问题描述】:
我正在设置 AWS 自动缩放,在设置缩放策略时遇到了这个问题。
我想使用内存作为参数,所以我从下面的链接安装了 CLoudwatch 的内存监控脚本。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/mon-scripts.html
当我将它用于简单实例时,它工作正常。但是当我按照上面的文档中的建议使用下面的命令进行 autosacling 时,它会给出错误
命令
./mon-put-instance-data.pl --mem-util --mem-used --mem-avail --auto-scaling=only
错误:
警告:这次不会报告 Auto Scaling 指标。
当我在互联网上检查此错误时,很少有人说这可能是 /var/tmp/aws-mon 中的实例 ID 错误,我检查过这不是问题。
感谢任何帮助。
【问题讨论】:
标签:
amazon-web-services
autoscaling
amazon-cloudwatch
【解决方案1】:
Here 链接到具有相同问题的 AWS 支持。
Here 是指向 Perl 脚本源代码的链接。我不确定它是否可以在这里发布,所以打开 ZIP 文件转到mon-put-instance-data.pl,然后搜索reported。从那到 ifs 如果您没有提供 verify 或自动缩放组名称,则会出现错误。由于第一个仅用于测试-我们有赢家。请提供自动伸缩组名参数...
好吧,没有那个参数,但是如果你仔细观察,你会发现 reported 之前的一些行来自 find,有查询。所以...您的实例无权访问。
使用CloudWatchClient::get_auto_scaling_group 搜索会得到result。从那里您可以了解到您应该授予您的实例将数据发布到 CloudWatch 的权限...
如果您还有其他问题,请 - 问。我会编辑这个答案,所以我们或多或少会有一些完整的东西——不仅对我来说。
【解决方案2】:
好吧,在这种情况下,我做了最愚蠢的事情,我将其发布为答案,以便对其他人有所帮助。
我正在测试不属于任何 Auto Scaling 组的实例。
【解决方案3】:
如果您的实例属于 Autoscaling 组,则工作解决方案。
rm -rf /var/tmp/aws-mon/
然后运行,
./mon-put-instance-data.pl --mem-util --auto-scaling=only
当监控脚本运行时,它会将 instance_id 缓存在/var/tmp/aws-mon 下。
它在获取 Auto Scaling 组名称时使用的过滤器之一是实例 ID。其 TTL 为 6 小时,因此如果您的 AMI 具有此缓存,则查询将在创建实例后长达 6 小时内使用错误的实例 ID,从而导致无法检索 Auto Scaling 组名称。
参考号:https://forums.aws.amazon.com/thread.jspa?threadID=117783