Prometheus+Grafana 监控搭建

news/2025/1/22 11:45:04/文章来源:https://www.cnblogs.com/chenglistart/p/18685460

Prometheus+Grafana 监控搭建

Prometheus 是使用 Golang 开发的,安装和运行都非常简单,只需直接运行可执行文件即可。个人认为,只要理解了 Prometheus 的架构图,整体概念就会变得非常清晰。

Prometheus 做的挺成熟,使用非常简单,主要是想自己记录一下,方便后续记忆。

1、Prometheus 架构图

image

  • Prometheus server : Prometheus 的核心组件,负责收集监控数据并提供 HTTP 接口用于查询和访问这些数据。
  • Alertmanager : 告警模块。
  • Pushgateway : Prometheus 采用 PULL 模式收集数据,这种模式需要在配置文件中预先配置数据源的地址信息。对于某些任务,其地址可能无法提前预知,需要任务主动上报数据。Pushgateway 作为一个中转组件,可以接收这些任务上报的数据,只需在 Prometheus 的配置中添加对 Pushgateway 的配置即可完成数据的抓取。
  • Prometheus web UI : 使用 PromQL 查询提供可视化服务。

2、安装配置 Prometheus

2.1、安装

下载地址 https://prometheus.io/download/

wget --no-check-certificate https://github.com/prometheus/prometheus/releases/download/v3.1.0/prometheus-3.1.0.linux-amd64.tar.gz

解压

tar -zxvf prometheus-3.1.0.linux-amd64.tar.gz

运行

./prometheus-3.1.0.linux-amd64/prometheus

2.2、配置

配置文件在解压目录中:prometheus.yml。内容如下:

# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label job=<job_name> to any timeseries scraped from this config.- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]

这里先不做任何配置,默认 Prometheus 对自己的数据进行了采集,后续涉及到再进行配置。

2、安装 Grafana

基本上也不用说,下载下来运行就可以了。运行后端口为:3000,首次访问用户名密码均为:admin 。添加数据源为 Prometheus 输入地址信息保存即可。

3、监控 Spring Boot 应用

关于这一块文档说明:https://docs.spring.io/spring-boot/docs/2.7.18/reference/html/actuator.html

3.1、添加依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId><version>1.9.17</version>
</dependency>

3.2、配置暴露 endpoints

编辑 application.yml

management:endpoints:web:exposure:include: "prometheus"metrics:tags:application: ${spring.application.name}

3.3、对于某些重点接口单独监控

有一些重要交易接口想单独监控指标,那么可以使用 io.micrometer.core.annotation.Timed 注解进行修饰,例如:@Timed("order.create") 那么则会生成对应的指标信息,如下:

