【发布时间】:2020-10-30 00:35:13
【问题描述】:
我正在使用 ElasticSearch + Kibana 来记录错误。在 Kibana 仪表板中,我可以通过单击带有减号的放大镜按某个字段过滤掉记录。然后它会生成以下查询以排除:
{
"query": {
"match": {
"message": {
"query": "Invalid HTTP_HOST header: '12.34.567.89'. You may need to add '12.34.567.89' to ALLOWED_HOSTS.",
"type": "phrase"
}
}
}
}
现在我想为所有可能的 IP 地址排除这些记录,所以我需要一个通配符(或正则表达式)。我找到了有关通配符和正则表达式here 的文档。但是,它们与上面使用的语法不同。
如果我将上面的查询更改为文档中的查询,它根本不会过滤它。示例:
{
"query": {
"wildcard": {
"message": "Invalid HTTP_HOST header: *"
}
}
}
如果我尝试组合它们,我会收到解析错误:Discover: [parsing_exception] [match] unknown token [START_OBJECT] after [query], with { line=1 col=444 }。示例:
{
"query": {
"match": {
"message": {
"query": {
"wildcard": {
"message": "Invalid HTTP_HOST header: *"
}
},
"type": "phrase"
}
}
}
}
我尝试了更多组合,但我无法让它发挥作用。有什么想法吗?
【问题讨论】:
-
您的
message字段是否有.keyword子字段?
标签: elasticsearch kibana