2025 AI基础设施风向标,不看必后悔!#AI基础设施峰会 了解详情
写点什么

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:0011519

评论

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

PageRank 算法

周冬辉

抗疫代码入国家博物馆, 程序员的巅峰时刻!

程序员生活志

程序员

Fettley全球共识共享智能合约资产计划 掀起行业追捧热潮

InfoQ_967a83c6d0d7

从零开始搭建完整的电影全栈系统(一)——数据库设计及爬虫编写

刘强西

爬虫 Scrapy

anyRTC小程序SDK 4.0上线

anyRTC开发者

小程序 WebRTC 语音 直播 RTC

开源流数据公司 StreamNative 正式加入 CNCF,积极推动云原生策略发展

Apache Pulsar

云原生 pulsar Apache Pulsar 消息系统 消息中间件

如何在一台电脑上管理多Github账号

Matrix Chan

git GitHub 版本管理工具 开发日志

Redis单线程为什么能做到高性能和io多路复用它是个什么鬼

Java架构师迁哥

oeasy 教您玩转linux 之010208 满屏乱码 bb

o

​程序员离职后收到原公司 2400 元,被告违反竞业协议赔 18 万

程序员生活志

程序员 职场

字节小组长无意中得知整个部门的薪资,自己28K,手下却有35K,怎么办?

程序员生活志

字节跳动 职场 薪资

架构师训练营第十三周作业

Hanson

如何在企业微信上搭建一款活动报名 App

Ceelog

企业微信 Go 语言

干货来袭!20例JavaWeb项目开发精粹;(内含源码)

Java架构师迁哥

LeetCode题解:225. 用队列实现栈,一个队列, 压入 - O(n), 弹出 - O(1),JavaScript,详细注释

Lee Chen

大前端 LeetCode

全票通过!易观开源项目DolphinScheduler进入Apache孵化器

易观大数据

大专生拿到阿里offer,却担心背调不过,网友:985在你面前黯淡无光

程序员生活志

面试 职场 阿里

「查缺补漏」巩固你的RocketMQ知识体系

Kerwin

Java RocketMQ

你应该了解的MySQL锁分类

X先生

MySQL 数据库 sql 数据库优化

解Bug之路-Nginx 502 Bad Gateway

无毁的湖光

nginx Linux TCP

架构师训练营第十三周总结

Hanson

限量版Netty纯手打笔记,年薪80W架构师耗时1个月整理出

Java架构师迁哥

为什么一个还没毕业的大学生能够把 IO 讲的这么好?

苹果看辽宁体育

Java 后端 io

对PageRank的理解

2流程序员

超级TV盒子,超清秒播,解锁全网VIP资源!

程序员生活志

资源

架构师0期Week13作业

Nan Jiang

超详细:完整的推荐系统架构设计

博文视点Broadview

架构 算法 推荐系统

大数据

yuanhang

Centos 7 虚拟机

克隆虚拟机

yuanhang

anyRTC - 模仿微信音视频通话功能

anyRTC开发者

WebRTC 语音 直播 RTC 安卓

防止APP窃取用户隐私问题,OPPO安全在行动

OPPO安全

App 安全 隐私保护 数据隐私 sdk

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