欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Redis 哨兵模式下DB库操作审计

Redis 哨兵模式下DB库操作审计

2024/10/23 23:28:49 来源:https://blog.csdn.net/qq_40477248/article/details/142981891  浏览:    关键词:Redis 哨兵模式下DB库操作审计

Redis Sentinel集群环境

主机版本模式NodeSentinel
redis-sentinel-node-06.2.12哨兵MasterYes
redis-sentinel-node-16.2.12哨兵SlaveYes
redis-sentinel-node-26.2.12哨兵SlaveYes

在这里插入图片描述

架构设计

在这里插入图片描述

命令行&程序验证

1、在redis-sentinel-node-1上使用redis-cli 连接redis-sentinel-node-0上的redis实例进行增删改查
在这里插入图片描述
2、在redis-sentinel-node-0节点上开启monitor 命令监控
在这里插入图片描述
3、由1、2 步截图可以看出在实例上使用monitor命令可以实时监控连接的client端执行命令参数详情
命令执行时间戳 [ db client_ip:port ] command argvs_list
4、使用python 客户端程序连接验证

from redis import Redis,ConnectionPool
config={"host": "192.168.123.241","pwd": "xxxxxx","port": 63675,
}
# 创建一个连接池
pool_list = [ConnectionPool(host=config["host"], password=config["pwd"], port=config["pwd"], db=0), ConnectionPool(host=config["host"], password=config["pwd"], port=config["pwd"], db=1)] 
for pool in pool_list:# 使用连接池来创建一个Redis客户端r = Redis(connection_pool=pool)# 现在你可以使用r对象来执行Redis命令了r.set('foo', 'bar')value = r.get('foo')print(value)r.delete('foo')r.close()

在这里插入图片描述
由上面service 可以看到 redis-sentinel-node-0 映射到 192.168.123.241node上的63675端口
执行测试client脚本
在这里插入图片描述
redis-sentinel-node-0实例上监控输出,可以看到监控到了整个脚本请求redis命令全过程
在这里插入图片描述

测试结论

经过以上命令行和python client模拟redis哨兵的使用测试结果来看,可以使用redis 自带的 monitor 监控命令来观测client 端执行redis 命令的详细情况,通过monitor 命令输出结果中的: 时间点 db号 client_ip 命令+参数 这些信息来辅助排查业务上的redis client模块执行操作。
注意:

1、MONITOR是一个调试命令,它回传 Redis 服务器处理的每个命令。它有助于了解数据库正在发生的情况。
2、当使用 Redis 作为数据库和分布式缓存系统时,查看服务器处理的所有请求的能力对于发现应用程序中的错误很有用
3、使用SIGINT(Ctrl-C)停止MONITOR通过 运行的流redis-cli。
4、手动发出QUIT或RESET命令来停止MONITOR通过运行的流telnet。
5、出于安全考虑,MONITOR的输出不会记录任何管理命令,并且命令中的敏感数据会被删除AUTH。 此外,该命令QUIT也未被记录。
6、MONITOR流会支持所有命令,因此使用流是有代价的,运行单个MONITOR客户端可能会使吞吐量降低 30% ~ 50%以上,同时运行更多MONITOR客户端会使吞吐量进一步降低。
7、不建议在生产环境实例上直接使用,尤其业务高峰期。

开源Redis proxy

Predixy gihub地址:https://github.com/joyieldInc/predixy 1500 star
Camellia gihub地址:https://github.com/netease-im/camellia/blob/master/docs/camellia-redis-proxy/redis-proxy-zh.md 605 star
Redis Enterprise 6.2.18 官方自带审计日志, 社区版暂不支持
在这里插入图片描述

结论

Predixy 经测试没有命令操作审计记录功能
网易开源 camellia 未发现所有操作命令审计记录功能
目前Redis 各个代理组件尚未有完善的审计日志功能

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com