为用户解析 Amazon Cloudwatch RDS 审核日志



我正在使用 RDS 审核日志并尝试使用日志查询解析用户名。@message列的审核中的数据如下所示: 1234567890,rds-instance-name,rdsadmin,localhost,123,0,CONNECT,,,0

我想聚合日志中各个条目的计数,但我不知道如何从@message列中解析用户名。在上面的示例中,用户名是 rdsadmin。

这是我到目前为止的查询:

fields @timestamp, @message
| filter @message like /(?i)(connect)/
| parse @message /(?<@ip>d{1,3}.d{1,3}.d{1,3}.d{1,3})/
| stats count() AS counter by @user, @ip
| sort by @user desc, @counter desc
| limit 50

正则表达式是否能够解析逗号分隔字符串中的第三个值?

这似乎有效,也许不是最好的方法?

fields @timestamp, @message
| filter @message like /(?i)(CONNECT)/
| parse @message ',*,*,' as @instance,@user
| parse @message /(?<@ip>d{1,3}.d{1,3}.d{1,3}.d{1,3})/
| stats count() AS counter by @user, @ip
| sort by @user desc, @counter desc
| limit 50

最新更新