【必学】最流行的云原生监控解决方案:Prometheus+Grafana

news2024/9/25 23:14:56

文章目录

    • 一、Prometheus和Grafana简介
      • 1.1、Prometheus是最受欢迎的云原生监控方案之一
      • 1.2、Grafana是最流行的开源可视化平台
    • 二、Prometheus的优势
    • 三、Prometheus架构原理
    • 四、Prometheus和Grafana安装部署

一、Prometheus和Grafana简介

1.1、Prometheus是最受欢迎的云原生监控方案之一

prometheus是由SoundCloud开源的CNCF旗下的监控系统,是Google BorgMon监控系统的开源版本,提供了完善的监控和告警功能.

prometheus使用拉模型来收集时间序列数据,并通过PromQL查询语言进行查询和聚合,prometheus自身并不提供所有的监控和告警功能,而是通过prometheus生态中的其他组件搭配共同完成,因为架构设计上的扩展性,目前prometheus能够支持基础资源资源、应用程序监控、中间件监控等众多场景,并且对于传统应用和设备也具备比较好的兼容性,正逐步成为容器监控的标准,在云原生的时代背景下更是首选。它被广泛应用于DevOps和SRE领域,并在多个企业和组织中得到了广泛采用。

Prometheus可以与Kubernetes、Docker等容器编排和管理工具无缝集成,也可以与Grafana等可视化工具结合使用,以便更好地展示监控数据。

在市场地位方面,根据CNCF(云原生计算基金会)的2021年度调查报告,Prometheus是最受欢迎的云原生监控解决方案之一,它在使用率和满意度方面排名在前几位。

1.2、Grafana是最流行的开源可视化平台

Grafana是一款流行的开源数据可视化和监控分析平台,它提供了灵活、易用和可定制的仪表盘、报表、警报和日志分析等功能。Grafana最初是由瑞典的Torkel Ödegaard在2014年创建的,现在已经成为了全球最受欢迎的数据可视化平台之一。

Grafana的主要特点包括:

  • 多种数据源支持:Grafana支持从多种数据源获取数据,包括Prometheus、InfluxDB、Elasticsearch、Graphite、MySQL等,用户可以根据自己的需求选择合适的数据源。
  • 强大的可视化功能:Grafana提供了多种可视化图表类型,包括线图、柱状图、表格、地图等,用户可以自由组合、定制和分享这些图表。
  • 灵活的告警功能:Grafana可以根据用户设置的阈值和规则,自动发送通知和警报,帮助用户及时发现和解决问题。
  • 可扩展性:Grafana是一个可扩展的平台,用户可以编写自己的插件、面板和数据源,以满足自己的需求。

Grafana在市场上的地位越来越重要,它已经成为了企业、开发人员和数据科学家们的首选数据可视化和监控分析工具。根据2021年的一份报告显示,Grafana在全球最受欢迎的数据可视化工具中排名第二,仅次于Tableau。Grafana的用户群体涵盖了各个行业和领域,包括IT运维、物联网、金融、医疗等,而且Grafana还被广泛应用于开源项目和云服务中,如Kubernetes、AWS、Azure、Google Cloud等。

二、Prometheus的优势

Prometheus之所以能够成为在云原生背景下最受欢迎的云原生监控方案之一,在于其相对于其他的解决方案有独特的优势:

  1. 提供多维度的数据模型和灵活的查询方式,监控数据可以任意组合,提供PromQL和HTTP查询接口;
  2. 支持本地存储和第三方存储,例如OpenTSDB;
  3. 定义开放数据指标标准,Pull为主+Push相结合的采集方式,应对多数场景;
  4. 支持通过静态文件配置和动态发现机制发现监控对象,自动完成数据采集,Prometheus目前已经支持Kubernetes、etcd、Consul等多种服务发现机制;
  5. 支持容器部署,支持云原生;
  6. 支持联邦部署,支持大规模集群监控;
  7. 大量的exporter组件可以开箱即用,减少工作量。

