我按照此处的说明进行配置并配置了cloudwatch监视脚本以通过实例上的cron作业运行。 脚本运行,但是我不断收到以下错误消息(在crontab文件中的MAILTO地址上):

mon-put-instance-data.pl --mem-util --mem-used-incl-cache-buff --mem-used --mem-avail --aggregated --auto-scaling --from-cron
Use of uninitialized value $data_value in scalar chomp at /home/ec2-user/aws-scripts-mon/CloudWatchClient.pm line 137

我使用的是IAM角色而不是凭据文件,并且该角色具有上面链接中提到的所有权限。

在进行故障排除时,我发现:

  1. 这项工作正在向Cloudwatch提交数据,我确认可以在cloudwatch控制台中看到所有指标。
  2. / var / log / messages中没有错误
  3. 如果我使用--verbose标志手动运行脚本,也会收到一条成功消息:

print() on closed filehandle MDATA at CloudWatchClient.pm line 167. print() on closed filehandle MDATA at CloudWatchClient.pm line 167. print() on closed filehandle MDATA at CloudWatchClient.pm line 167. MemoryUtilization: 15.9675544623621 (Percent) MemoryUsed: 1275.01171875 (Megabytes) MemoryAvailable: 6710.00390625 (Megabytes) print() on closed filehandle MDATA at CloudWatchClient.pm line 167. No credential methods are specified. Trying default IAM role. Using IAM role <xxxx-prod-WebServerRole-1891EV5KJYJ49> Endpoint: https://monitoring.eu-west-1.amazonaws.com Payload: { /*Removed for brevity*/ } Received HTTP status 200 on attempt 1 Successfully reported metrics to CloudWatch. Reference Id: c44c28ff-63e7-11e7-903d-350b8f4c0dae

错误是间歇性的,但是定期的-我在12:30 PM,13:21 PM,14:02 PM,14:48 PM,15:16 PM收到电子邮件

不知道发生了什么事?

===============>>#1 票数:0

您可能同时运行两个mon-put-instance-data.pl命令。 如果同时运行多个副本,CloudWatchClient.pm会以一种可能会中断的方式读取和写入临时文件。 破损只会是零星的,因为它取决于比赛的确切顺序。

一种解决方法是在运行mon-put-instance-data.pl时在cron命令中使用flock来确保互斥:

flock -w 30 /tmp/mon-put-instance-data.lockfile mon-put-instance-data.pl --mem-util --mem-used-incl-cache-buff --mem-used --mem-avail --aggregated --auto-scaling --from-cron

  ask by MojoJojo translate from so

未解决问题?本站智能推荐: