【云原生】Prometheus监控Docker指标并接入Grafana

目录

一、前言

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

【云原生】Prometheus监控Docker指标并接入Grafana_【云原生】Prometheus监控Docker指标并接入Grafana_

除了使用命令外,还可以通过docker提供的HTTP api查看容器详细统计的监控信息。

4.2.2 docker部署CAdvisor服务

CAdvisor是Google开源的一款用于展示和分析容器运行状态的可视化工具,通过在主机上运行CAdvisor,用户可以轻松获取到当前主机上容器的运行统计信息,并以图表的形式向用户呈现。

执行如下的docker命令安装CAdvisor

docker run -d \
--name=cadvisor \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
google/cadvisor:latest

_【云原生】Prometheus监控Docker指标并接入Grafana_【云原生】Prometheus监控Docker指标并接入Grafana

4.2.3 访问界面

容器启动成功后,可以在浏览器通过:IP:8080进行访问,效果如下

_【云原生】Prometheus监控Docker指标并接入Grafana_【云原生】Prometheus监控Docker指标并接入Grafana

往下翻也可以看到一些更详细的图形化指标信息

【云原生】Prometheus监控Docker指标并接入Grafana__【云原生】Prometheus监控Docker指标并接入Grafana

4.2.4 访问metrics

CAdvisor也暴露了metrics的指标端点,可以在访问的url上添加/metrics查看,如下:

_【云原生】Prometheus监控Docker指标并接入Grafana_【云原生】Prometheus监控Docker指标并接入Grafana

不难理解,既然暴露出了metrics的端点指标接口,就可以通过Prometheus接入之后进行监控

4.3 配置Prometheus 4.3.1 修改Prometheus配置文件

找到Prometheus的yml配置文件,在job的配置中添加CAdvisor的配置job信息,如下:

- job_name: "cadvisor"
    scrape_interval: 10s
    metrics_path: '/metrics'
    static_configs:
      - targets: ["公网IP:8080"]

4.3.2 重启Prometheus服务

4.3.3 访问Prometheus控制台

浏览器访问Prometheus的监控页面,可以看到CAdvisor就接入进来了

【云原生】Prometheus监控Docker指标并接入Grafana__【云原生】Prometheus监控Docker指标并接入Grafana

也可以通过链接点进去进一步查看监控的指标信息,和上面看到效果是一致的

【云原生】Prometheus监控Docker指标并接入Grafana__【云原生】Prometheus监控Docker指标并接入Grafana

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模板

添加导入一个模板

_【云原生】Prometheus监控Docker指标并接入Grafana_【云原生】Prometheus监控Docker指标并接入Grafana

跳转到下面的界面之后,拷贝上面的ID到下面的框中

_【云原生】Prometheus监控Docker指标并接入Grafana_【云原生】Prometheus监控Docker指标并接入Grafana

点击右侧的load按钮,跳转到下面的页面之后,选择本机的Prometheus

【云原生】Prometheus监控Docker指标并接入Grafana__【云原生】Prometheus监控Docker指标并接入Grafana

最后点击Import按钮进行加载,来到下面的监控页面

【云原生】Prometheus监控Docker指标并接入Grafana__【云原生】Prometheus监控Docker指标并接入Grafana

这个页面上清楚展示了主机上的容器信息,比如运行中的容器数量,具体某个容器的内存占用情况等,一目了然的可以直观的看到各类关于容器的指标信息。

五、写在最后

本文通过操作实践详细接受了使用prometheus监控docker的完整流程,如果正好你的项目中有使用到docker进行服务部署需要做监控的时,可以作为参考,本文到此结束感谢观看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值