日志轮转
介绍
日志轮转(Log Rotation)是运维中的关键实践,用于管理日志文件的生成、存储和清理。在Grafana Loki等日志聚合系统中,合理的日志轮转策略能有效控制存储成本,避免磁盘空间耗尽,同时保留必要的日志数据用于分析。
日志轮转通常通过以下方式实现:
- 按时间轮转(如每天、每周)
- 按文件大小轮转(如达到100MB时)
- 按日志数量轮转(如保留最近7个文件)
为什么需要日志轮转?
备注
日志文件会持续增长,如果不加限制:
- 占用过多磁盘空间,导致系统崩溃
- 增加Loki索引和查询负担
- 降低日志分析效率
基础配置示例
使用logrotate工具(Linux系统)
大多数Linux系统内置logrotate
工具。以下是一个典型的配置示例(/etc/logrotate.d/myapp
):
/var/log/myapp/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
sharedscripts
postrotate
systemctl restart loki
endscript
}
参数说明:
daily
:每天轮转一次rotate 7
:保留7个历史文件compress
:启用gzip压缩旧日志postrotate
:轮转后重启Loki服务(确保新日志被正确捕获)