Elasticsearch时光机

强大数据恢复机制

创建快照存储库

快照保存它创建的时间点上所有跟集群相关的数据,包括集群状态和索引的信息。至少在创建第一个快照之前,必须创建一个快照存储库。
每个存储库有名称区分,应该定义如下内容:

  • name:存储库的唯一名称
  • type:存储库的类型,可能值包括fs(共享文件系统中的存储库)、url(一个通过URL访问的只读存储库)。
  • settings:不同存储库类型需要的额外信息。
    创建一个文件系统存储库,集群中的每个节点都应该能访问这个目录。实例创建命令如下:

    前面的命令创建一个backup的库。将备份文件存储在由location属性指定的目录中。与此同时,本地文件系统中新建了backup_folder目录,但是没有任何内容。

    创建快照

    默认情况下,创建快照时,Elasticsearch取得所有的索引和集群设置。可以创建任意数量的快照,快照仅复制新的信息。这意味着Elasticsearch知道哪些段已经存储在存储库中,不会再保存它们。

创建快照,需要选择一个唯一的名称,命令如下:

curl -XPUT 'localhost:9200/_snapshot/backup/bckp1'

上面定义了一个名为bcp1的新快照,数据保存在定义的backup库中。以上命令成功后,快照就开始创建,如果想被创建以后才得到成功相应,可以添加wait_for_complete参数:

curl -XPUT 'localhost:9200/_snapshot/backup/bckp1?wait_for_complete=true&pretty'

额外参数

  • indices:想拍快照的索引名称
  • ignore_unavailable:默认是true,设置为false时,意味着如果indices参数指定的不存在的索引,命令将失败。
  • include_global_state:默认是true,指集群的状态也被写入快照中。
  • partial:快照的成功与否取决于所有分片的可能性,任何一个分片不可用,快照都将失败。设置partial为true时,Elasticsearch保存可用分片的信息,忽略丢失的分片。

    还原快照

    从backup存储库中还原一个名为bckp1的快照,执行下面命令:

    curl -XPOST 'localhost:9200/_snapshot/backup/bckp1/_restore'

执行这个命令过程中,如果索引已经存在而且未关闭,命令将失败。这种情况下可以还原某些索引:

curl -XPOST 'localhost:9200/_snapshot/backup/bckp1/_restore?pretty -d {"include":"c*"}'

上述命令只还原以字母c开头的索引,还可以包含下列参数:

清理:删除旧的快照

curl -XDELETE 'localhost:9200/_snapshot/backup/bckp1?pretty'

监控集群状态和健康度

Elasticsearch提供了非常详细的信息,使得能够监控单个节点集群

集群健康度API

最基本的健康度API,得到整个集群的信息:

curl 'localhost:9200/_cluster/health?pretty'

返回的响应如下:

集群的状态有green(表示分片和副本都可用)yellow(表示部分副本不可用)red(至少一个主分片没有分配)。

curl 'localhost:9200/_cluster/health/library,map?pretty'

以上命令仅检查两个索引的健康度。
控制信息细节
Elasticsearch允许指定一个特征的level参数,把它指定为cluster(默认)、indices或shards。
额外的参数

  • timeout:控制命令执行的最长时间,默认是30s
  • wait_for_status:返回响应时,集群应该处于什么状态。可以取:green,yellow和red。如果指定状态是实际不符,响应会超时失败。
  • wait_for_nodes:返回响应时需要多少节点可用(或者达到timeout时间)
  • wait_for_relocationg_shard:默认不指定,告诉Elasticsearch应该重定位多少分片

索引统计API

Elasticsearch使用_stats端点上的索引统计API,可以得到关于集群中索引的各种信息。可以发送命令得到所有索引的信息(使用纯_stats端点),或得到某特定索引的信息,或者一次得到几个索引的信息。

curl -XPOST 'localhost:9200/library,map/_stats?pretty'


docs
显示索引文档的信息

"docs":{
"count":4,
"deleted":0
}

count指文档的数目,从索引中删除文档时,并不是立刻删除,而是做标记,等合并过程中删除,被标记的删除文档的数目在deleted属性中。

store
提供了关于存储的信息

"store":{
"size_in_bytes":6003,
"throttle_time_in_millis":0
}

主要信息是关于这个索引的大小。还有调节统计值,在系统有I/O性能问题,段合并过程中内部操作有限制时,这个信息很有用。

indexing, get和search
响应中的indexing,get,search节点提供了数据操纵的相关信息:索引删除操作,实时的get和搜索。

可以看到这些统计具有类似结构:请求花费的总时间,请求数,可以用总时间计算单个查询的平均时间。

额外信息
此外,Elasticsearch提供了下列信息。

状态API

另一个得到关于索引信息的方法,使用_status端点的状态API,返回描述了可用的分片,包含:哪个分片被认为是主分片,它被分配到哪个节点,被重新分配到了哪个节点,分片的状态,事务日志,合并过程以及刷新和清理统计。

节点信息API

请求发送到_nodes端点。
可以获取单个或特定几个节点的信息:

该API还允许使用如下方式一次性获得几个节点的信息:

  • 模式: 例如,_nodes/192.168.1.*或_nodes/P*
  • 节点枚举:例如_nodes/Pluse,Slab
  • 模式与节点枚举:例如,_nodes/P*, S*

默认情况下,对节点API的请求将返回关于节点的基本信息,比如名称、标示符、地址。通过添加额外参数,可以获取其他信息

curl -XPOST 'localhost:9200/_nodes/Pluse/os, jvm, plugins?pretty'

节点统计API

节点信息API提供环境信息,节点统计API告诉我们集群工作时发生过什么。发送命令的端口是/_nodes/stats。

集群状态API

