关于docker容器的监控

标签: docker 容器 监控 | 发表时间:2017-03-20 08:18 | 作者:felix_yujing
出处:http://blog.csdn.net

1 docker inspect [容器ID | 镜像ID]
查看容器创建时间、容器的IP、映射的端口、挂载的目录等信息。
此命令同样也能用来查看镜像的详细信息。

2 docker stats 容器ID
用来查看容器的资源使用情况,如:CPU、内存、网络、I/O

另外,在docker的配置文件中添加如下的参数之后,可以采用curl来调用stats API接口

  DOCKER_OPTS="-H tcp://127.0.0.1:2375"

curl的使用命令如下:

  curl http://127.0.0.1:2375/containers/容器ID/stats 

返回的是json格式的字符流信息,使用ctrl+c中断

3 docker events
查看主机上发生的容器的创建、停止、销毁等容器生命周期相关的事件信息
可以结合以下选项参数执行命令:
–since 时间戳
–until 时间戳

提示:当前时间戳可以通过 date +”%s”命令查看

4 docker logs 容器ID
当进程在容器中是以前台运行的方式运行的时候,可以在宿主机上用这个命令来查看容器内运行的日志。

如果希望持续监控日志的化,可以使用-f选项:

  docker logs -f 容器ID

注意:docker logs是否可用还要看当前配置的log driver。默认的json-file日志驱动和journald日志驱动支持docker logs命令查看。

另外,可以使用[docker top 容器ID]命令来查看容器内运行的进程信息。

5 关于日志收集
1)配置log driver进行日志收集
在启动容器的时候,可以通过–log-driver选项来指定日志驱动。通过日志驱动,可以将日志传给syslog、journald、fluentd等。

2)通过logspout收集容器日志
logspout可以收集主机上所有容器的日志,并将它们转到其它主机。logspout以容器的方式运行,并且是无状态的。可以通过logspout将日志转发到syslog或logstash。
详细用法可参考: https://github.com/gliderlabs/logspout

