【Promethus(普罗米修斯)介绍安装及使用】

一、系统介绍

1、什么是Prometheus?

Prometheus:不仅是一款时间序列数据库,在整个生态上还是一套完整的监控系统。同时,还涉及许多以“explore”命名的客户端数据采集工具以及pushgateway网关。

官网:https://prometheus.io/ 文献:https://prometheus.io/docs/introduction/overview/

中文文档:https://www.prometheus.wang/quickstart/

2、监控的作用

① 实时收集数据:监控工具能够实时收集关于系统、应用、网络等各方面的数据,包括性能指标、错误日志、用户行为等。

② 及时发现问题:通过实时数据收集和分析,监控系统能够在问题发生时迅速识别异常。

③ 及时处理:一旦监控系统发现问题,它可以触发报警机制,通知管理员或相关团队。

④ 为优化提供依据:监控数据不仅可以帮助发现问题,还可以为系统优化提供依据。

3、特性

由 metric 名称和 K/V 键值对标识的时间序列的多维数据模型

简单的查询语言 PromQL(TSDB数据库的查询语言)

不依赖分布式存储,单个服务节点自动治理

通过 http 的 pull 模型获取数据的时序集合

支持通过网关 push 时序数据

通过服务发现或者静态配置发现目标

支持多种图表和仪表盘模式

export : 是用来为被监控服务器开放一个数据采集端口的软件,安装在被监控主机上后会启动一个服务,允许Prometheus server端通过该端口拉取数据。

Prometheus具有自动加载配置文件的功能,无需重启整个服务程序。

二、架构及组件介绍

1、架构图


【Promethus(普罗米修斯)介绍安装及使用】_第1张图片

2、组件及功能说明

a、Prometheus Server

功能:数据抓取、存储、处理查询和触发告警。

子模块:

Retrieval(抓取模块):根据配置定期从监控目标(如 Exporters、应用程序)拉取指标数据。

Time Series Database(TSDB):高效存储时间序列数据(默认本地存储,支持远程写入)。

HTTP Server:提供 API 和 Web UI 用于查询(PromQL)和管理。

b、监控目标(Targets)

Exporters:将第三方系统(如 Node、MySQL、Redis)的指标转换为 Prometheus 可读格式。

示例:Node Exporter(主机监控)、cAdvisor(容器监控)。

Instrumented Applications:应用程序直接通过客户端库(如 Go、Java、Python)暴露指标。

暴露端点:http://:/metrics。

Pushgateway:处理短暂任务(如批处理作业)的指标推送。

任务将指标推送到 Pushgateway,Prometheus 再从 Pushgateway 拉取。

c、Alertmanager

Alertmanager是独立于Prometheus的一个告警组件,需要单独安装部署。Prometheus可以将多个Alertmanager配置为一个集群,通过服务发现动态发现告警集群中节点的上下线从而避免单点问题,Alertmanager也支持集群内多个实例之间的通信。

功能:接收 Prometheus Server 生成的告警,进行去重、分组、静默,并通过渠道(邮件、Slack 等)通知。

流程:

Prometheus Server 根据告警规则(alerting_rules.yml)触发告警。

告警发送至 Alertmanager。

Alertmanager 按配置的路由策略分发告警。

【Promethus(普罗米修斯)介绍安装及使用】_第2张图片

d、服务发现(Service Discovery)

作用:动态发现监控目标(如 Kubernetes Pods、云服务实例)。

支持的发现机制:

Kubernetes:自动发现集群内的 Pods、Services、Endpoints。

Consul/Etcd:基于服务注册中心发现目标。

文件发现:Prometheus会周期性地从文件中读取最新的target信息。通过 JSON/YAML 文件静态配置目标列表。

Prometheus可以使用Kubernetes的API获取容器信息的变化(如容器的创建和删除)来动态更新监控对象。

e、数据存储与远程集成

本地存储:会直接保留到本地磁盘,性能上建议使用SSD且不要保存超过一个月的数据。

远程存储:通过 remote_write 和 remote_read 集成外部存储(如 Thanos、Cortex、InfluxDB),解决长期存储和高可用问题。

3、工作流程

a、配置:定义抓取目标(scrape_configs)和告警规则(alerting_rules.yml)。

b、服务发现:动态识别需要监控的端点(如 Kubernetes Pod IP)。

c、数据抓取:Prometheus Server 定期(如 15s)从目标拉取指标(HTTP 请求 /metrics)。

d、存储:抓取的指标存储于本地 TSDB,支持压缩和分块管理。

e、查询与告警:

用户通过 PromQL 查询数据(如 rate(http_requests_total[5m]))。

触发告警规则时,发送告警至 Alertmanager。

f、告警处理:Alertmanager 过滤、分组并通知用户。

g、可视化:通过 Grafana 或 Prometheus Web UI 展示监控仪表盘。

4、局限及解决方案

【Promethus(普罗米修斯)介绍安装及使用】_第3张图片

三、安装

1、解压

Prometheus 官方提供了预编译的二进制版本,不需要进行编译,解压后就可以使用。

tar xf prometheus-2.5.0.linuxamd64.

你可能感兴趣的:(【Promethus(普罗米修斯)介绍安装及使用】)