Administrator
Administrator
Published on 2025-03-11 / 95 Visits
0
0

一、运维监控-部署教程-《Prometheus》

1、Prometheus是什么?

Prometheus是一款开源的监控与告警系统,由SoundCloud团队于2012年开发,后成为云原生计算基金会(CNCF)的顶级项目。它专为容器化、微服务架构和动态云环境设计,支持多维数据模型、灵活的查询语言及高效的时间序列数据库。

​核心功能

  1. ​数据采集:通过拉取(Pull)模式从目标系统获取指标,支持HTTP/HTTPS协议。

  2. ​数据存储:内置时间序列数据库(TSDB),高效存储和压缩监控数据,支持本地存储和远程扩展(如Thanos)。

  3. ​查询与分析:提供强大的查询语言PromQL,支持多维度过滤、聚合和预测分析。

  4. ​告警管理:通过Alertmanager实现告警的分组、去重和路由,支持邮件、Webhook等多种通知方式。

  5. ​可视化:与Grafana深度集成,支持创建动态仪表盘。

2、Prometheus的核心架构

2.1、 ​主要组件

  • ​Prometheus Server:负责数据抓取、存储和查询。

  • ​Exporters:将第三方系统(如MySQL、Node.js)的指标转换为Prometheus格式(如Node Exporter采集主机指标)。

  • ​Pushgateway:临时任务或批处理作业通过推送(Push)模式上报数据的中转站。

  • ​Alertmanager:处理告警规则触发的事件,实现告警通知的智能管理。

  • ​Service Discovery:支持Kubernetes、Consul等动态服务发现机制,自动识别监控目标。

2.2.、数据模型

  • ​指标(Metric)​:由名称(如http_requests_total)和标签(Labels)组成,支持多维数据分析。

  • ​数据类型:包括计数器(Counter)、测量仪(Gauge)、直方图(Histogram)和摘要(Summary)

3、Prometheus的部署步骤

​3.1、环境介绍

序号

项目

版本

备注

下载地址

1

CentOS

7.9.2009

操作系统

2

Prometheus

3.2.1

监控平台

下载

3

Grafana

10.1.2

图形化界面

下载

4

Node_exporter

Linux系统采集模块

5

AlertManager

告警模块

6

consul_exporter

自动服务发现模块

3.2、网络策略

服务

端口

备注

Prometheus

9090

监控平台

node_exporter

9100

主机数据采集

Grafana

3000

Grafana图形界面

3.2.1防火墙设置

# 查看防火墙状态
systemctl status firewalld
# 启动防火墙
systemctl start firewalld
# 关闭防火墙
systemctl stop firewalld
# 重启防火墙
systemctl restart firewalld
# 设置开机启动
systemctl enable firewalld
# 设置开机不启动
systemctl disable firewalld

3.2.2端口放行

firewall-cmd --zone=public --add-port=9090/tcp --permanent
# 说明
# -zone # 作用域
# -add-port=9090/tcp # 添加端口,格式为:端口/通讯协议
# -permanent 永久生效,没有此参数重启后失效

# 生效配置
firewall-cmd --reload

# 查看放行生效的端口
firewall-cmd --list-ports

放行端口关闭(此处只需了解即可)

firewall-cmd --zone=public --remove-port=9090/tcp --permanent

3.3、部署

3.3.1进入程序所在目录并解压软件包

cd /data

tar -xvf prometheus-3.2.1.linux-amd64.tar.gz

解压后:

这个目录还得有执行权限

sudo chmod +x /data/prometheus-3.2.1.linux-amd64

3.3.2创建 Prometheus 用户

为了安全起见,创建一个新的用户来运行 Prometheus。(一般都得这么做)

sudo useradd --no-create-home --shell /bin/false prometheus

为 Prometheus 用户设置目录权限。

sudo chown -R prometheus:prometheus /data/prometheus-3.2.1.linux-amd64

3.3.3创建配置和数据目录

为 Prometheus 创建配置和数据目录。

mkdir -p /data/prometheus/data

3.3.4创建 Systemd 服务文件

将 Prometheus 配置为一个系统服务,以便它能够在系统启动时自动启动。首先创建一个新的服务文件:

sudo vi /etc/systemd/system/prometheus.service

按键盘【i】键进入编辑模式,在文件中添加以下内容:

(记得修改ExecStart中的路径为实际路径)

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=root
ExecStart=/data/prometheus-3.2.1.linux-amd64 \
  --config.file=/data/prometheus-3.2.1.linux-amd64/prometheus.yml \
  --storage.tsdb.path=/data/prometheus/data

[Install]
WantedBy=default.target

3.3.5重新加载 systemd 守护进程并启动 Prometheus 服务

# 重新加载 systemd 服务
sudo systemctl daemon-reload

# 启动 Prometheus 服务。
sudo systemctl start prometheus

# 启用 Prometheus 服务开机自启
sudo systemctl enable prometheus

3.3.6验证 Prometheus 是否运行

检查 Prometheus 服务状态,确保其运行正常。

sudo systemctl status prometheus

3.3.7访问 Prometheus Web 界面

默认情况下,Prometheus 会在端口 9090 上运行。打开浏览器并访问以下 URL:

http://你的IP:9090

3.4、菜单相关功能介绍

以下是每个功能页面的详细介绍:

Status (状态) 页面:

  • Target health: 这个页面显示了 Prometheus 目前监控的所有目标(targets)。每个目标的状态(如 UP 或 DOWN)、标签、最后一次抓取时间、抓取持续时间等都会列出。

  • Rules health:列出所有已定义的记录规则和警报规则。用户可以看到每个规则的名称、类型、状态、评估时间间隔和最后一次评估的时间。

  • Service Discovery: 显示 Prometheus 从服务发现中获得的所有端点信息。

  • Runtime & Build Information: 提供 Prometheus 运行时和构建信息,如版本、编译时间、Go 版本等。

  • Configuration: 显示当前加载的 Prometheus 配置文件内容。

Alerts (警报) 页面:

显示当前触发的所有告警规则及其状态。你可以看到每个告警的名称、状态(firing 或 pending)、描述以及触发时间。

Query Graph (图形) 页面:允许用户查询和可视化指标数据。用户可以输入 PromQL(Prometheus 查询语言)表达式,选择时间范围,并生成时间序列图表。这是监控和分析数据的主要工具。

​4、Prometheus的应用场景

  1. ​容器化平台监控:如Kubernetes集群的Pod、节点状态监控。

  2. ​微服务性能分析:跟踪服务响应时间、错误率等业务指标。

  3. ​基础设施监控:包括服务器资源(CPU、内存)、数据库(MySQL、Redis)及网络设备。

  4. ​自定义业务监控:通过Client SDK在应用中嵌入指标采集。

​5、优势与挑战

​优势

  • ​高效灵活:单实例支持百万级指标,横向扩展通过联邦集群实现。

  • ​社区生态丰富:提供大量Exporter和集成工具(如Grafana、Alertmanager)。

  • ​云原生友好:天然适配Kubernetes,支持动态服务发现。

​挑战

  • ​数据持久化:长期存储需依赖远程TSDB(如Thanos)。

  • ​学习曲线:PromQL语法和告警规则配置需一定学习成本。

​6、总结

Prometheus凭借其灵活的数据模型、强大的查询能力和云原生适配性,已成为现代监控领域的标杆工具。无论是初创企业还是大规模分布式系统,均可通过合理部署和配置,构建高效、可靠的监控体系。


Comment