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

目录

一、前言

二、docker监控概述

2.1 docker常用监控指标

2.2 docker常用监控工具

三、CAdvisor概述

3.1 CAdvisor是什么

3.2 CAdvisor功能特点

3.3 CAdvisor使用场景

四、CAdvisor对接Prometheus与Grafana

4.1 环境准备

4.2 docker部署CAdvisor

4.2.2 docker部署CAdvisor服务

4.2.3 访问界面

4.2.4 访问metrics

4.3 配置Prometheus

4.3.1 修改Prometheus配置文件

4.3.2 重启Prometheus服务

4.3.3 访问Prometheus控制台

4.4 接入Grafana

4.4.1 Grafana官网找一个模板

4.4.2 Grafana配置dashboard模板

五、写在最后


一、前言

docker的规模化使用已经成为当下的趋势,尤其是云原生技术的发展让docker的重要性得到进一步的提升,使用docker部署一些常规的中间件非常方便,不仅大大降低了环境搭建的成本,也能够在一定程度上节省了不少的资源,但是随之而来,也同时出现另一个问题就是尽管docker部署方便,但是一旦机器上部署的docker容器越来越多,如何对它们进行监控呢,毕竟docker也是要吃机器资源的,本文将通过实际案例来说明下如何解决这个问题。

二、docker监控概述

2.1 docker常用监控指标

 

在监控Docker容器时,以下是一些常用的监控指标:

  • CPU使用率

    • 描述:容器的CPU使用百分比。

    • 用途:监控容器是否超出CPU资源限制,识别高负载问题。

  • 内存使用量

    • 描述:容器使用的内存总量和内存限制。

    • 用途:监控内存使用情况,防止内存泄漏或过度使用。

  • 网络流量

    • 描述:容器的网络流入和流出流量。

    • 用途:检测网络瓶颈或异常流量模式。

  • 磁盘I/O

    • 描述:容器的磁盘读写操作量。

    • 用途:监控磁盘性能,避免I/O瓶颈。

  • 文件系统使用量

    • 描述:容器文件系统的总使用空间和可用空间。

    • 用途:确保容器有足够的磁盘空间。

  • 容器状态

    • 描述:容器的运行状态(运行中、停止、重启等)。

    • 用途:监控容器的健康状态,识别崩溃或重启事件。

  • 进程数量

    • 描述:容器内部运行的进程数量。

    • 用途:检测进程异常,防止资源耗尽。

  • 容器日志

    • 描述:容器内部应用程序或系统产生的日志信息。

    • 用途:排查应用程序问题,查看错误和警告信息。

  • 运行时间

    • 描述:容器自启动以来的运行时间。

    • 用途:监控容器的稳定性和正常运行时间。

  • 负载平均值

    • 描述:容器的系统负载平均值。

    • 用途:评估系统负载情况,识别潜在的性能问题。

利用上面这些指标,可以帮助运维人员全面了解容器的健康状况和性能表现,从而进行有效的管理和优化。

2.2 docker常用监控工具

目前市面上也陆陆续续出现了不少关于docker的监控方案,下面列举一些docker常用监控工具

  • cAdvisor

    • Google开发的开源项目,用于收集、聚合、分析容器的资源使用和性能数据。

  • Prometheus

    • 开源的系统和服务监控系统,可与Grafana等配合使用,支持Docker容器的监控和告警。

  • Grafana

    • 开源的数据可视化和监控平台,支持多种数据源,可以与Prometheus等监控工具集成,用于实时监控和数据展示。

  • Datadog

    • 云监控和安全平台,提供Docker容器监控功能,支持自定义仪表盘、告警设置等。

  • Sysdig

    • 提供容器和云环境的监控解决方案,支持Docker和Kubernetes集成,提供实时和历史性能数据。

利用这些工具可以帮助管理员监视Docker容器的资源使用情况、性能指标、日志和事件,有助于优化和管理容器化环境。

三、CAdvisor概述

3.1 CAdvisor是什么

cAdvisor(Container Advisor)是一个由Google开发的开源项目,专为监控Docker容器而设计。它提供了容器级别的资源使用情况和性能指标,帮助用户深入了解每个运行中的容器的运行状态和资源消耗情况。

3.2 CAdvisor功能特点

