云原生监控系统 Prometheus大总结 20250909

本章内容如下:
Prometheus 介绍
Prometheus 部署和配置
Node Exporter 采集数据
Pushgateway 采集数据
PromQL 查询语言
Grafana 图形化展示
Prometheus 标签管理
Prometheus 告警机制
Prometheus 服务发现
各种 Exporter 高级功能
Prometheus 实现容器监控
Prometheus 联邦 Federation
Prometheus 远程存储 VictoriaMetrics
Kubernetes 集成 Prometheus

1.Prometheus****介绍

官方文档:
https://prometheus.io/docs/
https: //prometheus.io/docs/introduction/overview/
Prometheus 的主要模块包括:
●prometheus 时序数据存储、监控指标管理
●可视化
Prometheus web UI : 集群状态管理、 promQL
Grafana: 非常全面的可视化套件
●数据采集
Exporter: 为当前的客户端暴露出符合 Prometheus 规格的数据指标 ,Exporter 以守护进程的模式运行井开始采集数据,Exporter 本身也是一个 http_server 可以对 http 请求作出响应返回数据 (K/V 形式的metrics)
Pushgateway : 拉模式下数据的采集工具
●监控目标 服务发现 : 文件方式、 dns 方式、 console 方式、 k8s 方式
●告警: alertmanager
Prometheus 由几个主要的软件组件组成,其职责概述如下:

工作流程
●Prometheus server 定期从配置好的 jobs 或者 exporters 中拉取 Pull metrics ,或者接收来自
Pushgateway 发过来的 metrics ,或者从其他的 Prometheus server 中拉 metrics 。
●Prometheus server 在本地存储收集到的 metrics ,并运行已定义好的 alert rules ,记录新的时间 序列或者向 Alertmanager 推送警报,实现一定程度上的完全冗余功能。
●Alertmanager 根据配置文件,对接收到的警报进行去重分组,根据路由配置,向对应主机发出 告警。
●集成Grafana 或其他 API 作为图形界面,用于可视化收集的数据。

Prometheus 只负责时序型指标数据的采集及存储

2.Prometheus****部署和配置

①ubuntu包安装

apt install prometheus****其他安装略

访问如下链接可以看到如下显示

http://<prometheus 服务器 IP>:9090

浏览器访问prometheus的指标 :

http://<prometheus 服务器 IP>:9090/metrics

Dashboard****菜单说明

我们选择一个监控项"scrape_duration_seconds",然后点击"Execute",查看效果

查看所有的监控项: 10.0.0.203:9090/api/v1/label/name/values

API访问
https://prometheus.io/docs/prometheus/latest/management_api/
https://prometheus.io/docs/prometheus/latest/querying/api/

注意: {ip:port} 是 Prometheus 所在的 IP 和端口
●健康检查 GET {ip:port}/-/healthy 该端点始终返回200 ,应用于检查 Prometheus 的运行状况。
●准备检查 GET {ip:port}/-/ready 当Prometheus 准备服务流量(即响应查询)时,此端点返回 200 。
●加载配置 PUT {ip:port}/-/reload POST {ip:port}/-/reload
●关闭服务 PUT {ip:port}/-/quit POST {ip:port}/-/quit

root@ubuntu2204 \~\] #cat /lib/systemd/system/prometheus.service ...... \[Service

ExecStart = /usr/local/prometheus/bin/prometheus --
config .file = /usr/local/prometheus/conf/prometheus.yml --web .enable-lifecycle
......

