我正在使用Amazon AWS免费套餐进行概念验证。我有一个带有几个容器的EC2实例上运行的docker。我知道您可以运行一些脚本来监视EC2实例的内存,但是想知道是否有可用于监视每个docker容器的CPU /内存的脚本并将结果发送到CloudWatch。
任何帮助将不胜感激。
答案 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来解析它。或者,您也可以将其运送到普罗米修斯。
我希望这对某人有帮助