【发布时间】:2016-09-21 15:11:59
【问题描述】:
我正在尝试从特定索引的搜索查询(即:给定日期范围的搜索结果)中找出结果。这样我就可以每天得到结果。
在上面,timestamp 是我使用logstash.conf 添加的字段,以获取实际的日志时间。当我尝试查询这个时,令人惊讶的是,我得到了一些命中(总命中数:24),因为从 (2016-08-03) 日期起我没有任何日志记录,所以应该是 0。它实际上显示了第二天的计数(即:(2016-08-04),它在日志文件中有 24 条记录。我确定 timezone 出了问题。
我的时区是 GMT+5:30。
这是我对logstash conf的过滤部分:
filter {
grok {
patterns_dir => ["D:/ELK Stack/logstash/logstash-2.3.4/bin/patterns"]
match => { "message" => "^%{LOGTIMESTAMP:logtimestamp}%{GREEDYDATA}" }
}
mutate {
add_field => { "timestamp" => "%{logtimestamp}" }
remove_field => ["logtimestamp"]
}
date {
match => [ "timestamp" , "ISO8601" , "yyyyMMdd HH:mm:ss.SSS" ]
target => "timestamp"
locale => "en"
}}
编辑:
这是日志文件中日期为 (2016-08-04) 的前 24 条记录的快照:
这是我在搜索 2016-08-03 日期时收到的 JSON 回复的快照:
我哪里出错了?任何帮助都将不胜感激。
【问题讨论】:
-
你能展示一个匹配但不应该匹配的示例文档吗?
-
@Val 我已根据要求编辑了问题。这是你要求的吗?
标签: elasticsearch logstash logstash-configuration elasticsearch-query