java - 如何定义grok过滤?
问题描述
如何为 Kibana 中显示的以下示例日志消息定义 grok 过滤模式?我已经定义了更多模式但得到_grokparsefailure
2018-12-10 14:50:01,497 [traceID : 46072cedb98568e3 spanID: 46072cedb98568e3 parent: ] service : networkService [XNIO-2 task-1] org.mongodb.driver.connection - Opened connection [connectionId{localValue:2, serverValue:3209}] to 192.168.0.207:27017
这是我(WGSSAMINTHA)尝试的解决方案。
filter {
grok {
match => {
"message" => "%{IP:client} %{WORD:method} %{WORD:service}
%{URIPATHPARAM:request} %{NUMBER:duration}"
}
remove_field => [ "_type:doc",
"_index:archisoft-log-all",
"_score: dev" ]
}
}
解决方案
这种 grok 模式"%{IP:client} %{WORD:method} %{WORD:service} %{URIPATHPARAM:request} %{NUMBER:duration}"
在解析提供的日志行时是错误的。grok 模式将被翻译成正则表达式,日志行将与之匹配;如果正则表达式与日志行不匹配,您将获得_grokparsefailure
. 这意味着基本模式的顺序很重要。
由于您没有从日志行中说出您想要什么信息,因此我提取了一些看起来很重要的部分:
grok {
match => {
"message" => "^%{TIMESTAMP_ISO8601:date} \[traceID \: %{DATA:traceID} spanID\: %{DATA:spanID} parent\: %{DATA:parent}\] service \: %{WORD:service} \[%{DATA:thread}\] %{DATA:message}$"
}
}
这将提取这些值:
parent
spanID 46072cedb98568e3
service networkService
thread XNIO-2·task-1
date 2018-12-10·14:50:01,497
message org.mongodb.driver.connection - Opened connection [connectionId{localValue:2, serverValue:3209}] to 192.168.0.207:27017
traceID 46072cedb98568e3
推荐阅读
- vhdl - 正确编译的代码的 ModelSim Altera 仿真错误:处理中的致命错误
- jquery - 循环似乎结束了,即使期望是重置
- react-native - 如何从数组中制作卡片?
- python - 想要在 Python 中显示拟合方程
- vb.net - 如何消除程序集的冗余副本
- python - 如何从 GoogleCredentials 获取 projectId?
- c# - 玩家接触地面标记地面时不会死亡
- html - 如何解析 Google 地图嵌入代码以便更改缩放?
- javascript - 如何从非本地 Web 服务器控制 Raspberry Pi?
- java - 从Java中的多个双数(不是数组)中查找最大值?