当前位置: 首页 > article >正文

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 各个代理组件尚未有完善的审计日志功能


http://www.kler.cn/a/354718.html

相关文章:

  • 【网络协议】IPv4 地址分配 - 第二部分
  • MySQL和Hive中的行转列、列转行
  • 设计模式(1)——面向对象和面向过程,封装、继承和多态
  • w~自动驾驶~合集16
  • Backend - EF Core(C# 操作数据库 DB)
  • 苹果系统MacOS下ObjectC建立的App程序访问opencv加载图片程序
  • 你认为BI不需要建模,那就大错特错了
  • 气膜展览馆——汽车展览的新选择—轻空间
  • 【原创】java+ssm+mysql小区物业管理系统设计与实现
  • 基于panda-gym上手stable-baselines3强化学习框架
  • 简单说说 spring 是如何处理循环依赖问题的(源码解析)
  • Unity 2D角色的跳跃与二段跳示例
  • Springboot 整合 Java DL4J 实现物流仓库货物分类
  • 论文翻译 | LARGE LANGUAGE MODELS ARE HUMAN-LEVELPROMPT ENGINEERS
  • 计算机网络自顶向下(4)---应用层HTTP协议
  • Nginx在Windows Server下的启动脚本
  • 20201017-【C、C++】跳动的爱心
  • Git推送被拒
  • exists在sql中的妙用
  • Linux笔记---vim的使用
  • OpenHarmony 入门——ArkUI 自定义组件内同步的装饰器@State小结(二)
  • vue使用gdal-async获取tif文件的缩略图
  • 【系统架构设计师】案例分析考点情况分析和解题技巧(包括2009~2024年考点详情)
  • 详解UDP-TCP网络编程
  • 【C#生态园】提升数据处理效率:C#中多款数据清洗库全面解析
  • 【wpf】07 后端验证及令牌码获取步骤