Dockwatch容器统计在cloudwatch中

时间:2017-10-29 20:02:26

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

我正在使用Amazon AWS免费套餐进行概念验证。我有一个带有几个容器的EC2实例上运行的docker。我知道您可以运行一些脚本来监视EC2实例的内存,但是想知道是否有可用于监视每个docker容器的CPU /内存的脚本并将结果发送到CloudWatch。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

寻找选项后。我没有找到任何将容器级别统计信息发送到Cloud Watch的特定解决方案。

尽管如此,您仍可以重用Aws mon scripts并解析docker stats命令,大致类似于此漂移:

docker ps | tail -n +2 > dockerps.txt #all lines except the firts one.
running_containers = cat dockerps.txt | wc -l
for (i=0;i=running_containers;i++) {
    container_id = cat dockerps.txt |  tr -s ' ' | cut -d' ' -f1 | sed -n -e $ip
    image_name = cat dockerps.txt |  tr -s ' ' | cut -d' ' -f2 | sed -n -e $ip
    used_mem = docker stats --no-stream | grep $(cat dockerps.txt |  tr -s ' ' | cut -d' ' -f1 |  sed -n -e 3p) |  tr -s ' ' | cut -d' ' -f3
    #and now send it to cloudwatch using the mon script 
} 

或者去cAdvisor + prometheus.io + Grafana(这是我在做什么)

跟踪特定容器(例如,芹菜)的内存使用情况。我每分钟都运行一次(使用crontab):

docker ps | tail -n +2 > dockerps.txt
(echo -n  $(date)" " && docker stats --no-stream | grep $(cat dockerps.txt | grep celery |  tr -s ' ' | cut -d' ' -f1 ) |  tr -s ' ' | cut -d' ' -f3)

,然后filebeat将所有输出传送到elasticsearch集群,在该集群中我有一个用于此值的图形,还需要logstash中的grok来解析它。或者,您也可以将其运送到普罗米修斯。

我希望这对某人有帮助