博客地址:http://www.moonxy.com

一、前言

集群搭建好以后,在日常中就要对集群的使用情况进行监控,对于一个多节点集群,由于网络连接问题,出现宕机、脑裂等异常情况都是有可能发生的。Elasticsearch 提供了 Cat APICluster API,可以方便地获取集群的健康情况、集群状态、节点状态、索引统计等信息。

二、集群 API

2.1 Cat API

cat API 官方参考文档:cat APIs

JSON is great… for computers. Even if it’s pretty-printed, trying to find relationships in the data is tedious. Human eyes, especially when looking at an ssh terminal, need compact and aligned text. The cat API aims to meet this need.

All the cat commands accept a query string parameter help to see all the headers and info they provide, and the /_cat command alone lists all the available commands.

包括如下 API:

常用的主要有:cat allocation、cat count、cat health、cat master、cat nodes、cat plugins、cat shards 和 cat templates 等,下面主要讲解这几个。

1)cat allocation

cat allocation 命令可以查看每个节点分片的分配数量以及它们所使用的硬盘空间大小。

GET /_cat/allocation?v

返回结果如下:

2)cat count

cat count 命令可以快速查询整个集群或者单个索引的文档数量(count)。

GET /_cat/count?v

返回结果如下:

查看单个索引的文档数量:

GET /_cat/count/books?v

返回结果如下:

3)cat health

cat health 命令用于显示集群的健康信息。

GET /_cat/health?v

返回结果如下:

4)cat master

显示出 master节点的节点 ID、绑定的 IP 和节点名。

GET /_cat/master?v

返回结果如下:

5)cat nodes

查看集群的拓扑结构。

GET /_cat/nodes?v

返回结果如下:

6)cat  plugins

用于查看每一个节点所运行插件的信息。

GET /_cat/plugins?v

返回结果如下:

7)cat shards

用于查看节点包含的分片信息,包含一个分片是主分片还是一个副本分片、文档的数量、硬盘上占用的字节数、节点所在的位置等信息。

GET /_cat/shards/books?v

返回结果如下:

注意,分片序号从 0 开始,prirep 这一列中,p 代表主分片(primary),r 代表副本分片(replicate)。

8)cat templates

用于查看集群中的模板。

GET /_cat/templates?v

如果不存在模板,则返回为空,参数 v 表示显示表头。

2.2 Cluster API

Cluster APIs 官方参考文档:Cluster APIs

包括如下 API:

常用的有 Cluster Health、Cluster State、Cluster Stats、Nodes Stats 和 Nodes Info 等,下面主要讲解这几个。

1)Cluster Health

查看集群的健康信息:

GET _cluster/health

返回结果如下:

{
"cluster_name": "Banon",
"status": "green",
"timed_out": false,
"number_of_nodes": 2,
"number_of_data_nodes": 2,
"active_primary_shards": 34,
"active_shards": 68,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0,
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 100
}

参数说明:

cluster_name:集群名称;

status:集群的健康状态;

timed_out:是否超时;

number_of_nodes:节点数,包括 master 节点和 data 节点;

number_of_data_nodes:data 节点数;

active_primary_shards:活动的主分片;

active_shards:所有活动的分片数,包括主分片和副本分片;

relocating_shards:正在发生迁移的分片;

initializing_shards:正在初始化的分片;

unassigned_shards:没有被分配的分片;

delayed_unassigned_shards:延迟未被分配的分片;

number_of_pending_tasks:master 节点任务队列中的任务数;

number_of_in_flight_fetch:正在进行迁移的分片数量;

task_max_waiting_in_queue_millis:队列中任务的最大等待时间;

active_shards_percent_as_number:活动分片的百分比;

上面的命令用于获取整个集群的健康信息,也可以增加参数(索引名称),获取一个或多个索引的健康信息,如下:

green所有的主分片和副本分片都可用

yellow所有的主分片可用,但存在不可用的副本分片

red存在不可用的主分片

2)Cluster State

集群状态 API 可以对整个集群的信息进行一个全面的了解,包括集群信息、集群中每个节点的信息、元数据、路由表等。

GET _cluster/state

返回如下结果:

如上图 nodes 所示,表示此集群有两个节点,红色方框中分别为两个节点的 id(nodeId)。

3)Cluster Stats

集群统计 API 用于从集群中获取各种统计信息。主要包括两部分,一部分是索引层面,包含分片数、存储大小、内存使用情况等指标,另一部分是节点层面,包含节点数量、节点角色、操作系统、jvm 版本、内存、CPU、安装的插件等指标。

GET _cluster/stats

4)Nodes Stats

Cluster Nodes Stats(集群节点统计信息)API 可以获取集群中一个或者多个节点的统计信息。

GET _nodes/stats

返回结果如下:

由于内容太长,所以对每个节点进行了折叠。

也可以根据 nodeId 获取指定节点的统计信息:

GET _nodes/6n3douACShiPmlA9j2soBw,XwSysHCaQdmRAyp2D6NHLw/stats

当然也可以通过节点名称来获取节点的统计信息:

GET _nodes/masternode/stats

5)Nodes Info

Cluster Nodes Info API 可以获取集群中一个或多个节点的信息,包括设置、操作系统、虚拟机、线程池等信息。

GET _nodes
GET _nodes/masternode
GET _nodes/os,jvm

os、jvm 表示只查看节点的 os 和 jvm 信息。

三、监控插件

Bigdesk 监控插件是 Elasticsearch 的一个集群监控工具,可以通过它来查看 ES 集群的各种状态,比如:CPU、内存使用情况、JVM 信息、索引信息、搜索情况、HTTP 连接数、磁盘系统信息等。