三、Prometheus架构原理

img

以上为prometheus架构图,可以看到,prometheus server是核心组件,它定时地从目标对象上pull metrics,对于一些短周期的任务,允许将数据推送到Pushgateway,prometheus server从Pushgateway上抓取数据指标。

数据存储支持本地存储和远端存储,目前远端存储支持OpenTSDB、InfluxDB和Elasticsearch等。

对于拉取数据指标的对象,可以有两种方式进行配置,一种是通过配置文件进行静态配置,另一种是支持ZooKeeper、Consul、Kubernetes等方式进行动态发现。

AlertManager 是独立于 Prometheus 的一个组件,在触发了预先设置在Prometheus 中的高级规则后,Prometheus 便会推送告警信息到 AlertManager,由AlertManager发送邮件、钉钉等告警信息,AlertManager支持高可用部署,为了解决多个AlertManager重复告警的问题,引入了Gossip,在多个AlertManager之间通过Gossip同步告警信息。

特别注意,prometheus架构数据采集选择pull的模式有一些明显的好处,一是主动拉取,不会类似推的模式一样容易造成被采集应用程序因为推送数据指标失败等情况而造成对应用程序本身的影响,二是更加灵活和容易扩展,只要提供的http接口符合prometheus定义的数据格式即可.

可以看到prometheus的设计保障了其灵活性,不管是中间件、网络还是应用服务,只要编写提供metrics的符合规范的接口以供prometheus pull相关的数据即可实现灵活的监控,特别是关于应用服务的业务指标监控,只要编写切面统一收集数据或者埋点,就可以实现细粒度的监控,例如springboot应用集成prometheus实现JVM监控、业务指标监控,都是非常简单的事情。

另外,目前市场上存在大量的开箱即用的exporter组件,例如用于系统资源资源的node_exporter、用于mysql监控的mysqld_exporter、用于redis监控的redis_exporter等等。

四、Prometheus和Grafana安装部署

下载prometheus压缩包并解压缩,执行prometheus脚本即可启动:

tar xvfz prometheus-*.tar.gz
cd prometheus-*
./prometheus

访问http://192.168.56.11:9090,默认端口是9090,可以看到以下的页面,在默认情况下prometheus本身的指标也进行了收集,可以输入"up"点击Execute进行查询up指标,可以看到有指标名称,实例的IP和端口信息,job名称等。

img

prometheus实现了一个灵活的监控数据采集方案,但是缺少UI不够直观,无法满足企业级的监控需求,基于此grafana应运而生。

Grafana是一个跨平台的开源的度量分析和可视化工具,可以将采集的数据进行可视化展示,配置告警。其内置多种图表、支持多数据源、安装部署简单,基本实现可开箱即用,应用十分广泛,主要特点有:

1、丰富的图表支持:具有丰富的仪表盘插件,支持多种开箱即用的图表,例如折线图、饼图、柱形图等等,还有官方和社区提供的内置多种dashboard,针对具体的应用场景可以快速导入,无需自己组织图表,具体可以查看https://grafana.com/grafana/dashboards。

2、丰富的数据源支持:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;

3、通知提醒:以可视方式定义警报规则,在配置的规则下发送告警通知,页面上可以配置对应告警级别的不同颜色的图表。

4、图表和数据映射简单: 通过编写表达式,可以简单的实现图表的数据展示规则,并且可实现导入导出。

grafana的安装非常简单,下载对应的版本解压缩以后进入bin目录,执行grafana-server脚本即可,启动以后初始账号密码:admin/admin。

img

在使用之前添加对应的数据源,例如这里以添加prometheus数据源为例,点击settings->Data Sources->Add data source

img

填写prometheus相关的IP和端口信息,点击Save&Tests

img

如果添加成功并且测试通过会有以下提示:

img

由于prometheus本身也收集了自身的指标,所以这里直接以prometheus为例演示如何使用grafana可视化监控指标。

