https://github.com/ospoon/elk-log-gateway
ELK-Log-Gateway 是一个基于 FastAPI 和 ELK Stack 构建的日志管理原型演示系统,在提供统一的日志收集、查询和管理功能之外,支持通过API的方式直接访问 Elasticsearch 获取日志便于编程处理。
https://github.com/ospoon/elk-log-gateway
Last synced: 5 months ago
JSON representation
ELK-Log-Gateway 是一个基于 FastAPI 和 ELK Stack 构建的日志管理原型演示系统,在提供统一的日志收集、查询和管理功能之外,支持通过API的方式直接访问 Elasticsearch 获取日志便于编程处理。
- Host: GitHub
- URL: https://github.com/ospoon/elk-log-gateway
- Owner: OSpoon
- Created: 2025-04-11T15:44:36.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-12T15:45:31.000Z (about 1 year ago)
- Last Synced: 2025-04-30T17:55:13.609Z (about 1 year ago)
- Language: HTML
- Homepage:
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ELK-Log-Gateway
ELK-Log-Gateway 是一个基于 FastAPI 和 ELK Stack 构建的日志管理原型演示系统,在提供统一的日志收集、查询和管理功能之外,支持通过API的方式直接访问 Elasticsearch 获取日志便于编程处理。
## 功能特点
- 支持多种日志格式和索引模式
- 提供统一的 REST API 接口
- 实时日志收集和查询
- 支持多维度日志搜索
- 自动生成测试日志数据
## 技术栈
- FastAPI
- Elasticsearch
- Logstash
- Kibana
- Docker & Docker Compose
## 快速开始
### 环境要求
- Docker
- Docker Compose
- Python 3.10+
### 安装部署
1. 克隆项目
```bash
git clone https://github.com/OSpoon/ELK-Log-Gateway.git
cd elk-log-gateway
```
2. 启动服务
```bash
# 首次部署或代码更新后使用
docker-compose up --build
# 日常启动服务使用
docker-compose up -d
```
3. 访问服务
- API 服务:http://localhost:8000
- Kibana:http://localhost:5601
## API 接口
### 日志查询
```bash
GET /logs
参数:
- start_time: 开始时间(ISO格式,例如:2023-12-20T14:30:00.000Z)
- end_time: 结束时间(ISO格式,例如:2023-12-20T14:30:00.000Z)
- level: 日志级别
- content: 搜索内容
- index_pattern: 索引模式(FASTAPI/APPLICATION/SYSTEM)
- page: 页码
- size: 每页大小
```
## 索引模式
支持以下索引模式:
- FASTAPI: API服务日志
- APPLICATION: 应用服务日志
- SYSTEM: 系统监控日志
## 项目结构
```
.
├── src/
│ ├── api/ # API 路由
│ ├── core/ # 核心配置
│ ├── models/ # 数据模型
│ └── services/ # 业务逻辑
├── logstash/ # Logstash 配置
├── logs/ # 日志文件
├── docker-compose.yml
└── Dockerfile
```
## 开发说明
项目使用 FastAPI 框架开发,采用模块化设计,便于扩展和维护。主要模块:
- 日志收集:通过 Logstash 收集应用日志
- 日志存储:使用 Elasticsearch 存储和索引日志
- 日志查询:提供统一的 REST API 接口
- 可视化:通过 Kibana 进行日志可视化
## License
MIT