elasticsearch 将摄取http日志api_名称解析为elastic,elasticsearch,elastic-stack,elasticsearch,Elastic Stack" /> elasticsearch 将摄取http日志api_名称解析为elastic,elasticsearch,elastic-stack,elasticsearch,Elastic Stack" />

elasticsearch 将摄取http日志api_名称解析为elastic

elasticsearch 将摄取http日志api_名称解析为elastic,elasticsearch,elastic-stack,elasticsearch,Elastic Stack,我有一个带有字段url的http日志:“/api/api\u name/api\u id” 示例1 url:/api/apiX/0121313123 示例2 url:/api/APYY/012132/optionX/1000 从url中提取并在elasticsearch中仅摄取“/api/api_名称”并删除id以便于以后在kibana发行版中按api_名称可视化的最佳做法是什么?不确定这是否是最佳做法,但对我们有效的是,我们仅将url作为api的单独字段进行索引: 删除URL PUT/url

我有一个带有字段url的http日志:“/api/api\u name/api\u id”

示例1 url:/api/apiX/0121313123

示例2 url:/api/APYY/012132/optionX/1000


从url中提取并在elasticsearch中仅摄取“/api/api_名称”并删除id以便于以后在kibana发行版中按api_名称可视化的最佳做法是什么?

不确定这是否是最佳做法,但对我们有效的是,我们仅将url作为api的单独字段进行索引:

删除URL
PUT/url
{
“设置”:{
“分析”:{
“字符过滤器”:{
“api_提取器_字符_过滤器”:{
“类型”:“模式替换”,
“模式”:“/?api/([^/]+)/?*”,
“替换”:“api/$1”
}
},
“标准化器”:{
“api_提取器”:{
“过滤器”:[
“小写”,
“asciifolding”
],
“字符过滤器”:[
“api_提取器_字符过滤器”
]
}
}
}
},
“映射”:{
“财产”:{
“url”:{
“类型”:“文本”,
“字段”:{
“api”:{
“类型”:“关键字”,
“规范化器”:“api_提取器”
}
}
}
}
}
}
POST/url/\u doc
{“url”:/api/apiX/0121313123}
POST/url/\u doc
{“url”:“/api/apy/012132/optionX/1000”}
获取/url/\u搜索
{
“查询”:{
“期限”:{
“url.api”:{
“值”:“/api/apiY”
}
}
}
}
通过这种方式,我们保留原始URL,并使用
.api
字段索引仅满足您的要求。此字段可用于精确搜索和聚合。对于您的用例来说,它会很好地工作

其他可能的方式:

  • 使用摄取管道更改文档源并提取URL
  • 从应用程序/日志收集器中分别摄取URL和API名称

可能的副本:非常感谢!看起来正是我需要的。。。