一、基础环境安装配置(所有节点)
ES集群一般建议节点数量为8,3台data节点,3台master节点,2台client节点,如有更高的需求,按照比例调整节点数量即可,若建立很小的集群仅用于测试或者其他,3个节点即可,本文以3节点集群为例
1、安装java环境
链接:https://pan.baidu.com/s/1sDXtxyZcp1msGII2UhdoFQ
提取码:fis9
rpm -ivh jdk-8u92-linux-x64.rpm
配置java环境 vi /etc/profile,在最后添加以下配置:
#set java environment
export JAVA_HOME=/usr/java/jdk1.8.0_92/
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
加载刚才设置的变量
source /etc/profile
2、安装dstat插件(可选择安装,便于还原的数据量很大时,可通过机器实时数据传输观察还原进度)
链接:https://pan.baidu.com/s/1eHUbOfJGBab4imlxg9l7ig
提取码:qkg0
rpm -ivh --nodeps dstat-0.7.2-12.el7.noarch.rpm
二、安装配置ES(所有节点)
1、安装ES,并设置开机自启
链接:https://pan.baidu.com/s/1AgWnsauzNXSynwAV5UTDKg
提取码:9bm0
rpm -ivh elasticsearch-2.4.0.rpm
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
2、sshfs组件安装
链接:https://pan.baidu.com/s/1n78O1gGhLzaJntxVM7gCsQ
提取码:n89g
rpm -ivh fuse-libs-2.9.2-7.el7.x86_64.rpm
rpm -ivh fuse-sshfs-2.5-1.el7.rf.x86_64.rpm --force --nodeps
3、head iq hk插件安装
链接:https://pan.baidu.com/s/1bCJ64SEaAMNqpFgO7_DC6Q
提取码:fbaj
cp -rp /root/plugins/* /usr/share/elasticsearch/plugins/
4、ES配置
vim /etc/elasticsearch/elasticsearch.yml
配置信息:
角色区分:(如本节点为data节点,则node.master: false,node.data: true;如本节点为master节点,则node.master: true,node.data: false;如本集群为client节点,则node.master: false,node.data: false;本文集群因只有三个节点,则这三个节点既当data也当mater)
node.master: true
node.data: true
cluster.name: test_one #集群名(唯一)
node.name: node-118 #节点名称(每个节点不同)
path.data: /data1/es/data #数据存储目录,可配置多个,用“,”隔开
path.logs: /data1/es/logs #日志存储目录
path.repo: ["/data1/es/backups"]
network.host: 192.168.0.103 #本机IP
http.port: 9200 #访问端口
discovery.zen.ping.unicast.hosts: ["192.168.0.103", "192.168.0.104", "192.168.0.105"] #集群中master节点所在IP
cluster.routing.allocation.disk.watermark.low: "90%" #es所占数据盘容量的最大百分比
http.enabled: true #head插件是否可在浏览器中查看
http.cors.enabled: true
http.cors.allow-origin: "*"
bootstrap.memory_lock: true
discover.zen.ping_timeout: 120s #超时ping
discovery.zen.minimum_master_nodes: 1 #最少主节点数
#es.plugin.safe.open: true #safe插件可用
#es.plugin.safe.from: 1000
#es.plugin.safe.size: 1000
#es.plugin.safe.onlyWhiteListAllowDelete: true #safe插件白名单可删除修改
#es.plugin.safe.whiteList: ["192.168.0.103", "192.168.0.104"] #白名单IP,加哪台,哪台可做删除操作
vi /etc/sysconfig/elasticsearch
ES_HEAP_SIZE=32g #大小为内存一半
5、相关目录创建
mkdir -p /data1/es/{data,logs,backups}
chmod 777 -R /data1/es/*
集群搭建完毕,可通过head插件查看
http://IP:9200/_plugin/head/
三、数据备份还原
1、数据还原
建立连接,以需要还原的数据存放在/root/backup_darren/目录为例(所有节点均需建立连接,连接到需要还原的数据目录),建立连接之后可通过df -h命令查看
sshfs root@192.168.0.103:/root/backup_darren/ /data1/es/backups/ -o allow_other
创建仓储(以仓储名为cangku为例)(集群中任意节点)
curl -XPUT http://192.168.0.103:9200/_snapshot/cangku -d '{"type": "fs","settings":{"compress": true,"location": "/data1/es/backups"}}'
数据恢复(集群中任意节点)
curl -XPOST http://192.168.0.103:9200/_snapshot/cangku/test17101/_restore
可通过dstat命令查看机器数据传输或者head插件中查看数据还原进度
2、 备份
进行备份(cangku仓储名 cangku_2备份之后的名字)
curl -XPUT http://192.168.0.103:9200/_snapshot/cangku/cangku_2 -d '{"indices": "ld..stats,ld.log-","ignore_unavailable": true,"include_global_state": false}'
查看备份进度
curl -XGET http://192.168.0.103:9200/_snapshot/cangku/cangku_2/_status