1、集群、节点层面监控信息
查询所有节点的stats信息
GET /_nodes/stats
查询指定节点的stats信息
GET /_nodes/node1,node2/stats
查看指定索引的stats信息
GET /<INDEX_NAME>/_stats
查看集群层面的stats信息
GET /_cluster/stats
获取节点信息
GET /_nodes/_all
获取主节点信息
GET /_nodes/_master
2、集群健康状态查看
GET /_cat/health?v
3、检索性能指标查看(用的相对少)
Total number of queries
GET /_cat/nodes?v&h=name,searchQueryTotal
Total time spent on queries
GET /_cat/nodes?v&h=name,searchQueryTime
当前进行的查询个数
GET /_cat/nodes?v&h=name,searchQueryCurrent
Total number of fetches
GET /_cat/nodes?v&h=name,searchFetchTotal
Total time spent on fetches
GET /_cat/nodes?v&h=name,searchFetchTime
当前进行中的fetch数
GET /_cat/nodes?v&h=name,searchFetchCurrent
4、集群性能查看(用的相对少)
全集群文档数
GET /_cat/nodes?v&h=name,indexingIndexTotal
索引文档花费的时间(m代表分钟)
GET /_cat/nodes?v&h=name,indexingIndexTime
正在被索引的文档数
GET /_cat/nodes?v&h=name,indexingIndexCurrent
flush 刷入磁盘的文档数
GET /_cat/nodes?v&h=name,flushTotal
索引写入磁盘花费的时间
GET /_cat/nodes?v&h=name,flushTotalTime
5、JVM 信息查看
GET /_nodes/stats/jvm
节点及对应堆内存使用率查看
GET /_cat/nodes?v&h=name,heapPercent
6、pending 状态任务查看
GET /_cluster/pending_tasks
7、线程池和队列的查看
GET /_nodes/stats/thread_pool
8、fielddata 信息查看
fielddata 缓存信息查看
GET /_cat/nodes?v&h=name,fielddataMemory
9、类似 Mysql 查看进程列表
关于ES有什么方法可以看到哪些客户端和ES有交互,哪些客户端读写 es数据吗?
比如像 mysql show processlist 命令显示的一些信息一样。
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
推荐