elasticsearch - 基巴纳。从包含 JSON 的 @message 中提取字段
问题描述
我想从包含 json 的 @message 字段中提取 Kiabana 字段。前任:
Audit{
uuid='xxx-xx-d3sd-fds3-f43',
action='/v1.0/execute/super/method',
resultCode='SUCCESS',
browser='null',
ipAddress='192.168.2.44',
application='application1',
timeTaken='167'
}
拥有“action”和“application”字段,我希望能够找到命中应用程序的前 5 个请求。
我从类似的东西开始:
filter {
if ([message]~ = "Audit") {
grok {
match => {
"message" => "%{WORD:uuid}, %{WORD:action}, %{WORD:resultCode}, %{WORD:browser}, %{WORD:ipAddress}, %{WORD:application}, %{NUMBER:timeTaken}"
}
add_field => ["action", "%{action}"]
add_field => ["application", "%{application}"]
}
}
}
但这似乎与现实相去甚远。
解决方案
如果“审计”的内容真的是json格式,可以使用过滤插件“json”
json{
source => "Audit"
}
它将为您进行解析并创建所有内容。你不需要 grok / add_field。
推荐阅读
- php - 用 2 个表查询 eloquent
- jquery - 如果键入的最后 2 个字符是 /c 则执行此 jquery
- react-redux - 正则表达式大小写敏感性不适用于 Redux-Forms
- java - 检查用户是否来自意图
- javascript - Vis.js 时间轴无法切换嵌套组
- android - testCoverageEnabled 时未找到测试
- python - Django REST Framework Jalali 日期兼容性问题
- spring-aop - AWS XRay 记录器尝试在启动时检测类
- node.js - Typescript中out目录的目录结构相同,如何?
- youtube - 创建一个自动 YouTube 观看机?