Bigdesk 托管在 GitHub 上,项目地址:https://github.com/hlstudio/bigdesk。下载代码后,进入 bigdesk-master/_site 目录下,打开 index.html,在 ES node REST endpoint 输入框中输入 Elastsearch 集群节点的连接地址和端口即可。

界面如下所示:

主要包括如下五部分:

Summary、Indices、Thread Pools、OS & JVM & Process & Transport、File system

Elastic Stack 笔记(九)Elasticsearch5.6 集群管理的更多相关文章

  1. elasticsearch5.0集群+kibana5.0+head插件插件的安装

    elasticsearch5.0集群+kibana5.0+head插件插件的安装 es集群的规划: 两台16核64G内存的服务器: yunva_etl_es1  ip:1.1.1.1 u04es01. ...

  2. 《Apache Kafka实战》读书笔记-调优Kafka集群

    <Apache Kafka实战>读书笔记-调优Kafka集群 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.确定调优目标 1>.常见的非功能性要求 一.性能( ...

  3. Docker Swarm Mode 学习笔记(创建 Swarm 集群)

    Swarm 集群由管理节点与工作节点组成. 初始化集群 使用命令:docker swarm init 如果你的 Docker 主机有多个网卡, 拥有多个 IP 地址, 必须使用 --advertise ...

  4. 学习笔记(4)——实验室集群管理结点IP配置

    经过验证,集群管理结点mgt的IP配置应为如下所示: [root@mgt zmq]# ifconfig//外部网卡 eth0 Link encap:Ethernet HWaddr 5C:F3:FC:E ...

  5. Spark学习笔记5:Spark集群架构

    Spark的一大好处就是可以通过增加机器数量并使用集群模式运行,来扩展计算能力.Spark可以在各种各样的集群管理器(Hadoop YARN , Apache Mesos , 还有Spark自带的独立 ...

  6. Redis学习笔记(二):Redis集群

    集群通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.   1.节点 一个节点就是一个运行在集群模式下的Redis服务器.启动Redis服务器时,通过判断cluster-enabl ...

  7. kubernetes实战(九):k8s集群动态存储管理GlusterFS及使用Heketi扩容GlusterFS集群

    1.准备工作 所有节点安装GFS客户端 yum install glusterfs glusterfs-fuse -y 如果不是所有节点要部署GFS管理服务,就在需要部署的节点上打上标签 [root@ ...

  8. Redis学习笔记(十七) 集群(上)

    Redis集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移操作. 一个Redis集群通常由多个节点组成,在刚开始的时候每个节点都是相互独立的,他们处于一个只包含 ...

  9. elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)

    一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...

随机推荐

  1. 入门MySQL——用户与权限

    前言:  前面几篇文章为大家介绍了各种SQL语法的使用,本篇文章将主要介绍MySQL用户及权限相关知识,如果你不是DBA的话可能平时用的不多,但是了解下也是好处多多. 1.创建用户 官方推荐创建语法为 ...

  2. SpringBoot 配置 AOP 打印日志

    在项目开发中,日志系统是必不可少的,用AOP在Web的请求做入参和出参的参数打印,同时对异常进行日志打印,避免重复的手写日志,完整案例见文末源码. 一.Spring AOP AOP(Aspect-Or ...

  3. SpringBoot 动态配置邮箱发件人

    SpringBoot 动态配置邮箱发件人 现在的消息模块少不了邮件发送.短信发送和手机推送的功能.邮件发送的功能历史最为悠久,也算的上烂大街的功能.一般在配置文件中设置好邮箱地址.账号.密码和发件服务 ...

  4. 《Java 8 in Action》Chapter 8:重构、测试和调试

    我们会介绍几种方法,帮助你重构代码,以适配使用Lambda表达式,让你的代码具备更好的可读性和灵活性.除此之外,我们还会讨论目前比较流行的几种面向对象的设计模式, 包括策略模式.模板方法模式.观察者模 ...

  5. NanoPi NEO2 学习笔记 1:安装系统、首次开机和一些设置

    初识NEO2 前几天搞到了一块NanoPi NEO2,A53的核心,512M内存,一个千兆网口,非常小的体积,质量也不错,非常满意,140元的价格可以买到这样一块ARM开发板也是非常划算了,非常适合低 ...

  6. unity编辑器扩展_01(在工具栏中创建一个按钮)

    代码: [MenuItem("Tools/Test",false,1)]    static void Test()    {        Debug.Log("tes ...

  7. c3p0,dbcp与druid 三大连接池的区别[转]

    说到druid,这个是在开源中国开源项目中看到的,说是比较好的数据连接池.于是乎就看看.扯淡就到这. 下面就讲讲用的比较多的数据库连接池.(其实我最先接触的是dbcp这个) 1)DBCP DBCP是一 ...

  8. ThreadLocal可以解决并发问题吗?

    前言 到底什么是线程的不安全?为什么会存在线程的不安全?线程的不安全其实就是多个线程并发的去操作同一共享变量没用做同步所产生意料之外的结果.那是如何体现出来的呢?我们看下面的一个非常经典的例子:两个操 ...

  9. 前端架构师亲述:前端工程师成长之路的 N 问 及 回答

    问题回答者:黄轶,目前就职于 Zoom 公司担任前端架构师,曾就职于滴滴和百度. 1. 前端开发 问题 大佬,能分享下学习路径么,感觉天天忙着开发业务,但是能力好像没有太大提升,不知道该怎么充实自己 ...

  10. docker使用nginx反向代理springboot

    docker运行nginx容器 快速安装运行 docker-hub文档 https://hub.docker.com/_/nginx 拉取nginx1.6.0 docker pull nginx:1. ...