
0.6 Elasticsearch-开发机必备插件:Kibana、Postman/curl、jq、elasticsearch-head
——把“黑盒”ES 变成“白盒”的四件套
上一篇我们把 8.x 单节点跑起来了,但只停留在 curl http://localhost:9200 的“Hello World”阶段。真正的开发、调试、排障,需要一套顺手的“可视化+命令行”工具链。下面这四款插件(或独立工具)是笔者团队每台开发机的标配,装完即可把 ES 从“只能看返回 JSON”变成“一眼看懂集群、索引、文档、性能”。
- Kibana:官方“驾驶舱”,8.x 必装 Dev Tools
1.1 安装(与 ES 版本严格一致)
假设 ES 是 8.11.0
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.11.0-linux-x86_64.tar.gz
tar -xzf kibana-8.11.0-linux-x86_64.tar.gz
cd kibana-8.11.0/
开发机单节点,最简配置
cat >> config/kibana.yml <<EOF
server.host: “0.0.0.0”
server.port: 5601
elasticsearch.hosts: [“https://localhost:9200”]
elasticsearch.serviceAccountToken: “$(cat /etc/elasticsearch/service_tokens | grep -A1 kibana | tail -1)”
elasticsearch.ssl.certificateAuthorities: [“config/certs/http_ca.crt”]
EOF
启动
./bin/kibana --allow-root # root 开发机才加 --allow-root
1.2 必会三板斧
- Dev Tools → Console:自动补全、语法高亮、历史记录,比 curl 省 80% 手指。
- Stack Management → Index Management:可视化模板、别名、生命周期策略,告别
GET _template翻屏。 - Discover / Lens:写 DSL 前先点几下生成雏形,再“一键复制为 DSL”贴回 Console,调试效率翻倍。
- Postman / curl:把 DSL 当代码管
2.1 curl 快捷函数(写进 .bashrc)
es() {
curl -s -k -u elastic:“ESPWD"−H"Content−Type:application/json""ES_PWD" -H "Content-Type: application/json" "ESPWD"−H"Content−Type:application/json""@”
}
export ES_PWD=$(sudo cat /etc/elasticsearch/credentials/elastic 2>/dev/null)
用法示例
es https://localhost:9200/_cat/indices?v
es -X PUT localhost:9200/demo -d ‘{“settings”:{“number_of_shards”:1}}’
2.2 Postman 集合
新建 Environment 变量:baseUrl=https://localhost:9200,Authorization 选 Basic,用户名 elastic,密码变量化。
把整个项目 DSL 按 索引模板/ingest pipeline/查询/聚合 拆成 Folder,一键 Runner 回归测试;配合 pm.test() 做断言,CI 阶段直接 newman run 命令行回归。
- jq:命令行 JSON 手术刀
3.1 安装
sudo apt install jq # Ubuntu/macOS brew install jq
3.2 日常四招
1. 只看索引名+文档数
curl -s -k -u elastic:pwd https://localhost:9200/_cat/indices?format=json | jq -r ‘.[] | [.index,.docs.count] | @tsv’
2. 查集群 allocation,剔除 UNASSIGNED
curl -s -k -u elastic:pwd https://localhost:9200/_cat/shards?format=json | jq ‘.[] | select(.state==“UNASSIGNED”) | {index:.index,shard:.shard,prirep:.prirep}’
3. 聚合结果只留桶 key 与 doc_count
curl -s -k -u elastic:pwd -XPOST localhost:9200/log/_search -d ‘{…}’ | jq ‘.aggregations.top_urls.buckets[] | {key,count}’
4. 批量 reindex 进度
while true; do
curl -s -k -u elastic:pwd localhost:9200/_tasks?detailed | jq -r ‘.tasks | to_entries[] | select(.value.description | startswith(“reindex”)) | [.key, .value.status.created] | @tsv’
sleep 5
done
- elasticsearch-head:轻量级“网页版 cat API”
虽然 ES 8.x 官方已把 head 插件从核心移除,但社区版仍然是最快验证分片分布、路由、字段映射的“零配置”方案。
4.1 两种运行方式
- Chrome 插件:商店搜索“ElasticSearch Head”,一键装,地址栏输入
https://localhost:9200即可。 - 独立容器(与 ES 8.x CORS 兼容):
docker run -d -p 9100:9100 mobz/elasticsearch-head:5-alpine
4.2 必看三页
- Overview:分片颜色图一眼定位“UNASSIGNED”热点。
- Structured Filter:不写 DSL 就能拼 bool 查询,生成 JSON 直接贴 Kibana。
- Any Request:自定义 Method + Body,比 curl 省证书参数,临时验证很方便。
- 四件套协同工作流示例
场景:新需求“给订单索引加 nested 字段 order_items,上线前压测”。
- Kibana Console 新建模板 order_template_v2,加 nested 字段。
- Postman 把模板 PUT、reindex、alias 切换三步写成 Collection,Runner 循环 10 次,断言无 red 索引。
- curl + jq 实时查看 reindex 任务 created 数量,判断是否卡死。
- elasticsearch-head 打开 Overview,确认分片已均匀落到三台数据节点,无 UNASSIGNED。
全程 15 分钟,脚本与可视化交叉验证,避免“盲上线”。
- 小结
- Kibana 负责“看得见”:集群健康、DSL 调试、性能曲线。
- Postman/curl 负责“可重复”:把 DSL 纳入版本控制,回归测试。
- jq 负责“抓重点”:百行 JSON 里秒级摘出关键字段。
- elasticsearch-head 负责“快验证”:分片、路由、映射一图胜千言。
四件套装完,开发机立刻从“能跑 ES”进化到“轻松驾驭 ES”。下一节我们开始聊“索引设计与 Mapping 范式”,带你把业务模型真正落地到倒排索引。
更多技术文章见公众号: 大城市小农民
1877

被折叠的 条评论
为什么被折叠?



