注意检查elasticdump 版本是否兼容elk,5.0及以上版本的elk需要使用elasticdump 3.0以上的版本才能兼容,可使用elasticdump --help
检查版本。
1、安装elasticdump
yum install -y epel-release
yum install -y npm
npm config set strict-ssl false #设置npm 安装以http连接
npm install elasticdump -g
如果运行elasticdump命令时出现如下报错,需要对nodejs进行升级:
[root@localhost ~]# elasticdump --help
/usr/lib/node_modules/elasticdump/bin/elasticdump:60
for (var i of jsonParsedOpts) {
^^
SyntaxError: Unexpected identifier
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
.....
#升级nodejs
[root@localhost ~]# npm install -g n
[root@localhost ~]# n latest #或者安装稳定版n stable
install : node-v10.8.0
mkdir : /usr/local/n/versions/node/10.8.0
fetch : https://nodejs.org/dist/v10.8.0/node-v10.8.0-linux-x64.tar.gz
######################################################################## 100.0%
installed : v10.8.0
2、通过elasticdump备份索引数据
#备份为json文件
#input 指定elastic的访问地址格式为:{protocol}://{host}:{port}/{index},
[root@localhost elkbackup]# elasticdump --input=http://elastic:123456@10.10.10.11:9200/nginx-access-2018.08* --output=/elkbackup/nginx-access-2018.08.json --type=data --headers='{"content-type": "application/json"}'
#直接备份压缩数据
[root@nagios elkbackup]# elasticdump --input=http://elastic:123456@10.10.10.11:9200/nginx-access-2018.08* --output=$ --headers='{"content-type": "application/json"}' | gzip > /elkbackup/nginx-access-2018.08.json.gz
3、通过elasticdump还原索引数据
[root@nagios elkbackup]# elasticdump --output=http://elastic:123456@10.10.10.11:9200 --input=/elkbackup/nginx-access-2018.08.json --type=data --headers='{"content-type": "application/json"}'