• 欢迎访问V小白网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入V小白 暂无QQ群
  • 欢迎访问V小白网站,这是第二个滚动条

docker容器技术学习笔记(10、Docker常用监控方案)

其他分类 admin 2019年6月28日 10:36 315 0 个评论

docker container ps 是我们早已熟悉的命令了,方便我们查看当前运行的容器。新版的 Docker 提供了一个新命令 docker container ls,其作用和用法与 docker container ps 完全一样。不过 ls 含义可能比 ps 更准确,所以更推荐使用。

  • top

docker container stats 用于显示每个容器各种资源的使用情况。默认会显示一个实时变化的列表,展示每个容器的 CPU 使用率,内存使用量和可用量。注意:容器启动时如果没有特别指定内存 limit,stats 命令会显示 host 的内存总量,但这并不意味着每个 container 都能使用到这么多的内存。

监控利器sysdig

sysdig 是一个轻量级的系统监控工具,同时它还原生支持容器。通过 sysdig 我们可以近距离观察 linux 操作系统和容器的行为。

安装和运行 sysdig 的最简单方法是运行 Docker 容器,命令行为:

sysdig 的特点如下:
1、监控信息全,包括 Linux 操作系统和容器。
2、界面交互性强。
不过 sysdig 显示的是实时数据,看不到变化和趋势。而且是命令行操作方式,需要 ssh 到 Host 上执行,会带来一些不便。 cAdvisor 是 google 开发的容器监控工具。
在 host 中运行 cAdvisor 容器。

cAdvisor 的主要功能,总结起来主要两点:
1、展示 Host 和容器两个层次的监控数据。
2、展示历史变化数据。

我们可以把 cAdvisor 定位为一个监控数据收集器,收集和导出数据是它的强项,而非展示数据。

Prometheus

架构

Prometheus 架构如下:

  • Prometheus Server

Prometheus Server 负责从 Exporter 拉取和存储监控数据,并提供一套灵活的查询语言(PromQL)供用户使用。

  • 可视化组件

监控数据的可视化展现对于监控方案至关重要。以前 Prometheus 自己开发了一套工具,不过后来废弃了,因为开源社区出现了更为优秀的产品 Grafana。Grafana 能够与 Prometheus 无缝集成,提供完美的数据展示能力。

也许一些熟悉其他监控方案的同学看了 Prometheus 的架构会不以为然,“这些功能 Zabbix、Graphite、Nagios 这类监控系统也都有,没什么特别的啊!”。Prometheus 最大的亮点和先进性是它的多维数据模型。

  • Prometheus 的核心:多维数据模型
    1、通过维度对数据进行说明,附加更多的业务信息,进而满足不同业务的需求。同时维度是可以动态添加的,比如再给数据加上一个 user 维度,就可以按用户来统计容器内存使用量了。
    2、Prometheus 丰富的查询语言能够灵活、充分地挖掘数据的价值。前面示例中的 avg、sum、by 只是查询语言中很小的一部分功能,已经为我们展现了 Prometheus 对多维数据进行分片、聚合的强大能力。
    • 数据详细度

    ps/top/stats 和 cAdvisor 能够监控容器基本的资源使用情况,Sysdig、Weave Scope 和 Prometheus 则能提供更丰富的数据。

    • 告警功能

    只有 Prometheus 具备原生的告警功能。

    四个方面的比较结果如下表所示。

  • 几点建议
    1、Docker ps/top/stats 最适合快速了解容器运行状态,从而判断是否需要进一步分析和排查。
    2、Sysdig 提供了的丰富的分析和挖掘功能,是 Troubleshooting 的神器。
    3、cAdvisor 一般不会单独使用,通常作为其他监控工具的数据收集器,比如 Prometheus。
    4、Weave Scope 流畅简洁的操控界面是其最大亮点,而且支持直接在 Web 界面上执行命令。
    5、Prometheus 的数据模型和架构决定了它几乎具有无限的可能性。Prometheus 和 Weave Scope 都是优秀的容器监控方案。除此之外,Prometheus 还可以监控其他应用和系统,更为综合和全面。
    6、监控系统的选择,并不是一道单选题,应该根据需求和实际情况搭配组合,优势互补。除了这里介绍的 5 种工具和方案,监控领域还有很多选项,也都可以考虑。

  • V小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:docker容器技术学习笔记(10、Docker常用监控方案)
    喜欢 (0)
    发表我的评论
    取消评论
    表情 贴图 加粗 删除线 居中 斜体 签到
    0个小伙伴在吐槽