EFK 平台查询日志上下文实现方式

   日志平台在使用的时候,有时候需要查询符合条件的日志(如错误日志),过滤后需要定位问题,需要获取满足条件附近的日志,类似 grep -C 10 keywork log之类的shell功能,可以通过下述方式来实现:

一、Kibana 的“View surrounding documents”功能实现

  1. 选择过滤日志
    找到符合条件的日志,如图
    日志内容“at java.lang.Thread.run(Thread.java:748)”
    日志时间:2018-07-29 23:21:16.780
    015f95086af04768bcb98829bb71848b_0.png
  1. 选择“View surrounding documents”

  2. Surrounding Documents 查询附近日志
    默认是 5 行
    dbe07802ff4e4b5e89606df54bd66ca4_2.png

  3. 问题说明
    这个时不时失效,表现为直接返回到首页,由于未见异常,未知问题所在(难道是 Kibana 的 bug?计划后续升级到 6.0 看看能否避免)。

二、通过 Dev Tools 手动查询

  1. 首先定位查询索引名称
    如上图的索引名称:log-test-kq_wx-attendance-1830

  2. 确认时间点
    如上图的:2018-07-29 23:21:16.780

  3. 输入查询手动找到结果

GET log-test-kq_wx-attendance-1830/_search
{
"query": {
"bool": {
"must": [
{"match_all": {}}
],"filter": {
"range": {
"time": {
"format": "yyyy-MM-dd HH:mm:ss.SSS",
"gte": "2018-07-29 23:21:16.780",
"lte": "2018-07-29 23:21:17.000",
"time_zone": "+08:00"
}
}
}
}
},"_source": ["log"]
,"sort": [
{
"time": {
"order": "desc"
}
}
]
,"size": 200,"from": 0
}

注意:
a:时间根据实际需要调整阈值
b:如果查询结果较多,需要 from 对应调整实现翻页功能