# data-collection **Repository Path**: happyabc/data-collection ## Basic Information - **Project Name**: data-collection - **Description**: 本项目是一个基于 Spring Boot 的固件日志信息采集服务,支持: - 接收并存储设备上传的日志数据 - 按设备分类管理日志文件 - 自动清理过期日志文件(可配置保留天数) - Docker 容器化部署 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-24 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据采集服务项目 ## 项目简介 本项目是一个基于 Spring Boot 的固件日志信息采集服务,支持: - 接收并存储设备上传的日志数据 - 按设备分类管理日志文件 - 自动清理过期日志文件(可配置保留天数) - Docker 容器化部署 ## 技术栈 - **JDK**: 17+ - **Spring Boot**: 2.7.5 - **Maven**: 3.6+ - **Docker**: 20.10+ ## 快速开始 ### 1. 环境要求 确保已安装以下软件: - JDK 17 或更高版本 - Maven 3.6 或更高版本 - Docker(可选,用于容器化部署) ### 2. 本地运行 #### 编译打包 ```bash #### 运行应用 mvn clean package ### 3. Docker 部署 java -jar target/data-collection-0.0.1-SNAPSHOT.jar #### 构建镜像 docker build -t data-collection:2026.06.24.001 . ``` ```bash docker run --name data-collection -itd \ -p 59001:59001 \ -v /your/log/path:/work/logs/devices \ -e FILE_STORAGE_PATH=/work/logs/devices \ -e DAYS_OLD=15 \ data-collection:2026.06.24.001 ``` > **参数说明:** > > - `-p 59001:59001`: 映射服务端口 > - `-v /your/log/path:/work/logs/devices`: 挂载日志存储目录(请根据实际路径修改) > - `-e FILE_STORAGE_PATH`: 配置文件存储路径(容器内路径) > - `-e DAYS_OLD`: 设置日志保留天数(默认15天) > > #### 查看日志 > > ```properties > # 实时查看容器日志 > docker logs -f data-collection > > # 查看最近100行日志 > docker logs --tail 100 data-collection #### 停止/重启容器 ```bash docker stop data-collection docker start data-collection docker restart data-collection ``` ## 配置说明 ### 环境变量 | 变量名 | 说明 | 默认值 | 示例 | |--------|------|--------|------| | `FILE_STORAGE_PATH` | 日志文件存储路径 | `/work/logs/devices` | `/data/logs` | | `DAYS_OLD` | 日志保留天数 | `15` | `30` | | `SERVER_PORT` | 服务端口 | `59001` | `8080` | ### 应用配置 主要配置文件位于 `src/main/resources/application.yaml`,可根据需要调整。 ## 测试 ### 发送测试数据 使用测试类 `src/test/java/com/bridge/data/client/ByteDataSender.java` 发送模拟的设备字节数据。 ```bash # 运行测试客户端 mvn test -Dtest=ByteDataSender ``` ## 项目结构 ```text data-collection/ ├── src/main/java/com/bridge/data/ │ ├── config/ # 配置类(定时清理任务) │ ├── controller/ # REST API 控制器 │ ├── data/ # 数据模型 │ ├── service/ # 业务逻辑层 │ └── utils/ # 工具类 ├── src/test/java/ # 测试代码 ├── Dockerfile # Docker 构建文件 └── pom.xml # Maven 配置 ``` ## API 接口 服务启动后,可通过以下端点访问: - **POST** `/api/data/receive` - 接收设备数据 - **GET** `/api/data/health` - 健康检查 ## 常见问题 ### Q: 如何修改日志保留天数? A: 在 Docker 运行时通过 `-e DAYS_OLD=30` 参数设置,或直接修改 `application.yaml` 配置。 ### Q: 日志文件存储在哪里? A: 默认存储在 `FILE_STORAGE_PATH` 指定的目录下,按设备 ID 分类存储。 ### Q: 如何备份日志文件? A: 直接复制挂载的宿主机目录即可,建议定期备份。