实时监控适合高安全需求场景,使用 Redis Slowlog 和 Monitor 命令实时捕获慢查询和所有操作;定期审计则通过日志文件或 RDB/AOF 持久化数据定期检查历史记录,低开销适合日常运维。教程:启用慢查询日志 slowlog-log-slower-than 10000;查看命令 slowlog get 100;实时监控 redis-cli monitor;审计时结合 rdb 文件解析工具 redis-rdb-tools。
Redis Slowlog 使用
Redis 的 Slowlog 是记录执行时间超过阈值的命令日志。配置参数:slowlog-log-slower-than(微秒)和 slowlog-max-len(最大条数)。查看:SLOWLOG GET [n] 获取最近 n 条慢日志。SLOWLOG LEN 获取日志长度。SLOWLOG RESET 清空日志。这对审计历史操作非常有用。
Monitor 命令实时监控
redis-cli monitor 会实时输出所有客户端执行的命令,非常适合调试和实时监控。但注意,它会消耗大量 CPU 和带宽,不适合生产环境长时间运行。用于短期故障排查,查看操作历史实时流。
日志文件审计
Redis 默认不记录所有命令日志,可通过 syslog 或自定义日志文件实现。修改 redis.conf 中的 logfile 参数。结合 grep 等工具定期审计:grep "SET" /var/log/redis/redis.log 查看特定操作历史。AOF 文件也可解析命令历史,但文件较大需工具如 redis-aof-play。
第三方工具监控
使用 Redis Sentinel 或 RedisInsight 等工具可视化监控执行记录。Prometheus + Grafana 集成 Redis exporter,采集 slowlog 和命令统计,实现定期审计报表。实时告警通过 keyspace events 配置。
持久化数据审计
RDB 和 AOF 持久化文件包含操作快照或命令序列。使用 redis-rdb-tools 解析 RDB:rdb -c protocol memory.rdb | grep SET 查看历史 SET 操作。定期备份这些文件进行审计,适合离线分析。
选择实时 vs 定期
实时监控(Monitor/Slowlog)资源消耗高,适合开发/故障时;定期审计(日志/RDB)低开销,适合生产合规检查。根据场景:安全敏感选实时+审计结合。
FAQ
Q: Slowlog 如何配置阈值?
A: 在 redis.conf 中设置 slowlog-log-slower-than 1000000(1秒),重启生效。
Q: Monitor 命令安全吗?
A: 生产环境慎用,会打印所有命令,可能泄露敏感数据。
Q: 如何清空 Slowlog?
A: 执行 SLOWLOG RESET。
Q: AOF 文件能直接查看历史吗?
A: 需要工具如 rdbtools 或手动解析二进制文件。