Prometheus监控实战系列十六:Docker容器监控

1、CAdvisor工具

CAdvisor为Google开源的一款用于监控和展示容器运行状态的可视化工具。CAdvior可直接运行在主机上,它不仅可以搜集到机器上所有运行的容器信息,还提供查询界面和http接口,方便如Prometheus等监控系统进行数据的获取。

CAdvisor的安装很简单,可通过容器的方式进行部署。

1.1 下载镜像
docker pull google/cadvisor:latest
1.2 启动容器
docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  --privileged=true \
  google/cadvisor:latest

注解:该命令在容器中挂载了几个目录,ro代表只读,CAdvisor将从其中收集数据。rw代表可读写,此处指定/var/run目录,用于Docker套接字的挂载;--detach将以守护进程的方式运行;--name对生成的容器进行命名;在Ret Hat,CentOS, Fedora 等发行版上需要传递如下参数--privileged=true

1.3 查看容器状态,已正常启动
[root@server ~]# docker ps
CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS         PORTS                                       NAMES
f82d04a87acf   google/cadvisor:latest   "/usr/bin/cadvisor -…"   4 seconds ago   Up 4 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   cadvisor
1.4 访问页面

浏览器打开http://$ip:8080 ,可查看CAdvisor的web界面
Prometheus监控实战系列十六:Docker容器监控_第1张图片

访问http://$ip:8080/metrics,可看到相关的metrics指标信息
Prometheus监控实战系列十六:Docker容器监控_第2张图片

2、容器指标

以下是比较常用到的一些容器指标:

CPU指标

container_cpu_load_average_10s       #最近10秒容器的CPU平均负载情况
container_cpu_usage_seconds_total    #容器的CPU累积占用时间

内存指标

container_memory_max_usage_bytes     #容器的最大内存使用量(单位:字节)
container_memory_usage_bytes        #容器的当前内存使用量(单位:字节)
container_spec_memory_limit_bytes    #容器的可使用最大内存数量(单位:字节)

网络指标

container_network_receive_bytes_total   #容器网络累积接收字节数据总量(单位:字节)
container_network_transmit_bytes_total  #容器网络累积传输数据总量(单位:字节)

存储指标

container_fs_usage_bytes    #容器中的文件系统存储使用量(单位:字节)
container_fs_limit_bytes    #容器中的文件系统存储总量(单位:字节)

3、Prometheus集成

CAdvisor是一个简单易用的工具,它除了有详细的监控指标,也提供了可供查看的WEB图表界面。但CAdvisor本身的数据保存时间只有2分钟,而且在多主机的情况下,要单独去登录每台机器查看docker数据也是一件麻烦的事情。

对此,更好的方法是与Prometheus集成,实现Docker容器数据的收集与保存。由于CAdvisor提供了支持Prometheus的metrics格式接口,所以Prometheus只需要按照获取Exporter指标的方式,创建相关的Job即可。

示例:

- job_name: 'docker'
    static_configs:
    - targets: ['192.168.75.160:8080']
      labels:
        group: docker

Prometheus监控实战系列十六:Docker容器监控_第3张图片
任务正常启动后,我们可以在Prometheus查看到相关的指标
Prometheus监控实战系列十六:Docker容器监控_第4张图片

4、Grafana展示

Grafana提供了不少Docker相关的Dashboard,可根据自己情况选择合适模板导入。

示例:

选择"Create"-“Import”
Prometheus监控实战系列十六:Docker容器监控_第5张图片
导入完成后,可看到新的Dashboard已生效。
Prometheus监控实战系列十六:Docker容器监控_第6张图片

上一篇:Prometheus监控实战系列十五:Exporter详解
下一篇:Prometheus监控实战系列十七:探针监控

你可能感兴趣的:(prometheus,docker,prometheus,运维)