logstash - ELK - Logstash - GROK 模式:从给定的以下日志中,我想提取从 {@timestamp 开始的所有日志
问题描述
7 月 13 日 03:19:38 tciapp bw/[o:01E45HV1D7GGJQZ49AKS4NW7QV:o][a:bkwjui6nb6i3xdp6zjvncbk77ukuoghk:a][c:a188c69b8193:c]: { "timestamp": 1594610381, "time": "03:40. ,“级别”:“INFO”,“appname”:“HZ3PLAUpdateService”,“apptype”:“bw”,“orgid”:“01E45HV1D7GGJQZ49AKS4NW7QV”,“appid”:“bkwjui6nb6i3xdp6zjvncbk77ukuoghk”,“instance”:“a188c69b8193”,“ message": "[bwEngThread:In-Memory Process Worker-7] ctbpgLTshared.LogInfo - {'@timestamp':'2020-07-13T03:19:41.012Z','client.domain':'E','techem .propertynumber':'0015011257','country':'DE','module':'HZ3_PLAUpdateService','log.level':'info','message':'Finished HZ3PLAUpdateService SOAP Request for 0015011257','error.message':'','techem.pr.number':'0015/011257','keys':[{'key':'pr.number .key','value':'0015011257'}]} " }
解决方案
请为您的 logstash 配置找到过滤器部分:
filter {
grok {
match => { "message" => "%{GREEDYDATA:logs} \- \{%{GREEDYDATA:KV}\} \"" }
overwrite => [ "message" ]
}
kv {
source => "KV"
value_split => ":"
field_split => ","
target => "msg"
}
}
我使用Grok Debugger将您的日志消息过滤成两部分。你可以在这里输出。
然后,我使用KV 过滤器将字段与它们的值分开。
你可以试试看它是否对你有用。
推荐阅读
- android - 警告:忽略匿名内部类的 InnerClasses 属性
- google-cloud-platform - 使用 FDW 扩展从本地数据库到 Cloud SQL 是否可能或可行?
- android - 如何将训练有素的 scikit-learn 模型导入 android 项目
- arrays - Pandas 字节数组到十六进制转换
- javascript - javascript捕获img src“...”之间的所有内容
- java - JAVA KeyEvent 序列化错误
- macos - 具有有效签名的 macOS Kext 在第二次安装后被拒绝(高山脉)
- python - 我怎样才能摆脱循环?
- php - 遍历 wp_get_post_terms 并回显分类名称
- common-lisp - Common lisp values-list 函数