paopao/docs/guides/Spring- Boot- Actuator-Prometheus-Grafana.md
2024-06-06 11:09:47 +08:00

150 lines
5.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 第一部分:简述
### 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 应用:
应用运行后,可访问:
[actutor](http://localhost:8080/actuator)
[env](http://localhost:8080/actuator/env)
[prometheus](http://localhost:8080/actuator/prometheus)
#### 步骤 4配置Prometheus
- 安装 Prometheus 服务器。
- 编辑或创建Prometheus 的配置文件 prometheus.yml添加 Spring Boot 应用的监控目标:
```yaml
scrape_configs:
- job_name: 'springboot'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:8080']
```
- 运行 Prometheus 服务器。
访问prometheus: [localhost](http://localhost:9090)
#### 步骤 5配置Grafana
- 安装并运行Grafana 服务器。
- 在 Grafana 中添加 Prometheus 数据源:
[登录 Grafana](http://localhost:3000),初始账号密码 admin admin
进入“数据源”设置,点击“添加数据源”,选择 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 集成在一起,构建起一个完整的监控系统。这将帮助你实时监控应用程序的健康状况和性能指标,确保系统的稳定性和可靠性。