最近线上的ES集群埋点数据量暴涨,机器的内存磁盘空间眼看就要炸了。但这部分数据又是冷数据,现时不需要查询,但又不能直接删除,需保留日后数据分析。由于前期急于上线,业务代码没有合理分配索引按月切割,全年数据丢进单个索引,导致单索引数据暴涨到100 g +
为解决磁盘空间的瓶颈,针对不常用的分片数据,做快照冷存储。
应用场景:
三节点的ES集群:192.168.85.39,192.168.85.36,192.168.85.33
找一台有磁盘空间的服务器,搭建NFS,用于共享目录挂载。已192.168.85.63为例
应用场景:ES集群三节点192.168.85.39,192.168.85.33,192.168.85.36
NFS存储服务器:192.168.5.63
一。搭建NFS共享存储服务器(5.63上操作)
<代码> 1。安装nfs服务 yum安装- y nfs-utils 2. 开机启动 systemctl启用rpcbind.service systemctl启用nfs-server.service 3.分别启动rpcbind和nfs服务: systemctl开始rpcbind.service systemctl开始nfs-server.service 4.firewalld防火墙针对es节点内网ip开放NFS服务监听端口: 2049 20048 111 udp端口tcp端口tcp和udp全开 5.创建本地数据共享目录并设置权限 mkdir/数据/db/elasticsearch/备份 chmod 777/数据/db/elasticsearch/备份 乔恩- r elasticsearch: elasticsearch/数据/db/elasticsearch/备份 6 .配置NFS目录访问权限 vim等/出口/数据/db/elasticsearch/备份192.168.85.39 (rw,同步,all_squash) 192.168.85.33 (rw,同步,all_squash) 192.168.85.36 (rw,同步,all_squash) 出口- r//生效 出口- s//查看 es 7.节点上安装客户端(85.39 85.33 85.36上操作) 百胜是安装showmount 开启服务: systemctl启用rpcbind.service systemctl开始rpcbind.service 8。创建挂载目录(85.39 85.33 85.36上分别操作) mkdir/mnt/elasticsearch chmod 777 elasticsearch 挂载共享目录到本地 挂载nfs - t 192.168.5.63:/数据/db/elasticsearch/备份/mnt/elasticsearch df - h//查看确认是否成功挂载代码>
二。创建快照仓库
<代码>旋度-XPUT http://192.168.85.39:9002 _snapshot/备份- d ' { “类型”:“f”, "设置":{ “位置”:“/mnt/elasticsearch/备份”, “压缩”:没错, “max_snapshot_bytes_per_sec”:“50 mb”, “max_restore_bytes_per_sec”:“50 mb” } }' 备注说明: 1 .可在es任一节点操作 2.备份:指定仓库名称为备份,生成的备份文件存放路径为/mnt/elasticsearch/备份 3.max_snapshot_bytes_per_sec, max_restore_bytes_per_sec限定备份和恢复的数据字节内容大小为50 mb, 为了防止磁盘IO过高。数值越大,备份恢复速度越快.50mb为推荐值,IO性能高的机器可不限制 旋度-XPUT http://192.168.85.39:9002 _snapshot/备份- d ' { “类型”:“f”, "设置":{ “位置”:“/mnt/elasticsearch/备份”, “压缩”:真的 } }' 代码>
三。创建快照备份
1。针对全索引快照备份
<代码>旋度-XPUT 192.168.85.39:9002/_snapshot/备份/snapshot_all ?漂亮 备注说明: 1 .指定备份到仓库备份 2.快照名称为snapshot_all 代码>
2。针对指定某个单独索引快照备份(为了区分不同索引备份目录,建议仓库用索引名称命名)
<代码>单独快照备份user_event_201810这个索引 2.1先针对索引创建仓库 旋度-XPUT http://192.168.85.39:9002 _snapshot/user_event_201810 - d ' { “类型”:“f”, "设置":{ “位置”:“/mnt/elasticsearch/user_event_201810”, “压缩”:没错, “max_snapshot_bytes_per_sec”:“50 mb”, “max_restore_bytes_per_sec”:“50 mb” } }' 2.2快照备份索引user_event_201810操作 旋度-XPUT http://192.168.85.39:9002 _snapshot/user_event_201810/user_event_201810吗?wait_for_completion=true - d ' { “指数”:“user_event_201810”, “ignore_unavailable”:“真正的”, “include_global_state”:假的 }' 备注说明: 1 .创建的仓库名为user_event_201810 2 .存放的文件目录为/mnt/elasticsearch/user_event_201810 3.指数:指定索引源为user_event_201810 4 .增加? wait_for_completion=true参数是为了执行完成返回结果状态代码>
四。恢复快照备份数据到es集群
1。针对全索引快照备份的恢复操作
elasticsearch索引数据快照备份和恢复