From 39c27caf76f7bf91766104d29273e28980254886 Mon Sep 17 00:00:00 2001 From: many2many <6168830@qq.com> Date: Mon, 3 Jun 2024 13:19:45 +0800 Subject: [PATCH] add --- ...ring- Boot- Actuator-Prometheus-Grafana.md | 137 ++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 docs/guides/Spring- Boot- Actuator-Prometheus-Grafana.md diff --git a/docs/guides/Spring- Boot- Actuator-Prometheus-Grafana.md b/docs/guides/Spring- Boot- Actuator-Prometheus-Grafana.md new file mode 100644 index 0000000..e239ef7 --- /dev/null +++ b/docs/guides/Spring- Boot- Actuator-Prometheus-Grafana.md @@ -0,0 +1,137 @@ + +## 第一部分:简述 + +### Spring Boot Actuator + +Spring Boot Actuator 是 Spring Boot 提供的一组用于监控和管理 Spring Boot 应用程序的工具。它提供了一系列的端点(endpoints),这些端点暴露了应用程序的内部信息,如健康状态、度量指标、环境信息等。Actuator 可以帮助开发者和运维团队了解应用程序的运行状况,并在出现问题时快速响应。 + +Actuator 的主要功能包括: + +- **健康检查**:提供应用程序的健康状态,包括数据库连接、服务依赖等。 +- **度量指标**:收集和暴露应用程序的性能指标,如内存使用、请求计数等。 +- **审计**:记录应用程序的关键事件,用于安全和故障排查。 +- **环境信息**:提供当前应用程序配置的环境信息。 + +### Prometheus + +Prometheus 是一个强大的开源监控和警报工具套件,通常用于记录实时的时间序列数据。它通过拉取(pull)或推送(push)的方式从服务的监控端点收集指标数据,并存储在自身的时序数据库中。Prometheus 以其强大的数据模型、灵活的查询语言(PromQL)和丰富的可视化生态而闻名。 + +Prometheus 的关键特性包括: + +- **多维数据模型**:使用指标名和键值对的形式存储数据。 +- **灵活的查询语言**:PromQL 允许用户编写复杂的查询来分析监控数据。 +- **数据可视化**:通过 Grafana 或其他可视化工具展示监控数据。 +- **警报管理**:定义警报规则,当数据满足特定条件时触发通知。 + +### Grafana + +Grafana 是一个跨平台的开源数据可视化和监控解决方案,它提供了丰富的图表、面板和仪表板,允许用户创建动态的、可交互的仪表板来展示和分析数据。Grafana 支持多种数据源,包括 Prometheus、Elasticsearch、InfluxDB 等。 + +Grafana 的主要特点包括: + +- **多种数据源支持**:可以连接到 Prometheus、Elasticsearch 等多种数据库。 +- **动态仪表板**:用户可以创建自定义的仪表板,实时展示监控数据。 +- **警报**:集成了警报功能,可以基于数据源中的数据触发警报。 +- **社区和插件**:拥有活跃的社区和丰富的插件生态,支持各种扩展功能。 + +### 监控实战 + +将这三者结合起来,可以构建一个强大的监控系统: + +1. **Spring Boot Actuator** 提供应用程序的监控端点。 +2. **Prometheus** 定期从 Actuator 端点拉取度量指标数据。 +3. **Grafana** 作为数据可视化工具,连接到 Prometheus,展示和分析收集到的数据。 + +通过这种方式,开发人员和运维团队可以实时监控应用程序的性能和健康状况,快速定位问题,并确保系统的稳定性和可靠性。 + + +## 第二部分:操作步骤 + +### 环境准备 + +确保你已经安装了以下软件: +- Java Development Kit (JDK) +- Gradle +- Prometheus +- Grafana + +### 步骤 1:添加依赖 + +在项目的 `build.gradle` 文件中添加 Spring Boot Actuator 依赖: + +```gradle +dependencies { + // 其他依赖... + implementation 'org.springframework.boot:spring-boot-starter-actuator' + implementation 'io.micrometer:micrometer-registry-prometheus' +} +``` + +#### 步骤 2:配置Actuator + +在 `application.properties` 或 `application.yml` 文件中配置 Actuator 端点: + +```yaml +# application.yml +management: + endpoints: + web: + exposure: + include: '*' + metrics: + export: + prometheus: + enabled: true +``` + +#### 步骤 3:构建和运行Spring Boot应用 + +使用 Gradle 构建并运行你的 Spring Boot 应用: + + +#### 步骤 4:配置Prometheus + +- 安装 Prometheus 服务器。 +- 编辑或创建Prometheus 的配置文件 prometheus.yml,添加 Spring Boot 应用的监控目标: + +```yaml +scrape_configs: + - job_name: 'springboot' + metrics_path: '/actuator/prometheus' + static_configs: + - targets: ['localhost:8080'] +``` +- 运行 Prometheus 服务器。 + +#### 步骤 5:配置Grafana +- 安装并运行Grafana 服务器。 + +- 在 Grafana 中添加 Prometheus 数据源: + +登录 Grafana,进入“数据源”设置,点击“添加数据源”,选择 Prometheus。 + +输入 Prometheus 服务器的 URL(通常是 http://your-prometheus-server:9090)。 +- 创建 Dashboard: + +使用 Grafana 的界面创建新的 Dashboard。 + +通过查询 Prometheus 数据源,添加各种图表展示应用的性能指标,如响应时间、内存使用率、CPU负载等。 + +可以利用 Grafana 的模板变量、告警规则等功能,增强监控的互动性和自动化。 + +#### 步骤 6:测试监控系统 + +- 访问 Spring Boot 应用的 Actuator 端点,例如 `http://localhost:8080/actuator/prometheus`,确认 Prometheus 可以抓取数据。 +- 在 Grafana 中查看数据和图表,确认数据可视化正确。 + +#### 步骤 7:设置警报(可选) + +- 在 Prometheus 中设置警报规则。 +- 在 Grafana 中设置警报,基于面板数据触发通知。 + +#### 步骤 8:持续监控和优化 + +- 监控系统运行状况,确保没有性能瓶颈或异常。 +- 根据需要调整 Prometheus 和 Grafana 的配置,优化监控效果。 + +通过以上步骤,你可以成功地将 Spring Boot Actuator、Prometheus 和 Grafana 集成在一起,构建起一个完整的监控系统。这将帮助你实时监控应用程序的健康状况和性能指标,确保系统的稳定性和可靠性。 \ No newline at end of file