ACL LOG
语法
ACL LOG [count | RESET]
- 可用版本
- Redis 开源版 6.0.0
- 时间复杂度
- O(N),其中 N 是显示的条目数量。
- ACL 类别
-
@admin,@slow,@dangerous,
此命令显示最近的 ACL 安全事件列表
可选参数指定要显示的条目数量。默认情况下,最多返回十个失败条目。特殊参数 RESET 会清除日志。条目从最新的开始显示。
示例
> AUTH someuser wrongpassword
(error) WRONGPASS invalid username-password pair
> ACL LOG 1
1) 1) "count"
2) (integer) 1
3) "reason"
4) "auth"
5) "context"
6) "toplevel"
7) "object"
8) "AUTH"
9) "username"
10) "someuser"
11) "age-seconds"
12) "8.038"
13) "client-info"
14) "id=3 addr=127.0.0.1:57275 laddr=127.0.0.1:6379 fd=8 name= age=16 idle=0 flags=N db=0 sub=0 psub=0 ssub=0 multi=-1 qbuf=48 qbuf-free=16842 argv-mem=25 multi-mem=0 rbs=1024 rbp=0 obl=0 oll=0 omem=0 tot-mem=18737 events=r cmd=auth user=default redir=-1 resp=2"
15) "entry-id"
16) (integer) 0
17) "timestamp-created"
18) (integer) 1675361492408
19) "timestamp-last-updated"
20) (integer) 1675361492408
每条日志条目包含以下字段:
count:此条目代表的在 60 秒内检测到的安全事件数量。reason:记录安全事件的原因。可以是command、key、channel或auth。context:检测到安全事件的上下文。可以是toplevel、multi、lua或module。object:用户权限不足无法访问的资源。当原因为auth时,此字段为auth。username:执行导致安全事件的命令的用户名,或认证尝试失败的用户名。age-seconds:日志条目的时长(秒)。client-info:显示导致安全事件的客户端信息。entry-id:自服务器进程启动以来的条目序列号(从 0 开始)。也可用于检查条目是否“丢失”(即发生在记录周期之间)。timestamp-created:条目首次创建时的 UNIX 时间戳(milliseconds,毫秒)。timestamp-last-updated:条目最后更新时的 UNIX 时间戳(milliseconds,毫秒)。
RESP2/RESP3 回复
当调用显示安全事件时
- 数组回复:表示 ACL 安全事件的 Bulk string 回复 元素数组。当使用
RESET调用时 - 简单字符串回复:如果安全日志已清除,则返回
OK。
变更历史
- 从 Redis 版本 7.2.0 开始:添加了
entry-id、timestamp-created和timestamp-last-updated。