1.10 Elasticsearch-Kibana Discover & Dev Tools 速成

在这里插入图片描述

1.10 Elasticsearch-Kibana Discover & Dev Tools 速成

目标:30 min 内掌握 Kibana 最常用的两块主屏——Discover(探查)与 Dev Tools(控制台),能把日志搜出来、能把命令跑下去,并能把结果搬得上 PPT。


1. 课前准备:把“枪”上膛

  1. 一套能用的 ES + Kibana(8.x 最佳,7.x 亦可)。
  2. 至少有一个已写入数据的索引(后文用 nginx-2025.11.01 举例,字段含 @timestampremote_iprequeststatus)。
  3. 浏览器 + 1920×1080 分辨率(省得面板挤成“千层饼”)。

2. Discover:把日志当 Google 搜

Kibana → 左侧汉堡菜单 → Discover

2.1 选索引模式(Index Pattern)

首次进入会提示创建索引模式。输入 nginx-* → 时间字段选 @timestampCreate → 完成。

技巧:用通配符一次性把 nginx-2025.11.01nginx-2025.10.31 都罩住,省得每天新建。

2.2 时间控件:先锁范围再谈性能

右上角时间选择器默认是 Last 15 minutes。生产环境日志若按天滚动,直接点 Relative → Last 24 hours;排障时再切到 Absolute 并输入精确起止。
快捷键:

  • t → 弹出时间控件
  • shift + → / → 时间平移

2.3 搜索栏:KQL 三板斧

Kibana Query Language(KQL)比 Lucene 语法更“人话”:

需求写法
查 404status:404
查 4xx 且来源北京status:[400 TO 499] AND geoip.city_name:"Beijing"
查 request 里带 /api/user/*request:/\/api\/user\/.*/

注意:KQL 默认区分字段类型,字符串别丢引号,数字别加引号。

2.4 过滤桶(Filter Pills)与时间直方图

  • 点击搜索结果左侧 “+” 即可把该值加为过滤条件,支持 is、is not、exists、range 四件套。
  • 直方图拖动鼠标可“框选”时间区间,自动放大。

2.5 列字段(Columns)& 排序

  • 鼠标悬停日志 → “+” 添加列;拖动列头可排序;点击列头右侧 “x” 可删除。
  • 保存为 Saved Search(页面右上角 Save),后续可做可视化或告警。

2.6 导出:CSV 与 Share

  • Share → CSV ReportsGenerate;后台会生成异步下载链接,适合甩锅给运维。
  • Share → Permalink 可生成带时间戳与查询语句的短链,贴 Jira 里直接可复现。

3. Dev Tools:ES 的“瑞士军刀”

左侧菜单 → Dev Tools → 进入 Console。

3.1 三窗口布局

  • Editor(左):写请求。
  • Response(右):看返回。
  • History(底部小闹钟):自动存最近 500 条,支持关键字搜索。

3.2 快捷语法:省略 curl 全套

GET nginx-2025.11.01/_search
{
  "size": 0,
  "aggs": {
    "status_codes": {
      "terms": { "field": "status", "size": 10 }
    }
  }
}

提示:不用加 curl -XGET "http://ip:9200",Kibana 自动补全集群地址与认证头。

3.3 自动补全与快捷键

  • Ctrl + Space → 字段名、API 全提示。
  • Ctrl + / → 一键注释/取消注释。
  • Ctrl + Enter → 执行;多请求时用 “小扳手”“Copy as cURL” 可生成回滚脚本。

3.4 批量模板:_bulk、_reindex 秒级演练

POST _bulk
{ "index": { "_index": "test", "_id": "1" } }
{ "msg": "hello" }
{ "delete": { "_index": "test", "_id": "2" } }

Console 会把 _bulk 按换行符自动拆成 ND-JSON,无需手动加 \n

3.5 结果折叠与对比

  • 点击响应区 “>” 可折叠子节点;
  • 多 Tab 场景下,右键 “Compare response bodies” 可 diff 两次返回,排查 mapping 变更差异。

3.6 生产注意:关掉 “auto-format” 防误伤

Settings → Disable auto-formatting;防止 1 MB 聚合结果直接把浏览器卡死。


4. 实战 10 分钟:从“发现”到“修复”

场景:运营反馈 08:45 开始大量 499。

  1. Discover
    时间选 08:30–09:00,KQL 输入 status:499,直方图峰值 08:47。
    添加 Filterupstream_addr: "10.0.0.15:8080",确认仅该组后端。

  2. Dev Tools 验证

    GET nginx-2025.11.01/_search
    {
      "query": {
        "bool": {
          "filter": [
            { "term": { "status": 499 } },
            { "range": { "@timestamp": { "gte": "2025-11-01T08:45:00" } } }
          ]
        }
      },
      "aggs": {
        "per_minute": {
          "date_histogram": { "field": "@timestamp", "fixed_interval": "1m" }
        }
      }
    }
    

    返回显示 08:47–08:52 每分钟 3k+,之后陡降。

  3. 根因
    关联跳板机日志,发现 08:47 发布新版 JVM,GC 日志出现 “Stop-the-world 5.2 s”。回滚后 499 归零。

  4. 沉淀

    • Discover 保存为 “499_异常模板”
    • Dev Tools 聚合语句存 History → Star,下次 30 秒复现。

5. 常见坑与排查口诀

症状口诀真因
Discover 空白“先索引模式后时间”索引模式没覆盖到真实索引,或时间字段选错
Dev Tools 报 401“看 cookie 再看 space”多 Space 场景,cookie 的 space 与请求不一致
聚合结果 doc_count_error 过高“分片+size 太小”调大 shard_size 或直接 show_term_doc_count_error: true
CSV 下载 0 字节“字段 500 限制”高级设置 → discover:searchFieldsFromSource 关掉

6. 小结:一分钟记忆卡

  • Discover:索引模式 → 时间 → KQL → Filter → Saved Search → CSV。
  • Dev Tools:GET/POST 省 curl → Ctrl+Space 补全 → History 存模板 → 回滚靠 cURL。
  • 排查三板斧:先看直方图峰值 → 加过滤缩小范围 → Console 聚合二次确认。

把这两块屏玩顺,日志就在你鼠标底下,而不是在凌晨 3 点的微信电话里。
更多技术文章见公众号: 大城市小农民

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔丹搞IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值