【问题标题】:In KIbana query + ignore hypen在 KIbana 查询中 + 忽略连字符
【发布时间】:2023-03-04 09:56:01
【问题描述】:
我需要搜索查询方面的帮助!
我的 kibana 中有以下 'n' 条消息,我只想在下面的消息字段中提取“arnold-123-20”字符串,而 hypen(-) 在我的搜索中被忽略,并且在时间戳中数字( 20) 匹配是错误的,我需要忽略它。
message:Oct 17 01:26:20 arnold-123-20.us.com arnold: [INFO]- Successful
kibana UI 中的搜索查询:
message:"arnold" AND message:"123-20" AND message:'Successfully'
【问题讨论】:
标签:
elasticsearch
logstash
kibana-4
kibana-3
【解决方案1】:
标准的 Elasticsearch 分词器打破了单词边界。 - 字符被视为单词边界。所以在内部 ES 将message 存储为[oct,17,01,26,20(2),arnold(2),123,us,com,info,successful] (基本上它是术语+频率的向量,忽略术语的顺序。)
您必须创建一个自定义标记器,以识别数据中的标记并使用它重新索引您的数据。那么您的搜索可能会起作用。
更好的解决方案是使用logstash 来解析某些类型的消息并将数据存储在不同的字段中。例如,您可以将 arnold-123-20 存储为 hostPart,将 us.com 存储为 hostDomain,并将 arnold-123-20.us.com 存储为 fullHost。您还需要添加一个索引模板,将不同的字段标记为not_analyzed。