【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、架构图

在这里插入图片描述
在这里插入图片描述

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 按配置的路由策略分发告警。

在这里插入图片描述

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、局限及解决方案

在这里插入图片描述

三、安装

1、解压

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

tar xf prometheus-2.5.0.linuxamd64.
Prometheus是一个开源的监控系统,用于收集和存储时间序列数据。要安装和部署Prometheus,可以按照以下步骤进行操作: 1. 首先,确保你的系统满足Prometheus的最低要求。Prometheus可以在各种操作系统上运行,包括Linux、Windows和Mac。你需要有一个可用的操作系统,并且具备足够的计算资源。 2. 下载Prometheus的二进制文件。你可以从Prometheus的官方网站(https://prometheus.io)上下载最新版本的二进制文件,选择适合你操作系统的版本。 3. 解压下载的二进制文件。使用合适的解压工具,将下载的文件解压到你选择的目录中。 4. 配置Prometheus。在解压后的目录中,你将找到一个名为`prometheus.yml`的配置文件。你可以使用任何文本编辑器打开此文件,并根据你的需求进行配置。在配置文件中,你可以定义要监控的目标以及其他相关设置。 5. 启动Prometheus。打开终端或命令提示符,进入到Prometheus的解压目录,并执行以下命令启动Prometheus: ``` ./prometheus ``` 如果一切顺利,你应该能够看到Prometheus成功启动,并开始收集和存储时间序列数据。 6. 访问Prometheus的Web界面。在浏览器中输入`http://localhost:9090`,你将能够访问Prometheus的Web界面,从中可以执行查询、查看监控指标和配置警报等操作。 这些是安装和部署Prometheus的基本步骤。请注意,根据你的需求和环境,可能还需要进行其他配置和调整。你可以参考Prometheus的官方文档以获得更多详细信息和指南。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ewenge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值