写点什么

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

  • 2015-12-10
  • 本文字数:1711 字

    阅读完需:约 6 分钟

DockerCon EU 2015 上, Brian Christner 阐述了“ Docker 监控”的概况,分享了这方面的最佳实践和 Docker stats API 的指南,并对比了三个流行的监控方案:cAdvisor、“cAdvisor + InfluxDB + Grafana”以及 Prometheus。

Christner 所建议的最佳实践包括为容器添加标签并设置资源限制,他指出尽管 Google 的 cAdvisor 容器监控工具很易用,但是将 cAdvisor、InfluxDB 和 Grafana 组合起来能够提供更好的应用集成和可扩展性,Prometheus 则提供了“开箱即用”的客户端库和告警。

Christner Swisscom AG 的云方案倡导者,在这个演讲中,他首先介绍了在 Swisscom 公司中 Docker 的使用情况,包括通过 Docker 和 Cloud Foundry (与 ClusterHQ 协作构建的)提供的持久化 Database-as-a-Service(DBaaS),以及支撑各种应用的多个内部 Docker 产品,涵盖的范围从“云应用到 TV”。这些项目使用 Docker 的原因在于每个服务器上能够实现更高的应用密度(与此相关的就是成本的节省了),对于开发者来说能够减少上市的时间,部署构件能够“一体适用(one size fits all)”于各种场景中。使用 Docker 的一个核心挑战在于监控方面的变化,从这里开始,Christner 开始热情地分享他所学到的内容。

监控 Docker 的最佳实践包括通过描述性的键 / 值对为容器添加标签(labelling container),如‘–label environment=”production”’,设置资源限制并限制所产生的告警数量,避免将信号变为噪音(“不要让自己过于警戒!”,Don’t overlert yourself!)。Christner 简单介绍了“docker stats”命令,他说这个工具对于解决本地和远程的问题都非常有用。他讨论了 Docker stats API ,并补充说它通常来讲是所有其他 Docker 监控工具的基础,并且还可以将容器的资源信息提供到组织内部已有的监控方案中。

Google 的 cAdvisor (Container Advisor)“为容器用户提供了了解运行时容器资源使用和性能特征的方法”。cAdvisor 的容器抽象基于 Google 的 lmctfy 容器栈,因此原生支持 Docker 容器并能够“开箱即用”地支持其他的容器类型。cAdvisor 部署为一个运行中的 daemon,它会收集、聚集、处理并导出运行中容器的信息。这些信息能够包含容器级别的资源隔离参数、资源的历史使用状况、反映资源使用和网络统计数据完整历史状况的柱状图。

cAdvisor 能够与 InfluxDB Grafana 联合起来使用,它们分别是时间序列(time series)的数据库和指标的仪表盘(metrics dashboard),借助它们来存储和展现信息。Christner 还写过一篇“如何搭建Docker 监控”的博客文章,并创建了与之关联的 Docker Compose 配置文件,它可以通过一个简单的“docker-compose up”命令就能创建使用cAdvisor、InfluxDB 和Grafana 的监控环境。

Prometheus 是一个实现监控功能的系统和服务,它来源于 SoundCloud 针对 StatsD 和 Graphite 所提供的改善监控系统。Prometheus 能够按照给定的时间间隔收集所配置目标的指标、执行规则表达式、展现结果,如果某些条件判断结果为真的话,将会触发告警。Prometheus GitHub 仓库的 README.md 这样说到,它与其他监控系统的主要区别特性在于多维的数据模型,借助这种多维性所提供的灵活查询语言,支持多种模式的图形和仪表盘,并且支持垂直和水平的组合(hierarchical and horizontal federation)。通过一个 Docker Compose 配置文件就能建立全功能的 Prometheus 监控环境,这个文件可以在 Christner 的 GitHub 账号上找到。

Christner 在演讲的最后比较了上述三种容器监控方式,即 cAdvisor、“cAdvisor + InfluxDB + Grafana”和 Prometheus。尽管 cAdvisor 最易用,但它在扩展性和告警方面有局限性。组合使用“cAdvisor + InfluxDB + Grafana”能够提供很好的可扩展性,并且提供了客户端库,但是内置不支持告警功能。Prometheus 可能扩展起来不那么容易,但是它支持告警并提供了针对多种语言的客户端库。