# HELP order_create_seconds Duration of HTTP server request handling
# TYPE order_create_seconds summary
order_create_seconds_count{application="learn-springboot",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/order/create",} 1.0
order_create_seconds_sum{application="learn-springboot",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/order/create",} 0.0320229
# HELP order_create_seconds_max Duration of HTTP server request handling
# TYPE order_create_seconds_max gauge
order_create_seconds_max{application="learn-springboot",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/order/create",} 0.0320229

这样就可以在 Grafana 中配置指标进行检测了。例如:

每分钟QPS
rate(http_server_requests_seconds_count[1m])每分钟平均响应时长
rate(http_server_requests_seconds_sum[1m])/rate(http_server_requests_seconds_count[1m])

3.4、配置 Prometheus PULL 数据

编辑 prometheus.yml 配置文件,加入一下内容:

scrape_configs:- job_name: "learn-springboot"scrape_interval: 10smetrics_path: "/actuator/prometheus"static_configs:- targets: ["127.0.0.1:8081"]
  • scrape_interval 10s 表示 10s 秒拉取一次数据,如果不配置就会使用 global 中配置项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/873189.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【防火墙】防火墙监控没做好,断网2小时准备提桶跑路

防火墙告警:该业务CPU负荷过多(81>= 80) ,发现吞吐量超过设备性能阈值,导致网络特别卡,客户端体现就是偶尔网络中断。 之前有篇文章是针对华三的防火墙指标数据采集做了介绍说明,可点击这里查看 网络监控:华三防火墙监控 这篇文章了解,在防火墙可观测性领域目前案例分…

nRF21540—低功耗蓝牙,蓝牙mesh、Thread和Zigbee和2.4 GHz私有协议范围扩展射频前端模块

nRF21540是一款射频前端模块(FEM),可用于改善短距离无线产品的传输范围和连接鲁棒性。作为一款辅助性设备,nRF21540是一种“即插即用型”的无线传输范围扩展器,可与nRF52和nRF53系列的高级多协议无线SoC搭配使用,所需的外部器件数量非常少。 nRF21540的+13dB RX增益和低…

Transformer 学习与解读

LLM学习笔记 注意力机制 sequence to sequence (seq2seq)输入N个向量,输出任意可能数量的向量(由机器决定);如果输出N个向量的任务就叫做Sequence Labeling 李沐课程讲义:https://zh-v2.d2l.ai/chapter_attention-mechanisms/self-attention-and-positional-encoding.ht…

JDK中的可视化故障处理工具

JDK提供了几个功能集成度更高的可视化工具,我们可以使用这些可视化工具以更加便捷的方式进行进程故障诊断和调试工作。 今天就简单介绍一些JDK中的可视化故障处理工具。 JHSDB:基于服务性代理的调试工具 在说JHSDB之前,先来了解一下JCMD和JHSDB这两个集成式的多功能工具箱,…

ExKMP Z函数

讲解Z函数(ExKMP),附模板及例题更新日志 20250122:开工。思路 我们定义 \(z_i\) 表示从 \(i\) 开始的后缀与整个字符串的最长公共前缀长度。 考虑它的作用,假如我们要字符串匹配,将模式串接在前面并以特殊字符分隔,然后 \(O(n)\) 遍历原串,当 \(z_i=|T|\)(\(T\) 为模式…

【资产梳理】 攻击面资产梳理可视化工具

免责声明: ⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权!确定攻击面对于防御和进攻网络安全团队都至关重要。毫无疑问,可视化映射比简单的列表更有效。专家可以快速掌握…

OpenWRT24.10旁路由挂载USB移动硬盘,配置Samba4,作为NAS使用,解决中文不显示,乱码,解决断电重启后挂载失败问题

1. 为何选择OpenWRT 24.10,及如何配置旁路由,或者IPv6地址 看这篇:参OpenWRT24.10配置作为旁路由,并配置获取IPv4和IPv6地址 使用的OpenWRT固件是从这里下载的:https://openwrt.ai/ 2.挂载大容量USB移动硬盘 2.1 安装必备插件 kmod-fs-ntfs3 kmod-fs-ext4 kmod-fs-exfat…

如何迅速并识别处理MDL锁阻塞问题

TaurusDB推出MDL锁视图功能,帮助用户迅速识别并处理MDL锁阻塞问题,从而有效减少对业务的负面影响,提升数据库管理效率。摘要:TaurusDB推出MDL锁视图功能,帮助用户迅速识别并处理MDL锁阻塞问题,从而有效减少对业务的负面影响,提升数据库管理效率。本文分享自华为云社区《…

运维职业要求

摘抄知乎@Hi峰兄运维技能导图量化自己的技能深度 级别 水平 0   啥都不懂 1   理解基本概念,应用场景 2   基本的安装,配置,使用,常用配置修改,定位基本问题 3 根据实际情况定位、优化服务,了解服务核心模块运行机制,熟悉服务的各种使用方法 4 深…

关于RNN (循环神经网络)相邻采样为什么在每次迭代之前都需要将参数detach

转自:https://www.cnblogs.com/catnofishing/p/13287322.htmldetach到底有什么作用呢 首先要明确一个意识:pytorch是动态计算图,每次backward后,本次计算图自动销毁,但是计算图中的节点都还保留。 ​ 方向传播直到叶子节点为止,否者一直传播,直到找到叶子节点 我的答案是…

网站后台上传商品功能失效,如何排查和修复?

网站后台上传商品功能失效会影响正常的业务运营,因此需要尽快排查并修复。以下是详细的排查步骤和解决方案:确认前端页面加载情况: 首先,在浏览器中打开网站后台,检查页面是否完全加载,特别是上传商品相关的JavaScript和CSS文件。如果存在资源加载失败的情况,可能是由于…

云服务器频繁出现大流量提醒及访问异常

您好,当您频繁收到关于服务器流量过大的提醒,并且站点访问出现异常(如502 Bad Gateway或504 Gateway Timeout)时,这可能是由以下几个方面的原因造成的。下面我们将详细介绍这些问题及其对应的解决方案:流量来源分析:首先,确定流量来源是否合法。使用流量分析工具(如(网…