Elasitcsearch 集群开发运维常用命令集锦,后面会逐步扩展完善。
早期总结的开发、运维常见命令清单列表如下:
1、干货 | Elasticsearch 运维实战常用命令清单
2、干货 | Elasticsearch Top10 监控指标
3、干货 | Elasticsearch 开发实战常用命令清单
4、干货 | Elasticsearch开发人员最佳实战指南
1、集群、节点层面监控信息
查询所有节点的stats信息
代码语言:javascript复制GET /_nodes/stats
查询指定节点的stats信息
代码语言:javascript复制GET /_nodes/node1,node2/stats
查看指定索引的stats信息
代码语言:javascript复制GET /<INDEX_NAME>/_stats
查看集群层面的stats信息
代码语言:javascript复制GET /_cluster/stats
获取节点信息
代码语言:javascript复制GET /_nodes/_all
获取主节点信息
代码语言:javascript复制GET /_nodes/_master
2、集群健康状态查看
代码语言:javascript复制GET /_cat/health?v
3、检索性能指标查看(用的相对少)
Total number of queries
代码语言:javascript复制GET /_cat/nodes?v&h=name,searchQueryTotal
Total time spent on queries
代码语言:javascript复制GET /_cat/nodes?v&h=name,searchQueryTime
当前进行的查询个数
代码语言:javascript复制GET /_cat/nodes?v&h=name,searchQueryCurrent
Total number of fetches
代码语言:javascript复制GET /_cat/nodes?v&h=name,searchFetchTotal
Total time spent on fetches
代码语言:javascript复制GET /_cat/nodes?v&h=name,searchFetchTime
当前进行中的fetch数
代码语言:javascript复制GET /_cat/nodes?v&h=name,searchFetchCurrent
4、集群性能查看(用的相对少)
全集群文档数
代码语言:javascript复制GET /_cat/nodes?v&h=name,indexingIndexTotal
索引文档花费的时间(m代表分钟)
代码语言:javascript复制GET /_cat/nodes?v&h=name,indexingIndexTime
正在被索引的文档数
代码语言:javascript复制GET /_cat/nodes?v&h=name,indexingIndexCurrent
flush 刷入磁盘的文档数
代码语言:javascript复制GET /_cat/nodes?v&h=name,flushTotal
索引写入磁盘花费的时间
代码语言:javascript复制GET /_cat/nodes?v&h=name,flushTotalTime
5、JVM 信息查看
代码语言:javascript复制GET /_nodes/stats/jvm
节点及对应堆内存使用率查看
代码语言:javascript复制GET /_cat/nodes?v&h=name,heapPercent
6、pending 状态任务查看
代码语言:javascript复制GET /_cluster/pending_tasks
7、线程池和队列的查看
代码语言:javascript复制GET /_nodes/stats/thread_pool
8、fielddata 信息查看
fielddata 缓存信息查看
代码语言:javascript复制GET /_cat/nodes?v&h=name,fielddataMemory
9、类似 Mysql 查看进程列表
关于ES有什么方法可以看到哪些客户端和ES有交互,哪些客户端读写 es数据吗?
比如像 mysql show processlist 命令显示的一些信息一样。
代码语言:javascript复制GET /_tasks
10、小结
如上命令行或许结合 Kibana 等集群监控工具更为直观查看。
本文仅抛砖引玉,大而全的信息推荐官方文档,见参考部分给出的链接。仅看本文你肯定不过瘾,建议打开文章开头推荐 4 篇文章一起看。
最常遇到问题:“Elasticsearch 知道用什么dsl,但是从0-1给敲出来命令很困难,都得抄和改现成的,有什么好办法熟练一些?”
- 第一:熟练都是相对的,用的多了自然就熟悉了。
- 第二:适当翻看官方文档,加强认知,复制命令行也无可厚非。
- 第三:适当的刻意练习!刻意练习不是简单的重复,而是有回馈、有思考、有总结必然有提升!
参考
- elasticsearch_monitoring_cheatsheet.pdf
- https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html
- https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-nodes.html