Docker自带了容器监控功能,可以对容器进行相关的性能监控,指标查看

主要包括:

  • 主机的CPU情况和使用量
  • 主机的内存情况和使用量
  • 主机的本地镜像情况
  • 主机的容器运行情况

常规使用docker ps -a   ,docker images命令查看后两者,当然docker stats命令就是监控相关容器实例情况。

[root@vm-50-151 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
14330de27f9d yatho_nginx:1.0.1 "/usr/local/sbin/run." 26 hours ago Up 26 hours 0.0.0.0:32770->22/tcp, 0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp nginx_test
d4e1352fa5a7 c782eddf525a "/bin/sh -c '-y updat" 27 hours ago Exited (2) 27 hours ago stoic_kilby
b573605ad104 c782eddf525a "/bin/sh -c 'yum inst" 29 hours ago Exited (1) 29 hours ago tender_jennings
480b1bbe7845 docker.io/hello-world "/hello" 13 days ago Exited (0) 13 days ago trusting_visvesvaraya
[root@vm-50-151 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yatho92/yatho_nginx_centos6.5 1.0.0 f75f41326048 26 hours ago 1.243 GB
yatho_nginx 1.0.1 f75f41326048 26 hours ago 1.243 GB
docker.io/centos latest d123f4e55e12 12 days ago 196.6 MB
docker.io/hello-world latest 05a3bd381fc2 9 weeks ago 1.84 kB
docker.io/hagaico/centos-base-6.5 latest 17e89775b93c 3 years ago 595.3 MB
[root@vm-50-151 ~]# docker stats CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
14330de27f9d 0.00% 1.297 MiB / 3.86 GiB 0.03% 3.142 kB / 3.436 kB 6.675 MB / 0 B 3 CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
14330de27f9d 0.00% 1.297 MiB / 3.86 GiB 0.03% 3.142 kB / 3.436 kB 6.675 MB / 0 B 3 CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
14330de27f9d 0.00% 1.297 MiB / 3.86 GiB 0.03% 3.142 kB / 3.436 kB 6.675 MB / 0 B 3 CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
14330de27f9d 0.00% 1.297 MiB / 3.86 GiB 0.03% 3.142 kB / 3.436 kB 6.675 MB / 0 B 3

  也可以使用类似top命令查看进程情况

[root@vm-50-151 ~]# docker stats nginx_test

CONTAINER           CPU %               MEM USAGE / LIMIT      MEM %               NET I/O               BLOCK I/O           PIDS
nginx_test 0.00% 1.297 MiB / 3.86 GiB 0.03% 3.142 kB / 3.436 kB 6.675 MB / 0 B 3 CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
nginx_test 0.00% 1.297 MiB / 3.86 GiB 0.03% 3.142 kB / 3.436 kB 6.675 MB / 0 B 3 CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
nginx_test 0.00% 1.297 MiB / 3.86 GiB 0.03% 3.142 kB / 3.436 kB 6.675 MB / 0 B 3

  如果想要看到更为详细的容器属性,还可以通过netcat,使用Docker远程API来查看。发送一个HTTP GET请求/containers/[CONTAINER_NAME],其中CONTAINER_NAME是你想要统计的容器名称。你可以从这里看到一个容器stats请求的完整响应信息。在上述的例子中你会得到缓存、交换空间以及内存的详细信息。

  当然这种方式并不会令人接受,大家还是希望能够看到非常直观,详细的可视化界面

  CAdvisor是一个易于设置并且非常有用的工具,我们不用非要SSH到服务器才能查看资源消耗,而且它还给我们生成了图表。此外,当集群需要额外的资源时,压力表(pressure gauges )提供了快速预览。而且,CAdvisor是免费的,并且还开源。

另外,它的资源消耗也比较低。但是,它有它的局限性,它只能监控一个Docker主机。因此,如果你是多节点的话,那就比较麻烦了,你得在所有的主机上都安装一个CAdvisor,者肯定特别不方便。值得注意的是,如果你使用的是Kubernetes,你可以使用heapster来监控多节点集群。另外,在图表中的数据仅仅是时长一分钟的移动窗口,并没有方法来查看长期趋势。如果资源使用率在危险水平,它却没有生成警告的机制。如果在Docker节点的资源消耗方面,你没有任何可视化界面,那么CAdvisor是一个不错的开端来带你步入容器监控,然而如果你打算在你的容器中运行任何关键任务,那你就需要一个更强大的工具或者方法。

CAdvisor使用:

  下载官方镜像:

[root@vm-50-151 ~]# docker pull  google/cadvisor
Using default tag: latest
Trying to pull repository docker.io/google/cadvisor ...
latest: Pulling from docker.io/google/cadvisor
709515475419: Pull complete
5760eeb1525d: Downloading [=======================> ] 6.32 MB/13.74 MB
e485506b272e: Download complete
e485506b272e: Pulling fs layer

  启用镜像容器实例,映射端口

[root@vm-50-151 /]# docker run \
> --volume=/:/rootfs:ro \
> --volume=/var/run:/var/run:rw \
> --volume=/sys:/sys:ro \
> --volume=/var/lib/docker/:/var/lib/docker:ro \
> --publish=8080:8080 \
> --detach=true \
> --name=cadvisor \
> google/cadvisor:latest
38423c30e04364265999c2642d54d6737b798f887b19be045c440ce90968c548
[root@vm-50-151 /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38423c30e043 google/cadvisor:latest "/usr/bin/cadvisor -l" 14 seconds ago Up 12 seconds 0.0.0.0:8080->8080/tcp cadvisor
14330de27f9d yatho_nginx:1.0.1 "/usr/local/sbin/run." 27 hours ago Up 27 hours 0.0.0.0:32770->22/tcp, 0.0.0.0:32769->80/tcp, 0.0.0.0:32768->443/tcp nginx_test

  打开链接查看,容器宿主机IP:8080

  

  该容器对于我们来说已经足够使用了,不过相比较更加专业的公司,该工具显示的docker信息详细程度不够,集成度也不太强,而且无生成警报的能力,也只能监控容器资源,不支持非docker资源监控。

  免费的东西,你还想怎么样呢?

Docker监控:google/cadvisor的更多相关文章

  1. docker 监控之 cadvisor

    我们可以使用多种方法监控容器的运行情况,比如EFK等,但是我们仍旧需要一个资源利用率监控系统.这个时候,google开发的cadvisor就可以帮上我们的忙了. cadvisor是google创建的用 ...

  2. docker监控之cadvisor

    docker run -d \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --vo ...

  3. 7、Docker监控方案(cAdvisor+InfluxDB+Grafana)

    一.组件介绍 我们采用现在比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控. 1.cAdvisor(数据采集) 开源软件cAdvisor(Container Adv ...

  4. docker监控方案实践(cadvisor+influxdb+grafana)

    一.概要 1.1 背景 虚拟化技术如今已经非常热门,如果你不知道什么是虚拟化,那你应该了解虚拟机.虚拟化技术如同虚拟机一样,用于将某些硬件通过软件方式实现"复制",虚拟出" ...

  5. 在Marathon 上部署 cAdvisor + InfluxDB + Grafana Docker监控

    关于 Docker 容器的监控,google cAdvisor 是个很好的工具,但是它默认只显示实时数据,不储存历史数据.为了存储和显示历史数据.自定义展示图,可以把将cAdvisor与InfluxD ...

  6. docker容器监控:cadvisor+influxdb+grafana

    cadvisor+influxdb+grafana可以实现容器信息获取.存储.显示等容器监控功能,是目前流行的docker监控开源方案. 方案介绍 cadvisor Google开源的用于监控基础设施 ...

  7. 14、Docker监控方案(Prometheus+cAdvisor+Grafana)

    上一篇文章我们已经学习了比较流行的cAdvisor+InfluxDB+Grafana组合进行Docker监控.这节课来学习Prometheus+cAdvisor+Grafana组合. cAdvisor ...

  8. Docker监控:最佳实践以及cAdvisor和Prometheus监控工具的对比

    在DockerCon EU 2015上,Brian Christner阐述了“Docker监控”的概况,分享了这方面的最佳实践和Docker stats API的指南,并对比了三个流行的监控方案:cA ...

  9. (转)使用InfluxDB+cAdvisor+Grafana配置Docker监控

    文档来源 文档来源:How to setup Docker Monitoring 由garyond翻译.校正及整理 Docker监控简介 我们提供的Docker主机和容器越来越多,对Docker服务器 ...

随机推荐

  1. [转帖]CentOS下iRedMail安装配置

    CentOS下iRedMail安装配置 中文名为艾瑞得邮件,由 rhms 项目更名而来.是针对 Linux 设计的邮件服务器解决方案,是在操作系统安装好后使用的一套 shell 脚本,用于快速部署一套 ...

  2. 《HTTP权威指南》学习笔记——URL和资源

    URL与资源 URL是互联网资源的标准化名称 1.浏览互联网资源 URL是浏览器寻找信息时所需的资源位置 URI是一类更通用的资源标识符,URL是它的子集. URI的两个子集:URL和URN URL提 ...

  3. Spring Boot项目使用Eclipse进行断点调试Debug

    1.在命令行下定位到项目根目录,启动Spring Boot项目,命令如下: java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=80 ...

  4. Bootstrap——导航居中

    这是采用了栅格,设置缩进,使看起来居中,但是手机浏览会靠到最左边.另外center-block类好像也不管用. <div class="row"> <ul cla ...

  5. Dubbo -- 系统学习 笔记 -- 示例 -- 多版本

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 多版本 当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间 ...

  6. 标签a点击以后,5秒内禁止点击,5秒后激活

    方法1:利用bootstrap里面的类disabled,禁止链接 <a href='javascript:onHref()' id="test">点击</a> ...

  7. 【NodeJS】http-server.cmd

    npm install http-server @echo off  start cmd /k "D:\Program Files\nodejs\node_global\http-serve ...

  8. SaltStack 使用 Jinja2 模板

    Jinja2 是基于 python 的一个模板引擎,如下,使用 Jinja2 实现根据不同的操作系统分发不同的文件: [root@localhost ~]$ cat /srv/salt/test.sl ...

  9. 文件名过滤器FilenameFilter的用法

    Java.io.FilenameFilter是文件名过滤器,用来过滤不符合规格的文件名,并返回合格的文件: 实例1,匹配指定字符结尾的文件 package cn.test; import java.i ...

  10. 学习下新塘M0芯片的下载方法

    编程方式多种多样,解释这几种方式的原理,方便做后续的回答: 一.脱机 脱机的意思就是脱离PC机,有很多芯片必须连接PC才能烧录,比如某些FPGA芯片.MCU芯片.NAND Flash芯片等.脱机和在线 ...