图 1:Docker 监控工具的简要对比

Christner 所做的“ Docker 监控”演讲的 slide 可以在 SlideShare 网站上找到,其他的消息可以通过 brianchristner.io 网站上的系列博客文章获取。

查看英文原文: Docker Monitoring: Best Practices, and a Comparison of the cAdvisor and Prometheus Monitoring Tools

2015-12-10 18:0011450

评论

发布
暂无评论
发现更多内容

怎么学自动化测试

和牛

测试

Kafka Topic Partition Offset 这一长串都是啥?

华为云开发者联盟

后端 华为云

JAVA编程规范之控制语句

源字节1号

后端开发

动手实践丨手把手教你用STM32做一个智能鱼缸

华为云开发者联盟

物联网 IoT

面试官:你确定Redis是单线程的进程吗?

Java永远的神

Java redis 程序员 架构 面试

如何使用IDEA数据库工具连接TDengine?

TDengine

数据库 tdengine 时序数据库

深入揭秘 epoll 是如何实现 IO 多路复用的

C++后台开发

网络编程 epoll IO多路复用 C++后台开发 C++开发

易周金融 | 邮惠万家银行开业;微信公众号叫停四类金融营销宣传

易观分析

金融

短视频直播系统源码——如何优化满足用户需求?

开源直播系统源码

直播系统源码 开源源码 短视频直播系统源码

Mria+RLOG新架构下的EMQX 5.0如何实现1亿MQTT连接

EMQ映云科技

物联网 IoT mnesia emqx 7月月更

快速构建企业级应用的开发平台

力软低代码开发平台

uni-app进阶之内嵌应用【day14】

恒山其若陋兮

7月月更

值得一看的智能运维AIOps关键核心技术概览!

云智慧AIOps社区

人工智能 机器学习 运维 智能运维 自动化运维

2022年5月视频用户洞察:用户使用时长增长 平台降本增效初见成效

易观分析

视频行业

软件研发落地实践,要从设计就开始

华为云开发者联盟

云计算 后端 开发

模块七

Geek_2ce415

vueCli3.x版本中如何修改打包好的css、js、img文件名

木叶🐱

7月月更

Verilog HDL

贾献华

7月月更

全新出品!阿里P5工程师~P8架构师晋升路线揭秘

程序员小毕

Java 程序员 面试 架构师 学习路线

易观千帆银行用户体验中心成立,助力银行业用户体验升级

易观分析

银行 用户体验

李宏毅《机器学习》丨2. Regression(回归)

AXYZdong

机器学习 7月月更

不是我说,Nacos和Apollo中的长轮询定时机制,真的太好用了

Java全栈架构师

Java 程序员 面试 微服务 nacos

算法题每日一练---第1天:猴子分香蕉

知心宝贝

算法 前端 后端 云开发 7月月更

Redis 持久化 - RDB 源码详细分析|保姆级别分析!全网最全

领创集团Advance Intelligence Group

持久化 rdb redis 底层原理

不吹不黑JAVA Stream的collect用法与原理,远比你想象的更强大

程序员小毕

Java 程序员 程序人生 stream collect

云计算和大数据的关系以及区别详细讲解

行云管家

云计算 大大数据

Vue3:显示markdown文档

空城机

markdown Vue3 7月月更

四个简单例子教你通过用户行为记录提高用户体验

观测云

字节跳动CVPR 2022多项目夺魁,获模拟人脑感知、长视频理解挑战双料冠军

字节跳动视频云技术团队

计算机视觉 图像处理 图片处理 视频理解 视频云

万物皆可Cassandra:HUAWEI Tag背后的神仙数据库

华为云开发者联盟

数据库 后端

Docker监控:最佳实践以及cAdvisor和Prometheus监控工具的对比_DevOps & 平台工程_Daniel Bryant_InfoQ精选文章