我正在使用Amazon AWS免费层进行概念验证。我在一个带有几个容器的EC2实例上运行docker。我知道您可以运行一些脚本来监控EC2实例的内存,但我想知道是否有脚本可以监控每个docker容器的CPU/内存并将结果发送到CloudWatch。
任何帮助都将不胜感激。
发布于 2018-07-19 22:49:41
在寻找各种选择之后。我没有找到任何特定的解决方案来将容器级别统计数据发送到cloud watch。
尽管如此,您可以重用Aws mon scripts并解析命令停靠器统计信息,大致如下:
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来解析它。或者你可以把它运到普罗米修斯。
我希望这对某些人有帮助
https://stackoverflow.com/questions/47004655
复制相似问题