如何审核与Redis数据库的连接

时间:2019-02-01 09:56:53

标签: redis audit audit-logging

我有兴趣记录哪些用户连接到数据库以及何时连接。

MONITOR命令过大,导致吞吐量急剧下降。

推荐使用什么方法来发布/生成这些日志?

除了MONITOR之外,redis中可能没有可用的审计命令

redis-cli monitor

使用MONITOR命令,我将得到如下内容:

1339518083.107412 [0 127.0.0.1:60866] "keys" "*"
1339518087.877697 [0 127.0.0.1:60866] "dbsize"
1339518090.420270 [0 127.0.0.1:60866] "set" "x" "6"
1339518096.506257 [0 127.0.0.1:60866] "get" "x"
1339518099.363765 [0 127.0.0.1:60866] "del" "x"
1339518100.544926 [0 127.0.0.1:60866] "get" "x"

同时我需要更多类似的东西: 用户X在时间戳Y处连接

1 个答案:

答案 0 :(得分:1)

您可以使用客户LIST命令得到这个信息。确保在客户端创建连接到Redis的设置客户端名称。然后查看“客户列表”打印的“年龄”字段,以获取连接的总持续时间(以秒为单位)。

redis 127.0.0.1:6379> client list
addr=127.0.0.1:52555 fd=5 name=ClientName1 age=855 idle=0     flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
addr=127.0.0.1:52787 fd=6 name=ClientName2 age=6 idle=5 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping

https://redis.io/commands/client-list