第01期:详解 Prometheu 专栏开篇「建议收藏」

第01期:详解 Prometheu 专栏开篇「建议收藏」开篇致辞 大家好,从今天开始,我将开启一个全新的专栏叫做《详解 Prometheus》。 专栏会详细介绍 Prometheus 这款优秀的开源监控告警系统的使用,欢迎感兴趣的小伙伴关注! 一、产品简…

第01期:详解 Prometheu 专栏开篇

开篇致辞

大家好,从今天开始,我将开启一个全新的专栏叫做《详解 Prometheus》。 专栏会详细介绍 Prometheus 这款优秀的开源监控告警系统的使用,欢迎感兴趣的小伙伴关注!

一、产品简介

Prometheus 最开始是由 SoundCloud 开发的开源监控告警系统,是 Google BorgMon 监控系统的开源版本。 在 2016 年,Prometheus 加入 CNCF,成为继 Kubernetes 之后第二个被 CNCF 托管的项目。随着 Kubernetes 在容器编排领头羊地位的确立,Prometheus 也成为 Kubernetes 容器监控的标配。 本文接下来将会对 Prometheus 做一个介绍。

二、设计架构

监控系统的总体架构大多是类似的,都有数据采集、数据处理存储、告警动作触发和告警,以及对监控数据的展示。 下面是 Prometheus 的架构: 第01期:详解 Prometheu 专栏开篇「建议收藏」

Prometheus Server 负责定时从 Prometheus 采集端 Pull(拉) 监控数据。Prometheus 采集端可以是实现了 /metrics 接口的服务,可以是从第三方服务导出监控数据的 exporter,也可以是存放短生命周期服务监控数据的 Pushgateway。相比大多数采用 Push(推) 监控数据的方式,Pull 使得 Promethues Server 与被采集端的耦合度更低,Prometheus Server 更容易实现水平拓展。

对于采集的监控数据,Prometheus Server 使用内置时序数据库 TSDB 进行存储。同时也会使用这些监控数据进行告警规则的计算,产生的告警将会通过 Prometheus 另一个独立的组件 Alertmanager 进行发送。Alertmanager 提供了十分灵活的告警方式,并且支持高可用部署。

对于采集到的监控数据,可以通过 Prometheus 自身提供的 Web UI 进行查询,也可以使用 Grafana 进行展示。

三、快速部署

3.1 下载 Prometheus 安装包,并解压

wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.darwin-amd64.tar.gz
tar xvzf prometheus-2.16.0.darwin-amd64.tar.gz
cd prometheus-2.16.0.darwin-amd64

代码100分

3.2 配置 Prometheus

Prometheus 的配置是 YAML 格式的,下面使用的配置文件主要包括了三部分:global, rule_files, scrape_configs。

  • global

    定义 Prometheus 拉取监控数据的周期 scrape_interval 和 告警规则的计算周期 evaluation_interval。

  • rule_files

    指定了告警规则的定义文件。

  • scrape_configs

    定义 Prometheus 采集端,这里的采集端可以静态指定,也可以配置服务发现功能自动发现采集端。

由于 Prometheus 自身也实现了 /metrics 接口,所有我们在这里配置它自己作为采集端。

配置示例:

代码100分global:
 scrape_interval:     15s
 evaluation_interval: 15s

rule_files:
 # - "first.rules"
 # - "second.rules"

scrape_configs:
 - job_name: prometheus
   static_configs:
     - targets: ["localhost:9090"]

3.3 启动 Prometheus

./prometheus --config.file=prometheus.yml

当 Prometheus 启动之后,可以在浏览器输入 http://localhost:9090 打开 Prometheus Web UI。

3.4 使用 Prometheus Web UI

Prometheus Web UI 一般有三个用途:查询某个 metric,查看当前有哪些告警触发,查看当前的状态(使用的配置、告警规则、数据采集端)。下面是查询 prometheus_http_request_total 的结果,当前触发的告警和当前的状态可以在 Alerts 和 Status 中查看。 第01期:详解 Prometheu 专栏开篇「建议收藏」

四、优点

  • 多维度的数据模型:时序数据由指标(metric)名称和标签对标识
  • 提供灵活的数据查询语言 –PromQL
  • 同时支持监控数据的本地存储和远程存储
  • 同时支持静态文件配置和动态发现监控对象
  • 易于和结合 Grafana 等 GUI 组件展示数据
  • 与 Kubernetes 相融合

