小哥之哥 小哥之哥
首页
    • Prometheus
    • Kubertenes
    • Docker
    • MySQL
  • Go
  • Python
  • Vue
  • Jenkins
  • ELK
  • LDAP
  • 随笔
  • 最佳实践
  • 博客搭建
  • 问题杂谈
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

小哥之哥

运维扫地僧
首页
    • Prometheus
    • Kubertenes
    • Docker
    • MySQL
  • Go
  • Python
  • Vue
  • Jenkins
  • ELK
  • LDAP
  • 随笔
  • 最佳实践
  • 博客搭建
  • 问题杂谈
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Kubertenes

  • Prometheus

    • Prometheus介绍
      • Prometheus安装部署
      • PromQL学习
      • kube-prometheus 实战指南
      • Prometheus高可用-Thanos
      • Prometheus监控JVM实战
      • Alertmanager报警历史持久化
      • Kubernetes监控的自定义部署实践【未完整版】
      • Prometheus远程存储之VictoriaMetrics
      • Prometheus数据迁移至VMstorage
    • Docker

    • 数据库

    • 运维利器

    • 运维
    • Prometheus
    tchua
    2023-02-09
    目录

    Prometheus介绍

    # 什么是Prometheus


    THEOREM

    Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包。 自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。 现在,它是一个独立的开源项目,并且独立于任何公司进行维护。 为了强调这一点并阐明项目的治理结构,Prometheus于2016年加入了Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。

    来自Prometheus官方 (opens new window)

    # 什么是指标


    指标其实就是一个度量值,这个值因应用而异,可以是CPU、内存、也可以是是web服务中的请求数。这些值都会随着时间的变化而有所不同,下面是官方给出Prometheus生态架构图:

    image-20230208180841671

    • Pushgateway: 类似代理模式,监控客户端把数据上传到Pushgateway应用,再由 Prometheus server 到 Pushgateway 集中 Pull 数据。
    • Targets Discover:服务发现。
    • PromQL: 指标查询语言,类似于MySQL的sql语句。
    • Alertmanager: 根据配置规则以及指标分析,提供告警服务。
    • Web UI :Prometheus提供的web界面,方便指标的查询。

    笔记

    上图我们一分为三进行分析

    • 左边可以理解为Prometheus的数据采集模块,可以看到Prometheus主要是通过pull模式进行数据的指标的采集,这种方式指对的是被监控端主动暴露自身监控数据接口,或者使用特定能采集应用数据的 exporter进行监控指标数据的保存,当然对于如何发现监控端,Prometheus提供了比较丰富的采集目标发现机制,你可以手动配置,也可以使用基于配置文件的发现机制,或者基于 Kubernetes 的发现机制等等。

    • 中间部分是Prometheus数据处理,Retrieval 负责定时去暴露监控指标的目标上抓取数据,Storage 负责将数据写入磁盘,promQL 暴露查询数据的 http server 能力。同时他也会根据告警规则,一旦达到阈值,那么就会向 Alertmanager 推送告警信息,然后由 Alertmanager 对接到外部平台,将应用异常信息推送给用户。

    • 右边部分是Prometheus提供的数据查询,可以通过 Prometheus UI 访问 Prometheus server 能力。或者结合 Grafana,将 Prometheus 作为数据源接入,在 Grafana 自定义模版,以图表的方式展示应用指标的状态变化,以便于更加直观地观测应用的变化。

    # 什么是时间序列数据


    时间序列数据(TimeSeries Data):按照时间顺序记录系统、设备状态变化的数据被称为时序数据。应用场景很多,如:无人驾驶车辆中要记录信息、传统证券行业实时交易数据等等。

    # 为什么要使用Prometheus


    Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

    编辑 (opens new window)
    上次更新: 2023/03/13, 16:47:57
    cert-manager自动签发Lets Encrypt
    Prometheus安装部署

    ← cert-manager自动签发Lets Encrypt Prometheus安装部署→

    最近更新
    01
    cert-manager自动签发Lets Encrypt
    09-05
    02
    Docker构建多架构镜像
    08-02
    03
    Prometheus数据迁移至VMstorage
    08-01
    更多文章>
    Theme by Vdoing | Copyright © 2023-2024 |豫ICP备2021026650号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式