以prometheus的一个指标prometheus_http_requests_total为例,点击grafana面板左侧+号->create,创建一个面板,选择Add panel,在填写表达式,效果如下

img

这里是最简单的prometheus和grafana配合进行监控的案例,实际需要的情况下可以自己收集监控指标配置面板,实现一个全面的监控平台。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何进行单元测试

前言单元测试是指对软件中最小可测单元进行检查和验证;c语言中单元指一个函数,java中指一个类。图形化软件中可以指一个窗口或者一个菜单。总的来说,单元就是认为规定最小的被测试模块。1.1单元测试对我们开发程序有什么好处首先是一个前端单…

react: input 输入框 中文onChange事件异常问题 对input输入进行防抖处理

当我们使用Input时,我们可能会遇到一个问题,比如需要对用户输入的内容进行搜索时,当用户处于中文输入时,明明没有对内容进行确认,为什么会触发了onChange事件呢?比如以下场景,中文一边输入另外一…

机器学习知识总结 —— 20.使用朴素贝叶斯进行数据分类

文章目录准备基础数据计算先验概率计算条件概率预测分布验证结果作为一种监督学习分类方法,在上一章中我们已经介绍过它的数理原理。现在我们开始来实现一个简单的朴素贝叶斯分类的算法,这样我们能更好的理解它是怎么运作的。 准备基础数据 首先还是有…

加密流量专栏总览

文章目录加密流量专栏1. 原理篇2. 模型篇3. 文章分类总结3.1 研究方向3.2 特征提取3.3 机器学习模型改进3.4 深度学习模型改进3.5 其他模型改进3.7 实时检测3.8 概念漂移检索论文的方法加密流量专栏 1. 原理篇 原理: 会话、流、数据包之间的关系。 流:…

【离线数仓-4-数据仓库设计-分层规划构建流程】

离线数仓-4-数据仓库设计-分层规划&构建流程离线数仓-4-数据仓库设计-分层规划&构建流程1.数据仓库分层规划2.数据仓库构建流程1.数据调研1.业务调研2.需求分析3.总结2.明确数据域3.构建业务总线矩阵&维度模型设计4.明确统计指标1.指标体系相关概念1.原子指标2.派生…

【渝偲医药】DSPE-PEG-RGD;磷脂聚乙二醇多肽试剂级简介

DSPE-PEG-RGD、 二硬脂酰基磷脂酰乙醇胺-聚乙二醇-多肽、磷脂PEG多肽 英文名称: 1,2-Distearoyl-sn-Glycero-3-Phosphoethanolamine-PEG- RGD 溶剂:可溶解在水中和大多数有机溶剂中 外观:白色粉末 用途:用于链接带有链霉亲和素或其他的基团的分子 分子量(PEG ):2000、3400、…

那些开发过程中需要遵守的开发规范

入职公司三天,没干啥其他活,基本在配置本地环境和阅读相关文档。技术方面公司基本用的是主流的技术体系,入职后需要先阅读阿里的开发规范和其他的一些产研文档。今天整理一些平时需要关注的阿里规约和数据库开发规范,方便今后在开…

TatukGIS Developer Kernel for .NET

TatukGIS Developer Kernel for .NET 用于.NET的TatukGIS开发人员内核的强大功能: 打开、创建、编辑、保存和导出矢量、图片和网格的过程,包括类似于数据库的格式。 扩展属性、北箭头、比例和其他视觉控制也从TatukGIS编辑器/查看器商品中显示给用户开发…

Java基础系列(五): final关键字用法

一. 概述 final关键字代表最终,不可改变的. 常见有5种用法,我们来归纳总结一下: 1. 用来修饰一个类 2. 用来修饰一个方法 3. 用来修饰成员变量 4. 用来修饰局部变量 5. 用来修饰方法参数 二. final饰修类 如果声明一个类为final类, 那么这个类就是最终类,不能被继承 …

