# SpringBoot + ELK Stack 日志管理系统
这是一个完整的SpringBoot与ELK Stack集成的演示项目,展示了如何构建企业级的日志管理解决方案。
## 项目特性
### 核心功能
- ✅ SpringBoot应用集成Logback JSON日志输出
- ✅ 分布式追踪ID自动生成和传递
- ✅ 业务日志AOP切面增强
- ✅ 敏感信息脱敏处理
- ✅ 完整的ELK Stack部署配置
- ✅ 订单业务场景演示
- ✅ 日志测试工具
### ELK组件
- **Elasticsearch 7.14.0**: 日志存储和搜索引擎
- **Logstash 7.14.0**: 日志处理管道
- **Kibana 7.14.0**: 数据可视化平台
- **Filebeat 7.14.0**: 轻量级日志收集器
## 快速开始
### 1. 启动ELK Stack
```bash
# 启动所有ELK组件
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
```
### 2. 启动SpringBoot应用
```bash
# 编译项目
mvn clean compile
# 启动应用
mvn spring-boot:run
```
### 3. 访问服务
#### 应用接口
- **应用首页**: http://localhost:8080
- **健康检查**: http://localhost:8080/actuator/health
- **订单API**: http://localhost:8080/api/orders
#### ELK服务
- **Kibana**: http://localhost:5601
- **Elasticsearch**: http://localhost:9200
- **Logstash**: http://localhost:5044
## API接口说明
### 订单管理接口
#### 1. 创建订单
```bash
POST /api/orders
Content-Type: application/json
{
"userId": "user123",
"items": [
{
"productId": "P001",
"productName": "iPhone 14",
"price": 999.99,
"quantity": 1
}
]
}
```
#### 2. 查询订单
```bash
GET /api/orders/{orderId}
```
#### 3. 订单支付
```bash
POST /api/orders/{orderId}/payment
Content-Type: application/json
{
"amount": 999.99,
"method": "ALIPAY",
"paymentAccount": "[email protected]"
}
```
### 演示接口
#### 1. ELK演示
```bash
GET /demo/elk
```
#### 2. 生成测试日志
```bash
POST /demo/generate-logs?count=100
```
#### 3. 模拟异常
```bash
GET /demo/error
```
#### 4. 模拟业务流程
```bash
GET /demo/business-flow
```
## 日志配置说明
### 日志级别
- **DEBUG**: 详细调试信息
- **INFO**: 一般信息记录
- **WARN**: 警告信息
- **ERROR**: 错误信息
### 日志字段
```json
{
"@timestamp": "2023-05-01T12:00:00.000Z",
"level": "INFO",
"logger": "com.example.OrderService",
"message": "订单创建成功",
"appname": "order-service",
"env": "dev",
"traceId": "abc123xyz456",
"userId": "user123",
"clientIp": "192.168.1.100",
"bizType": "OPERATION"
}
```
## Kibana使用指南
### 1. 创建索引模式
1. 访问 http://localhost:5601
2. 进入 "Management" > "Stack Management" > "Index Patterns"
3. 创建 "logs-*" 索引模式
4. 选择 "@timestamp" 作为时间字段
### 2. 查看日志
1. 进入 "Analytics" > "Discover"
2. 选择 "logs-*" 索引模式
3. 设置时间范围查看日志
### 3. 常用查询语法
```
# 查询错误日志
level: ERROR
# 查询特定用户的日志
userId: "user123"
# 查询特定追踪ID
traceId: "abc123xyz456"
# 组合查询
level: ERROR AND appname: "order-service"
# 时间范围查询
@timestamp: [now-1h TO now]
```
## 项目结构
```
├── src/main/java/com/example/
│ ├── Application.java # 主启动类
│ ├── aspect/
│ │ └── BizLogAspect.java # 业务日志切面
│ ├── config/
│ │ └── LogConfig.java # 日志配置
│ ├── controller/
│ │ ├── DemoController.java # 演示控制器
│ │ └── OrderController.java # 订单控制器
│ ├── dto/ # 数据传输对象
│ ├── entity/ # 实体类
│ ├── exception/ # 异常类
│ ├── repository/ # 数据访问层
│ ├── service/ # 业务服务层
│ └── util/
│ └── LogTestUtils.java # 日志测试工具
├── src/main/resources/
│ ├── application.yml # 应用配置
│ ├── logback-spring.xml # Logback配置
│ └── data.sql # 初始化数据
├── docker-compose.yml # ELK Stack部署配置
├── logstash/ # Logstash配置
├── filebeat/ # Filebeat配置
└── pom.xml # Maven配置
```
## 性能优化建议
### 1. Elasticsearch优化
- 合理设置分片数量
- 使用索引生命周期管理(ILM)
- 定期清理过期索引
### 2. Logstash优化
- 调整批处理大小
- 增加工作线程数
- 优化过滤器性能
### 3. 应用优化
- 合理设置日志级别
- 避免在循环中记录大量日志
- 使用异步日志输出
## 故障排查
### 常见问题
#### 1. 日志未出现在Kibana
- 检查Filebeat是否正常运行
- 验证Logstash配置是否正确
- 确认Elasticsearch索引是否创建
#### 2. 性能问题
- 监控各组件资源使用情况
- 检查日志处理延迟
- 优化查询语句
#### 3. 连接问题
- 检查网络连接
- 验证端口是否开放
- 查看服务日志
## 扩展功能
### 1. 告警配置
可以在Kibana中配置告警规则,当出现异常情况时自动通知。
### 2. 仪表盘
创建自定义仪表盘展示关键指标和趋势。
### 3. 安全加固
- 启用TLS加密
- 配置用户认证
- 设置访问控制
## 技术栈
- **后端**: Spring Boot 2.7.x, Spring Data JPA, H2 Database
- **日志**: Logback, Logstash Logback Encoder
- **ELK**: Elasticsearch 7.14.0, Logstash 7.14.0, Kibana 7.14.0, Filebeat 7.14.0
- **容器**: Docker, Docker Compose
- **构建**: Maven 3.6+
- **JDK**: Java 8+
## 许可证
MIT License
没有合适的资源?快使用搜索试试~ 我知道了~
SpringBoot整合ELK Stack日志全栈指南源码

