0
点赞
收藏
分享

微信扫一扫

使用prometheus监控docker

CAdvisor

CAdvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具。通过在主机上运行CAdvisor用户可以轻松的获取到当前主机上容器的运行统计信息,并以图表的形式向用户展示。

安装部署

#安装部署
docker pull google/cadvisor:v0.24.1     #centos7上安装指定版本
#启动
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 \
docker.io/google/cadvisor:v0.24.1

启动完成后,访问宿主机8080端口,可以查看

使用prometheus监控docker_docker


使用prometheus监控docker_文件系统_02


指标

CAdvisor是一个简单易用的工具,相比于使用Docker命令行工具,用户不用再登录到服务器中即可以可视化图表的形式查看主机上所有容器的运行状态。

而在多主机的情况下,在所有节点上运行一个CAdvisor再通过各自的UI查看监控信息显然不太方便,同时CAdvisor默认只保存2分钟的监控数据。

访问http://localhost:8080/metrics可以获取到标准的prometheus监控指标

使用prometheus监控docker_docker_03

以下是常用的指标说明

指标名称

类型

含义

container_cpu_load_average_10s

gauge

过去10秒容器CPU的平均负载

container_cpu_usage_seconds_total

counter

容器在每个CPU内核上的累积占用时间 (单位:秒)

container_cpu_system_seconds_total

counter

System CPU累积占用时间(单位:秒)

container_cpu_user_seconds_total

counter

User CPU累积占用时间(单位:秒)

container_fs_usage_bytes

gauge

容器中文件系统的使用量(单位:字节)

container_fs_limit_bytes

gauge

容器可以使用的文件系统总量(单位:字节)

container_fs_reads_bytes_total

counter

容器累积读取数据的总量(单位:字节)

container_fs_writes_bytes_total

counter

容器累积写入数据的总量(单位:字节)

container_memory_max_usage_bytes

gauge

容器的最大内存使用量(单位:字节)

container_memory_usage_bytes

gauge

容器当前的内存使用量(单位:字节

container_spec_memory_limit_bytes

gauge

容器的内存使用量限制

machine_memory_bytes

gauge

当前主机的内存总量

container_network_receive_bytes_total

counter

容器网络累积接收数据总量(单位:字节)

container_network_transmit_bytes_total

counter

容器网络累积传输数据总量(单位:字节)

容器状态

查看容器相关状态http://localhost:8080/docker

使用prometheus监控docker_文件系统_04


点击容器,可以看到容器相关的状态

使用prometheus监控docker_docker_05


使用prometheus监控docker_安装部署_06

与prometheues对接

有修改prometheues的配置文件

#vim prometheus.yml
  - job_name: 'container'
    static_configs:
    - targets: ['192.168.33.130:8080']

对接后成功后如下所示:

使用prometheus监控docker_docker_07

常用查询

  • 查询cpu

sum(irate(container_cpu_usage_seconds_total{image!=""}[1m])) without (cpu)

使用prometheus监控docker_docker_08

  • 查询内存使用量

container_memory_usage_bytes{image!=""}

  • 查询容器网络接收速率(单位:字节/秒)

sum(rate(container_network_receive_bytes_total{image!=""}[1m])) without (interface)

  • 查询容器网络传输量速率(单位:字节/秒):

sum(rate(container_network_transmit_bytes_total{image!=""}[1m])) without (interface)

  • 查询容器文件系统读取速率(单位:字节/秒):

sum(rate(container_fs_reads_bytes_total{image!=""}[1m])) without (device)

  • 查询容器文件系统写入速率(单位:字节/秒):

sum(rate(container_fs_writes_bytes_total{image!=""}[1m])) without (device)

grafana展示

grafana社区有很多docker监控的模板,本次使用10566模板

使用prometheus监控docker_docker_09


举报

相关推荐

0 条评论