目录
一、前言
docker的规模化使用已经成为当下的趋势,尤其是云原生技术的发展让docker的重要性得到进一步的提升,使用docker部署一些常规的中间件非常方便,不仅大大降低了环境搭建的成本,也能够在一定程度上节省了不少的资源,但是随之而来,也同时出现另一个问题就是尽管docker部署方便,但是一旦机器上部署的docker容器越来越多,如何对它们进行监控呢,毕竟docker也是要吃机器资源的,本文将通过实际案例来说明下如何解决这个问题。
二、docker监控概述 2.1 docker常用监控指标
在监控Docker容器时,以下是一些常用的监控指标:
内存使用量
网络流量
磁盘I/O
文件系统使用量
容器状态
进程数量
容器日志
运行时间
负载平均值
利用上面这些指标,可以帮助运维人员全面了解容器的健康状况和性能表现,从而进行有效的管理和优化。
2.2 docker常用监控工具
目前市面上也陆陆续续出现了不少关于docker的监控方案,下面列举一些docker常用监控工具
Prometheus
Grafana
Datadog
Sysdig
利用这些工具可以帮助管理员监视Docker容器的资源使用情况、性能指标、日志和事件,有助于优化和管理容器化环境。
三、CAdvisor概述 3.1 CAdvisor是什么
cAdvisor(Container Advisor)是一个由Google开发的开源项目,专为监控Docker容器而设计。它提供了容器级别的资源使用情况和性能指标,帮助用户深入了解每个运行中的容器的运行状态和资源消耗情况。
3.2 CAdvisor功能特点
CAdvisor具有下面的功能特点:
容器级别视角
跨平台支持
轻量级和易集成
Web界面和API支持
3.3 CAdvisor使用场景
cAdvisor广泛应用于容器化环境中,特别是Docker和Kubernetes集群中,用于实时监控和性能优化,其功能和特性使其在以下场景中特别有用:
资源管理
容器健康检查:
集成与监控系统:
实时监控和报告:
总体来说,cAdvisor为用户提供了深入了解和有效管理容器的能力,是现代容器化部署中不可或缺的重要组成部分。
四、CAdvisor对接Prometheus与Grafana 4.1 环境准备
grafana服务;
docker环境;
4.2 docker部署CAdvisor
为了能够获取到docker容器的运行状态,用户可以通过docker的stats命令获取到当前主机上运行的容器统计指标信息,有点像linux的top命令信息展示,通过这个命令可以查看容器的cpu利用率,内存使用量,网络IO以及磁盘IO等信息。
docker stats
除了使用命令外,还可以通过docker提供的HTTP api查看容器详细统计的监控信息。
4.2.2 docker部署CAdvisor服务
CAdvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具,通过在主机上运行CAdvisor,用户可以轻松获取到当前主机上容器的运行统计信息,并以图表的形式向用户呈现。
执行如下的docker命令安装CAdvisor
4.2.3 访问界面
容器启动成功后,可以在浏览器通过:IP:8080进行访问,效果如下
往下翻也可以看到一些更详细的图形化指标信息
4.2.4 访问metrics
CAdvisor也暴露了metrics的指标端点,可以在访问的url上添加/metrics查看,如下:
不难理解,既然暴露出了metrics的端点指标接口,就可以通过Prometheus接入之后进行监控
4.3 配置Prometheus 4.3.1 修改Prometheus配置文件
找到Prometheus的yml配置文件,在job的配置中添加CAdvisor的配置job信息,如下:
4.3.2 重启Prometheus服务
略
4.3.3 访问Prometheus控制台
浏览器访问Prometheus的监控页面,可以看到CAdvisor就接入进来了
也可以通过链接点进去进一步查看监控的指标信息,和上面看到效果是一致的
4.4 接入Grafana
如何将上述的指标信息更好的呈现出来呢,可以通过在Grafana上配置dashboard,从而以更直观的方式展现,下面看具体的操作步骤;
4.4.1 Grafana官网找一个模板
登录到Grafana官网,搜索docker,找一个关于docker的dashboard,拷贝模板ID,下面会用到:
Grafana dashboards | Grafana Labs
比如这里我拷贝的是11600这个模板ID
4.4.2 Grafana配置dashboard模板
添加导入一个模板
跳转到下面的界面之后,拷贝上面的ID到下面的框中
点击右侧的load按钮,跳转到下面的页面之后,选择本机的Prometheus
最后点击Import按钮进行加载,来到下面的监控页面
这个页面上清楚展示了主机上的容器信息,比如运行中的容器数量,具体某个容器的内存占用情况等,一目了然的可以直观的看到各类关于容器的指标信息。
五、写在最后