CAdvisor具有下面的功能特点:

  • 资源使用情况监控

    • cAdvisor能够监控CPU、内存、磁盘和网络的使用情况,并提供实时的性能指标。

  • 容器级别视角

    • 与传统的宿主机监控工具不同,cAdvisor专注于每个独立容器的监控,提供更精细化的数据。

  • 跨平台支持

    • 支持多种容器运行时,如Docker和Kubernetes等,以及多种操作系统。

  • 轻量级和易集成

    • 作为一个轻量级的容器内部监控工具,cAdvisor可以与其他监控系统集成,如Prometheus和Grafana,实现更复杂的监控和报告。

  • Web界面和API支持

    • 通过Web界面和API,用户可以直观地查看和管理监控数据,支持数据的导出和自定义查询。

3.3 CAdvisor使用场景

cAdvisor广泛应用于容器化环境中,特别是Docker和Kubernetes集群中,用于实时监控和性能优化,其功能和特性使其在以下场景中特别有用:

  • 性能调优

    • 通过监控资源使用情况,帮助用户识别和解决性能瓶颈,优化容器应用的性能。

  • 资源管理

    • 确保容器在资源限制下正常运行,避免资源竞争和耗尽问题,提高整体资源利用率。

  • 容器健康检查

    • 监控容器的运行状态和行为,及时发现和处理异常情况,保证容器的可靠性和稳定性。

  • 集成与监控系统

    • cAdvisor作为一个轻量级的容器内部监控工具,能够与其他监控系统(如Prometheus和Grafana)集成,支持更复杂的监控需求和定制报告。

  • 实时监控和报告

    • 通过Web界面和API直观地查看和管理监控数据,支持数据的导出和自定义查询,帮助用户实时了解容器的运行状况和性能表现。

总体来说,cAdvisor为用户提供了深入了解和有效管理容器的能力,是现代容器化部署中不可或缺的重要组成部分。

四、CAdvisor对接Prometheus与Grafana

4.1 环境准备

  • prometheus服务;

    • 参考相关的资料提前部署prometheus;

  • grafana服务;

    • 参考相关的资料提前部署grafana;

  • docker环境;

    • 提前安装docker,可以再在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

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

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信息,如下:  

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

 

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按钮进行加载,来到下面的监控页面

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

 

五、写在最后

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/389402.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vulnhub靶场serial-php渗透(蜥蜴细!)

目录 一、信息收集 1.探测主机存活(目标主机IP地址) 2.访问web服务 3.后台目录和端口扫描 4.解析bak.zip源码 二、漏洞利用 1.构造payload 2.通过bp的repeater模块 3.get shell 4.获取反弹shell 三、提升权限 1. 查看系统版本,内核…

MySQL数据库忘记密码,怎么重新修改密码?

1、停止MySQL数据服务 systemctl stop mariadb 2、跳过权限表检查并启动MySQL mysqld_safe --skip-grant-tables& 使用mysqld_safe --skip-grant-tables&命令后,不需要密码也可以进去MySQL,随便输入密码也是可以进入MySQL的,因为这个…

Traefik系列

一、入门Traefik系列——基础简介 官方文档 https://doc.traefik.io/traefik/[1] 简介 Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Re…

CentOS7.9 利用 KubeKey 扩容 Kubernetes v1.26 Worker 节点实战

转载:CentOS7.9 利用 KubeKey 扩容 Kubernetes v1.26 Worker 节点实战 知识点 定级:入门级 KubeKey 安装部署 KubeSphere 和 Kubernetes KubeKey 定制化部署集群 KubeSphere v3.4.0 功能概览 Kubernetes 基本操作 CentOS 系统内核升级 演示服务器配…

Python爬虫:下载人生格言

Python爬虫:下载人生格言 爬取网页 将这些格言下载存储到本地 代码: import requests #导入requests库,用于提取网页 from lxml import etree#导入lxml库,用于Xpath数据解析#请求头 header{ user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) A…

游戏加速器推荐 网游加速器排行榜

游戏加速器推荐,玩游戏用什么加速器!我得给你推荐一款我常用的。首先呢,就是深度加速器,它针对目前手游网游的游戏加速效果特别棒,而且界面也很友好。 另外,还有深度加速器,这款加速器不仅支持国…

【信创】Linux操作系统上使用命令查看设备序列号