允许获取整个集群的信息,也可以通过在请求中添加local=true,限制返回本地节点信息。

curl -XPOST 'localhost:9200/_cluster/state?pretty'

不过,也可以把提供信息限定为特定的度量,以及特定的索引

curl -XPOST 'localhost:9200/_cluster/state/nodes/map,library?pretty'

可以使用下列度量

挂起任务API

索引段API

cat API

上面API返回的信息都是JSON格式,对人来说不是很友好,Elasticsearch提供了一个友好API:cat API。向_cat REST端点发送一个请求,紧跟着下面的一个选项:

  • aliases: 返回有关别名的信息
  • allocation:返回分片分配和磁盘使用的信息
  • count:为所有索引或单个索引返回文档个数的信息
  • health:集群健康度信息
  • indices:返回所有索引或单个索引的信息
  • master:当前主节点信息
  • nodes:集群拓扑相关信息
  • pending_tasks:正在等待执行的任务信息
  • recovery:还原过程的视图
  • thread_pool:返回集群范围内线程池的统计信息
  • shards:关于分片的信息

curl -XGET 'localhost:9200/_cat/shards?v'


限制返回信息

  • aliases: 请求中添加别名,限定获取特定的别名
  • count:添加感兴趣的索引名字,限定获取特定索引的信息
  • indices:同count一样,特定索引
  • shards:同count一样,特定索引

Elasticsearch--集群管理_时光机&监控的更多相关文章

  1. Elasticsearch集群 管理

    第7章 深入Elasticsearch集群 启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点.如 果找到主节点,该节点加入一个已经组成了的集群:如果没有找到, ...

  2. elasticsearch 集群管理(集群规划、集群搭建、集群管理)

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

  3. elasticsearch集群管理工具head插件(转)

    elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es 插件安装方法1: 1.elasticsearc ...

  4. Elasticsearch集群管理工具head插件安装

    Elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es.或直接下载源码,在本地打开index.html ...

  5. Kubernetes容器集群管理环境 - Prometheus监控篇

    一.Prometheus介绍之前已经详细介绍了Kubernetes集群部署篇,今天这里重点说下Kubernetes监控方案-Prometheus+Grafana.Prometheus(普罗米修斯)是一 ...

  6. 大规模Elasticsearch集群管理心得

    转载:http://elasticsearch.cn/article/110 ElasticSearch目前在互联网公司主要用于两种应用场景,其一是用于构建业务的搜索功能模块且多是垂直领域的搜索,数据 ...

  7. 050.集群管理-Prometheus+Grafana监控方案

    一 Prometheus概述 1.1 Prometheus简介 Prometheus是由SoundCloud公司开发的开源监控系统,是继Kubernetes之后CNCF第2个毕业的项目,在容器和微服务 ...

  8. Elasticsearch集群管理

    ES通过设置[节点的名字]和[集群的名字],就能自动的组织相同集群名字的节点加入到集群中,并使很多的技术对用户透明化. 如果用户想要管理查看集群的状态,可以通过一些REST API来实现. 其他的ES ...

  9. Elasticsearch集群管理之添加、删除节点

    1.问题抛出 1.1 新增节点问题 我的群集具有黄色运行状况,因为它只有一个节点,因此副本保持未分配状态,我想要添加一个节点,该怎么弄? 1.2 删除节点问题 假设集群中有5个节点,我必须在运行时删除 ...

随机推荐

  1. dotnet new 命令

    如果想知道这个命令的详细用法,可以在打完命令之后,在输入一个" --help"即可 $ dotnet new --help.NET Initializer Usage: dotne ...

  2. Educational Codeforces Round 17 D. Maximum path DP

    题目链接:http://codeforces.com/contest/762/problem/D 多多分析状态:这个很明了 #include<bits/stdc++.h> using na ...

  3. 使用jdbc对mysql进行增删改查

    建立数据库和数据表 CREATE DATABASE `mysqlTest` DEFAULT CHARACTER SET utf8; CREATE TABLE `test` ( `id` ) NOT N ...

  4. 问题:IIS部署 MVC项目 (autofac) 错误解决

    http://www.cnblogs.com/yelaiju/p/3375168.html Could not load file or assembly 'System.Core, Version= ...

  5. Tomcat最多支持并发多少用户?

    当一个进程有 500 个线程在跑的话,那性能已经是很低很低了.Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大.当某个应用拥有 250 个以上并发 ...

  6. (21) java web的struts2框架的使用-Action实现的三种方式

    上一篇介绍了struts使用的四个步骤. 其中在开发action的时候,可以有三种实现方式: 1,写一个类,继承与ActionSupport 2,写一个类,实现Action接口 3,写一个类,实现业务 ...

  7. XMU 1071 圣斗士黄金十二宫(七)银河星爆 【计算几何】

    1071: 圣斗士黄金十二宫(七)银河星爆 Time Limit: 500 MS  Memory Limit: 64 MBSubmit: 193  Solved: 10[Submit][Status] ...

  8. caioj1270: 概率期望值1:小象涂色

    DP深似海,得其得天下.——题记 叕叕叕叕叕叕叕叕叕叕叕(第∞次学DP内容)被D飞了,真的被DP(pa)了.这次D我的是大叫着第二题比较难(小象涂色傻b题)的Mocha(zzz)大佬,表示搞个概率DP ...

  9. Junit常用操作

    断言方法: public static void assertEquals(Object[] expected, Object[] actual) // 测试a是否等于b public static ...

  10. uCos-III移植到STM32F10x

    最近在百度上看了uCOS-III 的介绍后,诸多功能有很大的提升和改进,感觉有必要升级一下开发环境.百度介绍:http://baike.baidu.com/view/8531313.htm 环境: S ...