首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grok模式,仅从日志中提取特定数据

Grok模式,仅从日志中提取特定数据
EN

Stack Overflow用户
提问于 2022-11-11 11:38:07
回答 1查看 36关注 0票数 0

我试图使用datadog中的grok解析规则从postgresql日志中提取一些特定数据。我正在尝试从下面的日志中提取以下json格式的内容

代码语言:javascript
复制
{
   dbuser {
     AROAXXXXXXXXXXXXXXXXX : username
     }
}

我试图从中提取上述信息的日志

代码语言:javascript
复制
2022-11-11 09:09:15 UTC:10.116.0.244(57888):AROAXXXXXXXXXXXXXXXXX:username@database_name:[592]:LOG:  AUDIT: SESSION,3016,1,READ,SELECT,,,"/*pga4dash*/
代码语言:javascript
复制
2022-11-11 09:20:53 UTC:10.116.0.244(57946):AROAXXXXXXXXXXXXXXXXX:username@database_name:[7696]:LOG:  pam_authenticate failed: Permission denied 
代码语言:javascript
复制
2022-11-11 09:27:02 UTC:10.116.0.244(57984):AROAXXXXXXXXXXXXXXXXX:username@database_name:[8328]:LOG:  AUDIT: SESSION,1,1,ROLE,ALTER ROLE,,,ALTER USER app_user SET pgaudit.log TO 'NONE';,<not logged>
代码语言:javascript
复制
2022-11-11 09:21:57 UTC:10.117.0.98(44764):AROAXXXXXXXXXXXXXXXXX:username@database_name:[2873]:FATAL:  pg_hba.conf rejects connection for host "10.117.0.98", user "AROAXXXXXXXXXXXXXXXXX:username", database "database_name", SSL off
*   Trying 127.0.0.1:1108...
* Connected to rdsauthproxy (127.0.0.1) port 1108 (#0)
> POST /authenticateRequest HTTP/1.1
Host: rdsauthproxy:1108
Accept: */*
Content-Length: 1884
Content-Type: multipart/form-data; boundary=------------------------1b12ee5d61245d84
* We are completely uploaded and fine
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Content-Type: text/html;charset=utf-8
< Content-Length: 0
< 
* Connection #0 to host rdsauthproxy left intact

到目前为止我尝试并取得的成就

这就是我到目前为止在泛化方面所做的尝试,它应该在所有的日志上都能工作,但是这并没有给我输出。

代码语言:javascript
复制
%{date("yyyy-MM-dd HH:mm:ss z"):}\:%{ipv4:}\(%{number:}\)\:%{data:dbuser:keyvalue(":")}

如果我使用以下内容,那么它将给出所需的输出,但只适用于上面提到的第一种日志模式。

代码语言:javascript
复制
%{date("yyyy-MM-dd HH:mm:ss z"):}\:%{ipv4:}\(%{number:}\)\:%{data:dbuser:keyvalue(":")}:\[592\]\:LOG\:\s+AUDIT\:\s+SESSION,%{integer:},1,READ,SELECT,,,\"%{notSpace:}%{data}

如果有一种方法可以忽略所有的日志,而只是提取准确的匹配,那么请帮助我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-14 13:17:58

所以我想出了解决上述问题的方法。下面是我使用的解析规则,它帮助我实现我想要的结果。

代码语言:javascript
复制
%{date("yyyy-MM-dd HH:mm:ss z"):}\:%{ipv4:}\(%{number:}\)\:%{word}:%{data:database.username}:%{data}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74401920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档