Prometheus普罗米修斯

Prometheus是一个开源的监控工具,用于收集和分析各类系统的性能数据,包括Kubernetes、网络、应用程序、数据库和服务器。它基于时序数据库设计,通过Exporter抓取指标,Alertmanager管理告警,适用于多种监控场景。
  • 什么是Prometheus

    • 官网:Overview | Prometheus

    • 是一个开源的系统监控和警报工具,多数Prometheus组件是Go语言写的

    • 为用户提供可视化仪表板、警报、告警等功能,以帮助用户快速定位和解决问题

    • 现在已经成为一个独立于企业级的开源项目和一个独立的基金会(Cloud Native Computing Foundation)的一部分

    • 用途

      • Kubernetes集群监控

        • 使用Prometheus可以收集和监控Kubernetes集群的指标数据,例如CPU、内存、网络等。

        • 使用Prometheus Operator部署Prometheus,然后通过Grafana可视化工具展示监控指标的仪表板

      • 网络监控

        • Prometheus可以监控网络的状态和性能,例如TCP连接数、网络延迟和带宽利用率等

        • 使用Prometheus的Blackbox Exporter插件来执行网络探测,检查网络服务是否可用

      • 应用程序性能监控

        • 通过Prometheus的客户端库可以在应用程序中嵌入指标收集代码,并收集应用程序的性能指标数据

        • 例如请求数、响应时间、错误率等,帮助开发人员监控应用程序的性能,并进行调试和优化

      • 数据库监控

        • 可以使用Prometheus的Exporter插件监控各种类型的数据库,例如MySQL、PostgreSQL、Redis和MongoDB

        • Exporter可以将数据库的指标数据转换为Prometheus可以处理的格式,并将其发送到Prometheus进行监控和警报

      • 服务器监控

        • 使用Prometheus可以监控服务器的CPU、内存、磁盘和网络使用情况等指标,服务器上运行的各种服务的状态和性能

        • 能够实时地存储和查询系统和服务的各种指标,如性能、CPU利用率、内存使用和请求计数等。

  • 架构图

 

  • 什么是时序数据库

    • 是一种特定类型的数据库,随时间流逝而不断产生的数据,主要用来存储时序数据

    • 常见的有InfluxDB、Kdb+、Prometheus、Graphite、TSDB

    • 主要分为时间戳(timestamp)、标签(tag)、存档(filed)三大部分,按照时间顺序记录数据

  • 核心组成部分

    • Prometheus server

      • 核心组件,负责抓取、存储和查询指标数据,提供API以供访问

      • Prometheus Server本身就是一个时序数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中

      • 内置的UI界面,通过这个UI可以直接通过PromQL实现数据的查询以及可视化

    • Exporter

      • Prometheus插件或独立组件,负责抓取指定服务或系统的性能指标数据

      • Prometheus原理是通过 HTTP 协议周期性抓取被监控组件的状态,输出这些被监控的组件的 Http 接口为 Exporter

      • Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,将其公开为HTTP端点或指定的格式

      • Prometheus server通过轮询或指定的抓取器从Exporter提供的Endpoint端点中提取数据

    • Alertmanager

      • 在Prometheus Server中支持基于PromQL创建告警规则,如果满足PromQL定义的规则,就会产生一条告警

      • Prometheus告警管理器组件,负责管理告警规则、通知和报警策略的设置,提供第一类和第二类警报的分类管理服务

    • PushGateway

      • Prometheus数据采集基于Pull模型进行设计,在网络环境必须要让Prometheus Server能够直接与Exporter进行通信

      • 当这种网络需求无法直接满足时,就可以利用PushGateway来进行中转

      • 通过PushGateway将内部网络的监控数据主动Push到Gateway当中

      • Prometheus Server则可以采用同样Pull的方式从PushGateway中获取到监控数据

    • Service Discovery

      • 服务发现功能,动态发现待监控的Target,完成监控配置的重要组件

  • 总结

    • Prometheus服务直接通过目标拉取数据,或者间接地通过中间网关拉取数据

    • 并通过一定规则进行清理和整理数据,把得到的结果存储到新的时间序列中

    • 利用PromQL和其他API可视化地展示收集的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值