五、缺点

任何工具都没有银弹,Prometheus 也不例外,它有自身的局限性:

  • 它只能采集某个 metric 的数值,所以它能监控某个调用的执行时间,但是不能还原整个调用链。
  • Prometheus 本地存储的设计初衷是存储短期的数据(通常是一个月),所以对于需要存储大量的历史数据的场景需要使用如 OpenTSDB 这样的远端存储。
  • Prometheus 的监控数据没有对单位进行定义,通常需要使用约定好的默认单位或者在 metric 的命名中加上单位。

六、总结

市面上还有一些其他的监控系统,比如 Zabbix、Open-Falcon 等。这里为什么要去关注 Prometheus?不仅仅是因为 Prometheus 本身有着不错的性能和拓展性,社区活跃度高,更重要的是它对云原生支持得最好。一个项目的成功当然要靠自我奋斗,当然也要考虑历史的进程,Prometheus 这样一个就是顺应云原生趋势的项目。本文介绍了它的架构、使用例子及其优缺点,后面将会从架构图中各个方面进行更为详细的介绍。


相关内容方面的知识,大家还有什么疑问或者想知道的吗?赶紧留言告诉小编吧! 第01期:详解 Prometheu 专栏开篇「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8768.html

(0)
上一篇 2023-02-22
下一篇 2023-02-22

相关推荐

  • 抓取程序执行的sql语句_慢sql监控

    抓取程序执行的sql语句_慢sql监控一、 创建一张表用于存放抓取到的Running SQL USE [dba_monitor] GO CREATE TABLE [running_sql_monitor]( [id] [int] IDE…

    2023-03-22
    141
  • .NET 链接数据库:证书链是由不受信任的颁发机构颁发的[通俗易懂]

    .NET 链接数据库:证书链是由不受信任的颁发机构颁发的[通俗易懂]错误信息 证书链是由不受信任的颁发机构颁发的 错误环境 .NET web.config链接数据库(发布到服务)时报错 解决方法 下面配置标红部分在你的代码配置中增加或者修改 <add name=

    2023-03-06
    137
  • Python可视化:探索数据之美

    Python可视化:探索数据之美随着数据科学和人工智能技术的快速发展,数据已经成为人们生产、生活、科研的重要资源。但是,数据还需要转化、处理、分析和呈现,才能更好地为人们所用。在这个过程中,可视化是一个重要的环节,它可以让数据呈现出来的更加清晰、直观、有效。

    2024-08-20
    20
  • sql笔记[通俗易懂]

    sql笔记[通俗易懂]–创建用户① –GRANT(授权)REVOKE(回收权限)–创建用户create user 用户名 identified by 密码 GRANT CONNECT,RESOURCE TO 用户;G

    2023-05-29
    140
  • Python Regex Sub – 替换字符串中的特定部分

    Python Regex Sub – 替换字符串中的特定部分正则表达式是一种用来描述、匹配一系列字符模式的方法,其主要应用于文本处理和搜索。Python内置了re模块,它提供了对正则表达式的支持。通过使用re模块,我们可以使用正则表达式来搜索、匹配和替换字符串中的特定部分。

    2024-03-23
    79
  • 在plsql字符串拼接,批量生成trigger

    在plsql字符串拼接,批量生成trigger本次需要批量编写监控全数据库表的trigger,记录下变更的字段名和变更的值、表名、相对应的主键和做的操作(增删改)。在自动生成脚本sql后,执行execute immediate sql_str –

    2023-04-26
    147
  • 最全Redis基础知识「建议收藏」

    最全Redis基础知识「建议收藏」NoSQL概述 什么是NoSQL NoSQL不仅仅是SQL,它是Not Only SQL 的缩写,也是众多非关系型数据库的统称NoSQL和关系型数据库一样,也是用来存储数据的仓库。 为什么需要NoSQ

    2023-02-06
    156
  • 使用PyCharm进行Python开发

    使用PyCharm进行Python开发Python是一种高级编程语言,广泛应用于各种领域,如Web开发、数据科学、人工智能等。而PyCharm是一款功能强大的Python集成开发环境(IDE),具有强大的代码编辑、调试、测试和版本控制等功能,是Python程序员必不可少的工具之一。

    2024-04-25
    52

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注