root@ubuntu2204 \~\] #curl http://prometheus.wang.org:9090/-/healthy \[root@ubuntu2204 \~\] #curl http://prometheus.wang.org:9090/-/ready ![](https://i-blog.csdnimg.cn/direct/e379916849ef4b5c9fe29bb8950e4318.png) **优化配置** Prometheus 命令支持选项如下: https://prometheus.io/docs/prometheus/latest/command-line/prometheus/ ### **②Node Exporter****安装** **其他安装方式略** 安装 Node Exporter 用于收集各 node 主机节点上的监控指标数据,监听端口为 9100 **github** **链接** https://github.com/prometheus/node_exporter **官方下载** https://prometheus.io/download/ **在需要监控的所有节点主机上进行安装** [root@node1 ~]#wget -P /usr/local/ https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter- 1.2.2.linux-amd64.tar.gz [root@node1 ~]#cd /usr/local [root@node1 local]#tar xvf node_exporter-1.2.2.linux-amd64.tar.gz [root@node1 local]#ln -s node_exporter-1.2.2.linux-amd64 node_exporter [root@node1 local]#cd node_exporter [root@node1 node_exporter]#mkdir bin [root@node1 node_exporter]#mv node_exporter bin/ [root@node1 ~]#useradd -r -s /sbin/nologin prometheus [root@node1 ~]#chown -R prometheus:prometheus /usr/local/node_exporter/ **Prometheus** **采集** **Node Exporter** **数据** **修改** **Prometheus** **配置文件** ![](https://i-blog.csdnimg.cn/direct/c81e7bb488284a2583e41fc1012d7858.png) 关键点儿提炼: - job_name: 'node_exporter' #添加以下行,指定监控的node exporter节点 metrics_path: /metrics #指定路径,此为默认值,可省略 scheme: http #指定协议,此为默认值,可省略 static_configs: - targets: ['10.0.0.104:9100','10.0.0.105:9100','10.0.0.106:9100'] 个人实际实践,只需要在原有的node上添加即可 ![](https://i-blog.csdnimg.cn/direct/40f7f5ae8b034f1a93f1927c55e788ee.png) **Prometheus****验证****Node 节点状态数据**node_cpu_seconds_total **监控Grafana** ![](https://i-blog.csdnimg.cn/direct/d3801892bbe24acbbe180e2b6a008ef8.png) ### **③Pushgateway****采集自定义数据** ![](https://i-blog.csdnimg.cn/direct/b4f55b8f762543a98d6fcaec64d1ca4f.png) 官方连接: https://prometheus.io/docs/practices/pushing/ Pushgateway 是一项中介或代理服务,允许您从无法抓取的作业中推送指标,虽然有很多的Exporter 提供了丰富的数据 , 但生产环境中仍需要采集用户自定义的数据 , 可以利用 Pushgateway **实现** Pushgateway 是另⼀种采⽤客户端主动推送数据的方式 , 也可以获取监控数据的 prometheus 插件 Pushgateway 与 exporter 不同 , Exporter 是被动采集数据 Pushgateway 可以单独运⾏在任何节点上,并不⼀定要在被监控客户端安装,用户⾃定义的脚本或程序将需要监控的数据推送给 Pushgateway , 然后 prometheus server 再向pushgateway拉取数据 **Pushgateway 缺点** ![](https://i-blog.csdnimg.cn/direct/17fbeaef53174e54bd3c4fbe4e81d420.png)

相关推荐
橙*^O^*安6 小时前
Kubernetes集群部署Jenkins指南
云原生·容器·kubernetes·jenkins·devops
阿里云云原生6 小时前
VibeCoding On Function AI Deep Dive:用 AI 应用生产 AI 应用
云原生
阿里云云原生8 小时前
FunctionAI 图像生成:简化从灵感到 API 调用的每一步
云原生
喂完待续8 小时前
【序列晋升】31 Spring Cloud App Broker 微服务时代的云服务代理框架
spring·spring cloud·微服务·云原生·架构·big data·序列晋升
_何同学11 小时前
Spring Boot 监控实战:集成 Prometheus 与 Grafana,打造全方位监控体系
spring boot·grafana·prometheus
Lin_Aries_042113 小时前
使用阿里云容器镜像服务 ACR
linux·阿里云·docker·云原生·centos·云计算
Twilight-pending13 小时前
计算机系统性能、架构设计、调度策略论文分类体系参考
人工智能·云原生·分类·数据挖掘
zzz.1014 小时前
【Kubernetes知识点】CRD客户资源定义及Gateway
云原生·容器·kubernetes
AKAMAI1 天前
Queue-it 为数十亿用户增强在线体验
人工智能·云原生·云计算