feat: 添加日志文件输出功能和心跳故障排查工具
- 新增日志文件输出功能,支持配置日志文件路径和级别 - 添加心跳故障排查脚本 check-heartbeat.sh - 支持通过环境变量 LOG_FILE 设置日志文件路径 - 日志自动创建目录,支持相对路径和绝对路径 - 优化日志初始化逻辑,支持直接写入文件 - 改进配置加载,支持日志配置项 - 完善文档,添加故障排查章节和日志功能说明 - 更新版本号至 v1.1.0
This commit is contained in:
131
README.md
131
README.md
@@ -13,6 +13,8 @@ LinkMaster 节点服务,用于执行网络测试任务。
|
||||
- FindPing IP段批量ping检测
|
||||
- 持续 Ping/TCPing 测试
|
||||
- 心跳上报
|
||||
- 日志文件输出(支持配置日志文件路径和级别)
|
||||
- 心跳故障排查工具
|
||||
|
||||
## 安装
|
||||
|
||||
@@ -87,6 +89,7 @@ BACKEND_URL=http://your-backend-server:8080 ./run.sh start
|
||||
|
||||
- `BACKEND_URL`: 后端服务地址(必需,默认: http://localhost:8080)
|
||||
- `CONFIG_PATH`: 配置文件路径(可选,默认: config.yaml)
|
||||
- `LOG_FILE`: 日志文件路径(可选,默认: node.log)
|
||||
|
||||
### 配置文件(可选)
|
||||
|
||||
@@ -99,9 +102,18 @@ backend:
|
||||
url: http://your-backend-server:8080
|
||||
heartbeat:
|
||||
interval: 60
|
||||
log:
|
||||
file: node.log # 日志文件路径(默认: node.log,空则输出到标准错误)
|
||||
level: info # 日志级别: debug, info, warn, error(默认: info)
|
||||
debug: false
|
||||
```
|
||||
|
||||
**日志配置说明:**
|
||||
- `log.file`: 日志文件路径。如果为空,日志将输出到标准错误(stderr)
|
||||
- `log.level`: 日志级别,支持 `debug`、`info`、`warn`、`error`
|
||||
- 也可以通过环境变量 `LOG_FILE` 设置日志文件路径
|
||||
- 日志文件会自动创建,如果目录不存在会自动创建
|
||||
|
||||
## 运行脚本
|
||||
|
||||
使用 `run.sh` 脚本管理节点端。**每次启动时会自动拉取最新代码并重新编译**:
|
||||
@@ -464,3 +476,122 @@ go build -mod=vendor -o agent ./cmd/agent
|
||||
### GET /api/health
|
||||
|
||||
健康检查
|
||||
|
||||
## 故障排查
|
||||
|
||||
### 心跳同步问题排查
|
||||
|
||||
如果节点无法同步心跳,可以使用排查脚本进行诊断:
|
||||
|
||||
```bash
|
||||
# 运行心跳故障排查脚本
|
||||
./check-heartbeat.sh
|
||||
```
|
||||
|
||||
排查脚本会自动检查以下项目:
|
||||
|
||||
1. **进程状态** - 检查节点进程是否正在运行
|
||||
2. **配置文件** - 检查配置文件是否存在和正确
|
||||
3. **网络连接** - 检查能否连接到后端服务器
|
||||
4. **日志分析** - 分析日志中的心跳相关错误
|
||||
5. **手动测试** - 手动发送心跳测试连接
|
||||
6. **系统资源** - 检查磁盘空间和内存使用情况
|
||||
|
||||
**常见问题及解决方案:**
|
||||
|
||||
1. **进程未运行**
|
||||
```bash
|
||||
./run.sh start
|
||||
```
|
||||
|
||||
2. **网络连接失败**
|
||||
- 检查后端服务是否正常运行
|
||||
- 检查防火墙规则(确保可以访问后端端口)
|
||||
- 检查 BACKEND_URL 配置是否正确
|
||||
|
||||
3. **心跳发送失败**
|
||||
- 查看日志: `./run.sh logs`
|
||||
- 检查后端服务日志
|
||||
- 确认后端 `/api/node/heartbeat` 接口正常
|
||||
|
||||
4. **配置文件问题**
|
||||
- 检查 `config.yaml` 文件格式是否正确
|
||||
- 确认 `BACKEND_URL` 环境变量或配置文件中的 URL 正确
|
||||
|
||||
5. **查看详细日志**
|
||||
```bash
|
||||
# 实时查看日志
|
||||
./run.sh logs
|
||||
|
||||
# 查看完整日志
|
||||
./run.sh logs-all
|
||||
```
|
||||
|
||||
### 日志功能
|
||||
|
||||
节点端支持将日志直接写入文件,便于排查问题和监控运行状态。
|
||||
|
||||
**日志配置方式:**
|
||||
|
||||
1. **环境变量**(推荐)
|
||||
```bash
|
||||
LOG_FILE=/var/log/linkmaster-node.log ./run.sh start
|
||||
```
|
||||
|
||||
2. **配置文件**
|
||||
在 `config.yaml` 中配置:
|
||||
```yaml
|
||||
log:
|
||||
file: node.log # 日志文件路径
|
||||
level: info # 日志级别: debug, info, warn, error
|
||||
```
|
||||
|
||||
3. **默认行为**
|
||||
- 默认日志文件:`node.log`(当前目录)
|
||||
- 默认日志级别:`info`
|
||||
- 如果未设置日志文件,日志输出到标准错误(stderr)
|
||||
|
||||
**日志特性:**
|
||||
- ✅ 自动创建日志文件和目录
|
||||
- ✅ 追加模式,不会覆盖已有日志
|
||||
- ✅ JSON 格式,便于日志分析
|
||||
- ✅ 包含调用信息(文件名和行号)
|
||||
- ✅ Error 级别日志包含堆栈信息
|
||||
|
||||
**查看日志:**
|
||||
```bash
|
||||
# 实时查看日志
|
||||
tail -f node.log
|
||||
|
||||
# 查看心跳相关日志
|
||||
grep -i "心跳" node.log
|
||||
|
||||
# 查看错误日志
|
||||
grep -i "error" node.log
|
||||
|
||||
# 查看最后100行
|
||||
tail -n 100 node.log
|
||||
```
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v1.1.0 (最新)
|
||||
|
||||
**新增功能:**
|
||||
- ✨ 添加日志文件输出功能,支持配置日志文件路径和级别
|
||||
- ✨ 添加心跳故障排查工具 `check-heartbeat.sh`
|
||||
- ✨ 支持通过环境变量 `LOG_FILE` 设置日志文件路径
|
||||
- ✨ 日志自动创建目录,支持相对路径和绝对路径
|
||||
|
||||
**改进:**
|
||||
- 🔧 优化日志初始化逻辑,支持直接写入文件
|
||||
- 🔧 改进配置加载,支持日志配置项
|
||||
- 📝 完善文档,添加故障排查章节
|
||||
|
||||
### v1.0.0
|
||||
|
||||
- 🎉 初始版本发布
|
||||
- ✅ 支持 HTTP GET/POST 测试
|
||||
- ✅ 支持 Ping、DNS、Traceroute 等网络测试
|
||||
- ✅ 支持持续 Ping/TCPing 测试
|
||||
- ✅ 支持心跳上报
|
||||
|
||||
Reference in New Issue
Block a user