如何配置云服务器日志的清理与归档流程规范?
摘要:# EC2*ECS日志清理与归档配置规范 > 标准化日志生命周期管理:压缩 - 归档(S3) - 清理,防止磁盘打满导致服务不可用。 ## 目录 - [架构概览](#架构概览) - [清理策略说明](#清理策略说明)
# EC2*ECS日志清理与归档配置规范
> 标准化日志生命周期管理:压缩 - 归档(S3) - 清理,防止磁盘打满导致服务不可用。
---
## 目录
- [架构概览](#架构概览)
- [清理策略说明](#清理策略说明)
- [配置参数规范](#配置参数规范)
- [优化脚本(可配置版)](#优化脚本可配置版)
- [部署与运维](#部署与运维)
- [监控与告警](#监控与告警)
- [原始脚本分析与改进点](#原始脚本分析与改进点)
---
## 架构概览
```
日志文件 (.log)
|
+-- 正常流程(磁盘 < 普通阈值)
| --> 压缩 (.log.gz) --> 可选上传 S3 --> 删除原始 .log
|
+-- 普通清理(磁盘 > 普通阈值)
| --> 删除最旧的 .gz 文件(分批删除,直到低于阈值)
|
+-- 紧急清理(磁盘 > 紧急阈值,需开启 ENABLE_EMERGENCY_CLEANUP)
--> 激进删除:.gz -> 旧 .log -> 最旧日志文件(保护活跃日志)
```
### 生命周期
```
写入中 (.log) 保留(活跃日志,受 KEEP_FILES 保护)
| 60 分钟后
已轮转 (.20260410.log) 压缩为 .gz -> 删除原始文件
| 磁盘超阈值时
压缩文件 (.gz) 按时间从旧到新依次删除
| 可选
S3 归档 长期保留,按 S3 lifecycle 策略自动过期
```
---
## 清理策略说明
### 三级清理机制
| 级别 | 触发条件 | 开关 | 行为 | 风险等级 |
|----------------|----------------------------------|-----------------------------------|------------------------------------------------|----------|
| **压缩归档** | 每轮循环 | 始终开启 | 压缩轮转日志,可选上传 S3,删除原始文件 | 低 |
| **普通清理** | 磁盘 > `THRESHOLD` | 始终开启 | 分批删除最旧 `.gz` 文件,直到低于阈值 | 中 |
| **紧急清理** | 磁盘 > `EMERGENCY_THRESHOLD` | **`ENABLE_EMERGENCY_CLEANUP`** | 激进删除所有可清理日志(保护 `KEEP_FILES`) | 高 |
> **紧急清理开关说明:** `ENABLE_EMERGENCY_CLEANUP=1` 开启(默认),`=0` 关闭。
> 关闭后磁盘即使超过紧急阈值也仅执行普通清理 + 发送告警,不会激进删除文件。
> 适用于希望人工介入而非自动处理的场景。
