Redis 在 Debian 上的日志管理实践
一 配置日志输出与级别
- 编辑配置文件:sudo nano /etc/redis/redis.conf
- 启用文件日志并设置路径:logfile /var/log/redis/redis-server.log
- 设置日志级别(可选):loglevel notice|verbose|debug|warning
- 创建日志目录并授权:sudo mkdir -p /var/log/redis && sudo chown redis:redis /var/log/redis
- 使配置生效:sudo systemctl restart redis-server
- 说明:Redis 不提供“按天保留”的内置参数,通常将日志写入文件后通过外部工具做轮转与保留策略。
二 使用 logrotate 做按天轮转与保留
- 创建配置:sudo nano /etc/logrotate.d/redis
- 推荐配置(按天轮转、保留7天、压缩、轮转后通知 Redis 重新打开日志文件)
/var/log/redis/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 640 redis redis
postrotate
systemctl reload redis >/dev/null 2>&1 || true
endscript
}
- 说明:
- 保留天数由 rotate N 决定,例如保留180天可改为 rotate 180(约6个月)。
- 采用 systemctl reload 而非 restart,可避免短暂停机;reload 会让 Redis 重新打开日志文件句柄。
- 若以 systemd 的 journald 为主日志,可将 logfile 留空,使用 journalctl -u redis 查看与持久化。
三 验证与运维要点
- 查看实时日志:tail -f /var/log/redis/redis-server.log
- 手动触发一次轮转测试:sudo logrotate -vf /etc/logrotate.d/redis
- 检查配置语法:sudo redis-server /etc/redis/redis.conf --test-check-only
- 权限与目录:确保 /var/log/redis 存在且属主为 redis:redis,新日志文件权限为 640。
- 避免重复记录:若同时配置了 syslog/journald 与 file,日志可能重复;按需保留一种方式。
四 扩展 日志保留策略与集中化
- 长期保留示例:将 rotate 设为 180(约6个月)即可实现半年留存;按月轮转可用 monthly 并配合 rotate 设置月数。
- 集中化与分析:将 /var/log/redis/*.log 接入 Filebeat → Logstash → Elasticsearch/Kibana(ELK),便于检索、告警与可视化。