6 监控容器的资源使用
cAdvisor项目是google创建的,用来监控容器的资源使用和性能。cAdvisor以容器的方式运行,可以监控所在主机上的所有容器;提供web UI界面;支持REST API;可以将数据流保存到influxdb。
详细参考: https://github.com/google/cadvisor
另外,除了cAdvisor,collectd( https://collectd.org/)也可以用来监控容器的资源指标。

7 使用InfluxDB,Grafana和cAdvisor监控容器指标
ELK之外的另一种选择方案。cAdvisor收集容器指标信息后,将数据存到时序数据库influxdb,Grafana从influxdb获取数据并展示。

8 使用ELK来存储和可视化容器日志
前面说到的logspout可以用来将各主机上的容器日志传给远程的logstash,再将日志存储到Elasticsearch,通过kibana来查询Elasticsearch索引,进行可视化展示。

9 weave scope工具将容器的布局/关联可视化
weave scope在github上的地址为:
https://github.com/weaveworks/scope

weave scope可以实时生成容器的相互调用的拓扑图,有助于直观的理解、监控和控制容器应用

参考资料:Docker Cookbook

作者:felix_yujing 发表于2017/3/20 16:14:17 原文链接
阅读:3 评论:0 查看评论

相关 [docker 容器 监控] 推荐:

关于docker容器的监控

- - CSDN博客推荐文章
1 docker inspect [容器ID | 镜像ID]. 查看容器创建时间、容器的IP、映射的端口、挂载的目录等信息. 此命令同样也能用来查看镜像的详细信息. 2 docker stats 容器ID. 用来查看容器的资源使用情况,如:CPU、内存、网络、I/O. 另外,在docker的配置文件中添加如下的参数之后,可以采用curl来调用stats API接口.

Docker容器的自动化监控实现

- - DockerInfo
2016年对于网易杭州研究院(以下简称“杭研”)而言是重要的,成立十周年之际,杭研正式推出了网易云. “十年•杭研技术秀”系列文章,由杭研研发团队倾情奉献,为您展示杭研那些有用、有趣的技术实践经验,涵盖云计算、大前端、信息安全、运维、QA、大数据、人工智能等领域,涉及前沿的分布式、 容器、深度学习等技术.

Docker 监控实战

- - SegmentFault 最新的文章
如今,越来越多的公司开始使用 Docker 了,现在来给大家看几组数据:. 2 / 3 的公司在尝试了 Docker 后最终使用了它. 也就是说 Docker 的转化率达到了 67%,而转化市场也控制在 60 天内. 越大型的公司越早开始使用 Docker. 研究发现主机数量越多的公司,越早开始使用 Docker.

Docker 监控- Prometheus VS Cloud Insight

- - SegmentFault 最新的文章
如今,越来越多的公司开始使用 Docker 了,2 / 3 的公司在尝试了 Docker 后最终使用了它. 为了能够更精确的分配每个容器能使用的资源,我们想要实时获取容器运行时使用资源的情况,怎样对 Docker 上的应用进行监控呢. Docker 的结构会不会加大监控难度. 可是在没有专业运维团队来监控 Docker 的情况下,并且还想加快 Docker 监控的日程,怎么办呢.

【实战】五个Docker监控工具的对比

- - ITeye资讯频道
【编者的话】这篇文章作者是Usman,他是服务器和基础架构工程师,有非常丰富的分布式构建经验. 该篇文章主要分析评估了五种Docker监控工具,包括免费的和不免费的:Docker Stats、CAdvisor、Scout、Data Dog以及Sensu. 不过作者还是推荐使用Data Dog. 另外还有两个工具:Prometheus与Sysdig Cloud会在下一篇做介绍分析,敬请期待.

在Docker中监控Java应用程序的5个方法

- -
作者:Chris Ward . 译者注:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化. 通常情况下,监控的主要目的在于:减少宕机时间、扩展和性能管理、资源计划、识别异常事件和故障排除分析等. 本文作者介绍了5种方法帮助你在Docker中监控Java应用程序.

减少使用Java应用服务器,迎接Docker容器

- - ITeye资讯频道
【编者的话】随着Docker的发展,越来越多的应用开发者开始使用Docker. James Strachan写了一篇有关Java开发者如何使用Docker进行轻量级快速开发的文章. 他告诉我们,使用Docker和服务发现的机制,可以有效减轻Java运维人员的负担,进行项目的快速启动和持续迭代. 多年来,Java生态系统一直在使用应用服务器.

理解Docker跨多主机容器网络

- - Tony Bai
在 Docker 1.9 出世前,跨多主机的容器通信方案大致有如下三种:. 将宿主机A的端口P映射到容器C的网络空间监听的端口P’上,仅提供四层及以上应用和服务使用. 这样其他主机上的容器通过访问宿主机A的端口P实 现与容器C的通信. 显然这个方案的应用场景很有局限. 2、将物理网卡桥接到虚拟网桥,使得容器与宿主机配置在同一网段下.

Docker容器使用静态独立的外部IP(便于集群组建)

- - 操作系统 - ITeye博客
需要使用Docker虚拟化Hadoop/Spark等测试环境,并且要可以对外提供服务,要求是完全分布式的部署(尽量模拟生产环境). Container IP 是动态分配的. Container IP 是内部IP,外部无法访问(如对外提供HDFS服务可能会遇到Client无法访问DataNode,因为DataNode注册的是内部IP).

使用Docker容器时需要更改GC并发参数配置

- - ITeye博客
最近在做统一服务优化时发现使用容器时垃圾回收偏长,而我们的服务是一个响应时间优先的应用,需要对GC进行一些调优,在对容器内Java应用进行GC时发现:. (8核)如下是8核机器的GC,CMS,young gc基本在100ms左右. (8核)经发现与GC线程有关,通过指定并发GC线程数 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=4,得到.