“curl -iXGET "http://192.168.127.100:9200/_cluster/health?pretty=true"” 这样的命令可能你们在平常工做中会常常使用,它用来显示当前集群的健康程度,在返回结果中,包含当前集群有关的一些关键信息(文献2提到了一个使用“wait_for_status”的小技巧)。
ES提供了相似上面命令的集群API用于获取集群即时状态与信息。根据API的URI可分为几类API,以下图所示:
请注意,“_cluster”API与“_cat”API提供的功能大部分重复,不一样的是“_cat”API的输出结果非JSON格式,对于熟悉*nux的系统管理员来讲更加亲切。html
除了可以使用显式地HTTP rest请求访问ES集群,ES还提供了基于java的两种客户端开发包供ES用户在应用代码中调用:java
TC客户端是应用程序与ES集群之间的桥梁,它了解ES的API并可在发送请求时实现对集群节点访问的轮转(round-robin)。NC客户端则直接是ES集群的一部分,对索引、分片信息都更为了解,这样在发送请求时更为精准。
TC客户端实现了应用程序与ES集群的解耦,而NC客户端在效率上更有优点。应该根据适用场景来选择:当有多个客户端(如上千个)须要访问ES时,建议使用TC客户端,这样集群中不须要增长多个节点;若应用只须要少许的,且长时间与ES集群保持的链接,能够考虑使用NC客户端(注意这样应用程序也可能会绑定在集群中)。编程
系统运维是生产环境须要解决的首要问题。文献3强烈建议使用单独的监控集群。使用单独的监控集群:即便在生产集群故障的状况下仍可访问历史监控数据;而且不会影响生产集群的性能(典型的CQRS思路)。
ES使用采集器(Collectors)采集数据,并在生产集群中做一些配置,这些配置可控制采集数据的频率、配置超时以及在本地存储的监控数据保存周期。ES使用导出器(exporters)来发送监控数据。默认状况下,监控数据使用本地导出器( local exporter)存储在同一个生产集群中,若要将监控数据发送到监控集群,须要使用http导出器( http exporter),并配置好监控集群的地址与安全凭证(credential)。
在6.5和更高版本中,可使用Metricbeat来收集和发送关于Elasticsearch的数据。Metricbeat是须要单独下载和安装的工具(https://www.elastic.co/downloads/beats/metricbeat )。在这种方式下,Metricbeat可视为一个嵌入ES生产集群的运维agent。
下图展现了一个Elasticsearch使用对elastic栈的监控体系结构。json
信息系统的最大灾难恐怕就是数据丢失了。ES提供snapshot API,可将集群中的当前状态和数据保存到共享存储库(shared repository)中。这个备份过程是“智能的”:第一个快照保存数据的完整副本,全部后续快照将保存现有快照和新数据之间的增量。于是随着时间的推移,数据会随着快照数据的改变而增长和删除。后续备份由于传输数据减小,将大大加快速度。
要使用此功能,必须首先建立一个存储库来保存数据,可用的存储库能够为:本地文件系统(或挂载设备);HDFS;Amazon S3等。
使用以下命令创建本地文件系统名为“zk_backup”的快照(须要配置“path.repo”属性):centos
curl -iXPUT 'localhost:9200/_snapshot/zk_backup?pretty' -H "Content-type: application/json" -d' { "type": "fs", "settings": { "location": "/home/zk/es_backup" } } '
下面咱们定义第一个快照的名字为“snapshot_20190301” ,使用下面命令开始数据备份(备份集群中全部的索引,若备份指定索引请在消息体中指定):安全
curl -iXPUT 'localhost:9200/_snapshot/zk_backup/snapshot_20190301?pretty'
在本地目录“/home/zk/es_backup”能够看到生成以下文件:架构
[zk@centos-100 es_backup]$ ls -l 总用量 36 -rw-rw-r--. 1 zk zk 494 3月 1 17:03 index-0 -rw-rw-r--. 1 zk zk 8 3月 1 17:03 index.latest drwxrwxr-x. 7 zk zk 156 3月 1 17:03 indices -rw-rw-r--. 1 zk zk 21587 3月 1 17:03 meta--SwJ6wKQTKCgg5-3B3bL3w.dat -rw-rw-r--. 1 zk zk 276 3月 1 17:03 snap--SwJ6wKQTKCgg5-3B3bL3w.dat
使用快照恢复集群数据的命令也可简单,以下所示(若恢复指定索引请在消息体中指定):app
curl –iXPOST 'localhost:9200/_snapshot/zk_backup/snapshot_20190301/ _restore?pretty'
须要注意的是,若是当前集群中存在于快照同名的索引,系统会报错。解决方法是删除当前集群中同名索引,或使用rename模式修改恢复到集群中的索引名字(在消息体中定义)。运维
编程随笔-ElasticSearch知识导图(1):全景
编程随笔-ElasticSearch知识导图(2):分布式架构
编程随笔-ElasticSearch知识导图(3):映射
编程随笔-ElasticSearch知识导图(4):搜索
编程随笔-ElasticSearch知识导图(5):聚合
编程随笔-ElasticSearch知识导图(6):管理curl