cAdvisor(Container Advisor)为容器用户提供了对其运行容器的资源使用和性能特征的理解。它是一个运行守护程序,用于收集,聚合,处理和导出有关正在运行的容器的信息。具体来说,对于每个容器,它保留资源隔离参数,历史资源使用,完整历史资源使用的直方图和网络统计。此数据按容器和机器范围导出。
cAdvisor原生支持Docker容器,并且应该支持开箱即用的任何其他容器类型,并且力求更多的支持,如果有使用问题可以在官网提出。cAdvisor的容器抽象基于lmctfy,因此容器本质上是分层嵌套的。
在使用cadvisor开始之前,你可能需要安装prometheus和grafana并且配置好,以便于使用,在后面将会使用很多,这很重要,安装和配置这些以便于更好的分析正在运行的容器的资源使用情况和性能特征。
I. cadvisor配置
[root@linuxea-vm-Node3 ~]# docker pull google/cadvisor:v0.30.0
start
指定IP和端口--listen_ip="0.0.0.0" --port=8888
docker run \
--net=host \
--privileged=true \
--volume=/cgroup:/cgroup:ro \
--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=8081:8081 \
--detach=true \
--name=cadvisor \
google/cadvisor:v0.30.0 --listen_ip="0.0.0.0" --port=8888
通过浏览器在本地打开,大概是这样的
当然,你可能需要一条防火墙规则
iptables -I INPUT 5 -p tcp --dport 8888 -j ACCEPT
而后在prometheus端添加到配置文件中(在最下方添加这样)
其中job_name定义为gfc,labels的组gfc_node
- job_name: 'gfc'
static_configs:
- targets:
- '10.10.197.3:8888'
labels:
group: 'gfc_node'
打开prometheus端的界面IP:PORT,在status的下拉菜单中点击Targets查看状态,大概如下,可以看到10.10.197.3已经是up状态
II. 监控指标
当然,系统的核心是prometheus服务器,prometheus基于“拉”机制,可以从配置的目标中删除指标。但是,对于短期工作,它提供了一个用于抓取指标的中间推送网关。它还提供PromDash,一个用于收集数据的可视化仪表板,一个带有查询语言的Expression浏览器,用于简化数据过滤,以及一个AlertManager,用于根据基于警报规则引擎的触发警报发送通知。
在前面的prometheus中我们提到,prometheus可以和已有的任何指标进行组合,非常灵活,我简单的组合几个参数进行监控查看
关于container_memory_usage_bytes信息,{}中的数据和配置信息中的group组对应,name为容器名称
度量的条件就是组和名称,得到下图
container_memory_usage_bytes{group="gfc_node",name="nginx_server"}
但是我还想知道他5分钟内的信息,这样就需要时间窗口的rate()功能
rate(container_memory_usage_bytes{group="gfc_node",name="nginx_server"}[5m])
但是这样还是不好,他的信息太长 ,我只要保留名称和ip。那就需要聚合的功能,如:sum() 函数,加上rate()时间窗口,sum()函数将rate()包含在里面,而后使用by保留值
sum(rate(container_memory_usage_bytes{group="gfc_node",name="nginx_server"}[5m])) by (name,instance)
III. grafana
这里有grafana的展示,在之前grafana安装过了,grafana与prometheus的 配置非常简单,我们直接导入模板即可,模板下载
更多可以参考参考github的cadvisonr和cAdvisor运行时选项,指标信息。prometheus参考
除非另有说明,否则本站上的内容根据以下许可进行许可: CC署名-非商业性使用-相同方式共享4.0国际许可协议4.0进行许可
本文作者:www.linuxea.com for Mark
文章链接:http://www.linuxea.com/1922.html (转载请注明本文出处和本章链接)