写点什么

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

评论

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

Redis 内存数据存储解析:性能优势与核心使用技巧

测吧(北京)科技有限公司

测试

聊聊性能基准测试和容量评估规划

老张

性能测试 容量规划 基准测试

Mint 101: 全面解读 Mint Blockchain 生态和参与指南

NFT Research

blockchain NFT\ 空投

技术解读:华为云如何携手昇腾、鸿蒙等根生态,助力开发者技术创新

华为云开发者联盟

华为云 鲲鹏计算 大模型 昇腾

如何构建高效的用例管理平台:测试过程的全面优化

测吧(北京)科技有限公司

测试

DORA指标实施反模式:如何避免正确实施DORA

俞凡

DevOps 最佳实践 DORA

哈银消费金融彰显责任担当:深化消保政策,稳健前行铸就新辉煌

Geek_2d6073

MySQL 高级管理实战指南:性能调优与数据备份的最佳实践

测吧(北京)科技有限公司

测试

如何建立一个完善的缺陷管理流程?

测吧(北京)科技有限公司

测试

Mac动态壁纸桌面Dynamic Wallpaper for Mac

Mac相关知识分享

壁纸软件

这些售后管理的问题,你遇到过多少?

天津汇柏科技有限公司

低代码 软件定制开发 售后 AI 人工智能

用实力说话!望繁信科技与创鑫激光达成战略合作

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能

强大音乐制作软件Native Instruments Komplete Kontrol for mac

Mac相关知识分享

音乐制作软件

软件测试的核心原则:确保质量的六大基石

测吧(北京)科技有限公司

测试

解读MySQL8.0数据字典重构源码

华为云开发者联盟

MySQL 数据库 innodb 数据字典

从基础到进阶:掌握 SQL 索引、事务与锁机制的应用技巧

测吧(北京)科技有限公司

测试

深入理解Python类型注解:基本使用与核心概念解析

测吧(北京)科技有限公司

测试

Volcano新版本发布:10大功能提升统一调度和细粒度资源管理能力

华为云开发者联盟

Volcano 批量计算 云原生‘’ #GPU kubernetes pod

缺陷处理流程的最佳实践

测吧(北京)科技有限公司

测试

人工智能 | 基于ChatGPT开发人工智能服务平台

测吧(北京)科技有限公司

测试

TDengine 流计算与窗口机制的深度解析:揭示计数窗口的关键作用

TDengine

数据库 tdengine 时序数据库

软件测试的对象:从单元到系统,全方位覆盖的测试层级

测吧(北京)科技有限公司

测试

缺陷管理的全面剖析:从发现到修复,优化软件产品质量

测吧(北京)科技有限公司

测试

联想ThinkPad与英特尔携手亮相2024抖音创作者大会,加速生成式AI创作

科技范儿

Redis: 探索性能最快的内存数据库及其基础操作指南

测吧(北京)科技有限公司

测试

基于LangChain手工测试用例转App自动化测试生成工具

测吧(北京)科技有限公司

测试

深入解析 SQL 优化策略:提高查询效率的关键技术

测吧(北京)科技有限公司

测试

《华为云DTSE》期刊免费下载:10个案例读懂云上架构升级策略

华为云开发者联盟

php 元宇宙 人工智能’ 华为云DTSE 云原生‘’

软件缺陷处理为什么那么重要?

测吧(北京)科技有限公司

测试

缺陷修复之后如何做验证?

测吧(北京)科技有限公司

测试

ChatGPT 订阅价或涨到 44 美元;研究称 AI 可 100% 绕过 reCAPTCHA V2 验证丨RTE 开发者日报

声网

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