少年乘勇气,百战过乌孙。这篇文章主要讲述Prometheus监控运维实战十三:Docker容器监控相关的知识,希望能为你提供帮助。
目前容器的使用在企业中已经非常普及,将服务迁移到容器上正成为了越来越多公司的选择。而对于运维人员而言,熟悉容器的使用与监控,也已成为一项必不可少的专业技能。关于容器的开源产品,当前知名的有Docker、Containerd、CoreOS rkt、LXC
等,在这其中Docker占剧了绝对统治地位,也是目前使用最广泛的容器产品。
【Prometheus监控运维实战十三(Docker容器监控)】本文将介绍通过Prometheus实现Docker容器监控的方案,关于Docker的技术本文不做讲解,不熟悉的朋友要可先自行查看相关资料。
一.CAdvisor工具CAdvisor为Google开源的一款用于监控和展示容器运行状态的可视化工具。CAdvior可直接运行在主机上,它不仅可以搜集到机器上所有运行的容器信息,还提供查询界面和http接口,方便如Prometheus等监控平台进行数据的获取。
1. 安装部署
CAdvisor的安装很简单,可通过容器的方式进行部署。
下载镜像
$ docker pull google/cadvisor:latest
启动容器
$ 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。
?
?查看容器状态,已正常启动
?
$ docker ps |grep cadvisor
13eb99bc02cegoogle/cadvisor:latest
?
?访问页面
浏览器打开http://ip:8080 ,可查看CAdvisor的web界面
?
?访问http://ip:8080/metrics,可看到相关的metrics指标信息
?
?
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#容器中的文件系统存储总量(单位:字节)
?
?
?
二.Prometheus集成CAdvisor是一个简单易用的工具,它除了有详细的监控指标,也提供了可供查看的WEB图表界面。但CAdvisor本身的数据保存时间只有2分钟,而且在多主机的情况下,要单独去登录每台机器查看docker数据对于管理员也是一件麻烦的事情。
对此,更好的方法是与Prometheus集成,实现Docker容器数据的收集与保存。
由于CAdvisor提供了支持Prometheus的metrics格式接口,所以Prometheus只需要按照获取Exporter指标的方式,创建相关的Job即可。
示例:
?
- job_name: \'docker\'
static_configs:
- targets:
-\'192.168.214.108:8080\'
labels:
group: docker
任务正常启动后,我们可以在Prometheus查看到相关的指标
三.Grafana展示Grafana提供了不少Docker相关的Dashboard,可根据自己情况选择合适模板导入。
示例:
选择"Create"-"Import"
填写需要导入的Dashboard ID号,点击Load
选择对应的Prometheus 数据源,点击import
导入完成后,可看到新的Dashboard已生效。
推荐阅读
- Azure数据工厂最佳实践之Self-hosted Integration Run小坑
- VRRP
- go常见排序送给大家,自己手写的,个人原创
- (副本)额外域降级报错对应
- vrrp技术专题
- 树莓派之--Windowns下安装树莓派系统到SD卡
- [C语言] 最小公倍数
- Office365混合部署进阶系列教程二(混合环境下的PTA直通身份认证)
- 『数据结构与算法』稀疏数组(这样来节省存储空间)