7 Python文件、文件夹、word及excel操作

0 建议学时和要求 4学时 掌握os和os.path模块对文件和文件夹操作的函数 掌握shutil模块对文件和文件夹操作的函数 掌握扩展库openpyxl对Excel文件的操作 1 文件的高级操作 1.1 文件的概念及分类 文本文件 文本文件可以使用记事本、gedit、ultraedit等字处理软件直接进行显…

ESP32设备驱动-DS1264数字温度传感器驱动

DS1264数字温度传感器驱动 1、DS1264介绍 DS1624 由两个独立的功能单元组成:一个 256 字节非易失性 E2 存储器和一个直接数字温度传感器。 非易失性存储器由 256 字节的 E2 存储器组成。 该存储器可用于存储用户希望的任何类型的信息。 这些内存位置通过 2 线串行总线访问。…

007永磁电机控制方式:别张嘴就FOC,其他常规控制方式也是伺服人的基本功

在读本篇文,我想做个小调查。到目前为止,你掌握的或者是你了解到的控制永磁同步电机的方式都有哪些?我想,你大概张口就说FOC控制吧。没错,FOC控制是我们日常生活中所见到的最普遍的永磁同步电机的控制方式。当然在本专…

微信电脑版字体模糊(或文字太小)怎么调整

文章目录第一步:设置屏幕缩放125%第二步:文本大小设置为125%第三步:微信设置--通用--勾选“适配系统缩放比例”第四步:微信高DPI缩放行为设置(关键)ClearType勾选(可选)笔者遇到这个…

【模板】线段树 2

题目描述 如题,已知一个数列,你需要进行下面三种操作: 将某区间每一个数乘上 xxx 将某区间每一个数加上 xxx 求出某区间每一个数的和 输入格式 第一行包含三个整数 n,m,pn,m,pn,m,p,分别表示该数列数字的个数、操作的总个数…

计算机网络笔记(复试准备)第一章

计算机网络笔记(复试准备) 第一章 网络,互联网与因特网 网络由若干个结点和连接这些结点的链路组成 多个网络通过路由器连接起来这也就形成了一个更大的网络即是我们熟知的互联网也就是“网络的网络” 因特网是世界上最大的网络 问&#xf…

Open-Vocabulary Object Detection Using Captions论文讲解

文章目录一、论文前言二、提出原因三、论文的核心四、论文讲解4.1 论文流程4.2 OVD与之前相关的setting4.3 结果对比一、论文前言 目标检测是人工智能最突出的应用之一,也是深度学习最成功的任务之一。 然而,尽管深度对象检测取得了巨大进步&#xff0…

MongoDB在银行海量历史订单交易数据查询中的应用(Spring boot + Bee)

MongoDB在银行海量历史订单交易数据查询中的应用(Spring boot Bee) 近年来,随着各种便捷支付方式的普及,银行账户交易数据呈现爆炸式增长,同时数据模型也在不断变化,传统关系型数据库已难以满足这种海量的、模式灵活、高可用、高性能的数据存储和查询需求。通过对银行历史交易…

【编程入门】应用市场(php版)

背景 前面已输出多个系列: 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 《N种编程语言做个记事本》 目标 为编程初学者打造入门学习项目,使…

【MySQL】索引常见面试题

文章目录索引常见面试题什么是索引索引的分类什么时候需要 / 不需要创建索引?有什么优化索引的方法?从数据页的角度看B 树InnoDB是如何存储数据的?B 树是如何进行查询的?为什么MySQL采用B 树作为索引?怎样的索引的数…

033_SS_Inversion-Based Creativity Transfer with Diffusion Models

下载地址:Arxiv 2022.11.23 Code地址:https://github.com/zyxElsa/creativity-transfer 1. Introduction Motivations 以前的任意示例引导的艺术图像生成方法(比如风格迁移)通常无法控制形状变化或传达语义元素。而预训练的text…