原文链接:【信创】Linux操作系统上使用命令查看设备序列号 Hello,大家好啊!今天给大家带来一篇关于在信创操作系统上如何查看设备序列号的文章。在进行设备管理、维护和售后服务时,设备序列号是一个非常重要的信息。本文将详细介绍…

HarmonyOS入门

HarmonyOS 系统定义 HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统。 Harmony提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设置,提供全场景(移动办公、运动…

simulink绘制bode图

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

【PGCCC】PostgreSQL 14 小版本分析,有那个版本不建议使用#PG中级

以下是对 PostgreSQL 14 各个小版本的详细分析,包括每个版本的主要变化、修复的 bug 和潜在的问题: PostgreSQL 14.0 发布日期:2021 年 9 月 30 日 主要变化: 增加了并行查询的改进,提升了性能。增强了 JSON 数据类…

【人工智能】Transformers之Pipeline(三):文本转音频(text-to-audio/text-to-speech)

​​​​​​​ 一、引言 pipeline(管道)是huggingface transformers库中一种极简方式使用大模型推理的抽象,将所有大模型分为音频(Audio)、计算机视觉(Computer vision)、自然语言处理&#x…

查找算法:线性查找,golang实现

目录 前言 线性查找 代码示例 1. 算法包 2. 线性查找代码 3. 模拟程序 4. 运行程序 循环次数 假如目标值正好在数组中的第一位 假如目标值正好在数组中的第五位 假如目标值正好在数组中的最后一位 假如目标值不在数组中 线性查找的思想 1. 顺序遍历 2. 比较 3.…

计算机毕业设计选题推荐-课程教学辅助系统-Java/Python项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

金牌挑战——奥运知识大比拼

巴黎奥运会乒乓球项目1日结束男、女单打四分之一决赛。在四分之一决赛中,上演惊天逆转,在大比分0:2、2:3落后的逆势下力挽狂澜,4:3艰难战胜对手,进入四强。祝贺! 为此,我立马出了一个知识竞赛,…

vmware安装银河麒麟V10高级服务器操作系统

vmware安装银河麒麟V10高级服务器操作系统 1、下载银河麒麟V10镜像2、VMware安装银河麒麟V10高级服务器操作系统2.1、新建虚拟机2.2、安装虚拟机 3、配置银河麒麟V10高级服务器操作系统3.1、安装vmware tools3.2、配置静态IP地址 和 dns3.3、查看磁盘分区3.4、查看系统版本、内…

正则表达式与文本处理

目录 一、正则表达式 1、正则表达式定义 1.1正则表达式的概念及作用 1.2、正则表达式的工具 1.3、正则表达式的组成 2、基础正则表达式 3、扩展正则表达式 4、元字符操作 4.1、查找特定字符 4.2、利用中括号“[]”来查找集合字符 4.3、查找行首“^”与行尾字符“$”…

[C++探索]初始化列表,static成员,友元函数,内部类,匿名对象

💖💖💖欢迎来到我的博客,我是anmory💖💖💖 又和大家见面了 欢迎来到C探索系列 作为一个程序员你不能不掌握的知识 先来自我推荐一波 个人网站欢迎访问以及捐款 推荐阅读 如何低成本搭建个人网站…

二百五十二、OceanBase——Linux上安装OceanBase数据库(二):新用户配置ssh免密登录

一、目的 在OBD页面上部署OceanBase数据库时发现,需要把新用户也要配置ssh免密登录 二、前提 root用户已经设置免密登录 三、配置步骤 1 切换到新用户obadmin [roothurys23 ~]# su obadmin 2 执行命令生成秘钥文件 [obadminhurys23 oceanbase]$ ssh-keygen …

SSH实现电脑VScode免密登录到虚拟机其原理

在网上想看一下这个原理。发现写的还是比较乱,所以自己总结了一份方便回顾 SSH免密登录的原理主要基于非对称密钥加密技术,比较常用的是RSA算法。 以下是SSH免密登录的详细步骤和原理: 1. 生成密钥对 在客户端上生成一对密钥,…

初识Docker及管理Docker

Docker部署 初识DockerDocker是什么Docker的核心概念镜像容器仓库 容器优点容器在内核中支持2种重要技术:Docker容器与虚拟机的区别 安装Docker源码安装yum安装检查Docker Docker 镜像操作配置镜像加速器(阿里系)搜索镜像获取镜像查看镜像信息…