共72个文件
class:24个
java:18个
xml:10个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 126 浏览量
2025-07-02
23:38:31
上传
评论
收藏 122KB ZIP 举报
温馨提示
项目描述 本项目是一个基于SpringBoot和ELK Stack的日志管理系统,旨在通过整合ELK Stack(Elasticsearch、Logstash、Kibana)来实现高效的日志收集、存储、查询和分析功能。项目采用了微服务架构,提供了订单管理、用户管理等多个核心功能模块,并支持分布式追踪、日志脱敏、性能优化等多种高级特性。 核心功能 订单管理:提供创建订单、查询订单、订单支付、取消订单等接口,支持分页查询和条件查询。 用户管理:支持用户注册、登录、查询用户信息等操作。 日志管理:通过Logstash和Filebeat收集日志,存储于Elasticsearch,并支持在Kibana上进行日志查询和分析。 分布式追踪:集成Spring Cloud Sleuth,支持分布式系统的请求链路追踪。 日志脱敏:提供LogMasker工具类,支持对敏感信息进行脱敏处理。 性能优化:提供多种性能优化建议,包括Elasticsearch优化、Logstash优化和应用优化。 ELK组件 Elasticsearch:作为日志存储和查询的核心组件,提供高效的日志检索和分析功能。 Logstash:负责日志的收集、转换和输出,支持从各种源收集日志,并将其转换为Elasticsearch可以处理的格式。 Kibana:提供用户友好的界面,用于可视化Elasticsearch中的日志数据,支持创建仪表盘、图表和报警。
资源推荐
资源详情
资源评论






















收起资源包目录




















































































































共 72 条
- 1
资源评论


Clf丶忆笙

- 粉丝: 4968
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 无线传感器网络与RFID技术复习题样本.doc
- 电子商务2019年工作计划.docx
- 园林景观工程项目管理工作总结.docx
- 完全掌握Illustrator-CC白金手册-第4章---使用钢笔工具和铅笔.pptx
- 某项目管理培训教材(PPT-68页).ppt
- 工程项目管理考试模拟试题.doc
- 网络操作系统(课后练习题).doc
- 预算法两个基本问题的再探讨.doc
- (源码)基于Python和GTK的科学计算平台.zip
- 基于AI文字识别图像训练模型集成的移动端自动化测试框架
- 软件大赛说明会1(暨软件大赛介绍201X).ppt
- 华科兄弟颜料谈网络营销.ppt
- 基于PLM平台打造高效研发项目管理体系.pptx
- 教师德育工作手册已上传网站.doc
- 立维腾智能家居解决方案.doc
- 2023年江苏计算机一级考试宇宙最强题库一.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
