准备一台可以访问到 ES 实例的服务器,其网络环境应该是互通的;
工具适用场景
- logstash 数据迁移
- snapshot 数据迁移
1. 准备工作
● 服务器准备
准备一台可以访问到 ES 实例的服务器,其网络环境应该是互通的;
● ES 实例设置白名单
运行 IndexGrouping 工具所在主机,需要对 ES 有访问权限,ES 白名单添加允许 IndexGrouping 工具机访问。
2. 执行方式
2.1. 下载工具并赋予执行权限
# 下载 ES_IndexGrouping
wget
# 解压
unzip index_grouping.zip
# 赋予执行权限
cd index_grouping/index_grouping/linux
chmod +x index_grouping
# 查看help
./index_grouping --help
2.2. 参数说明
--user default: elastic
--password default: 默认读取环境变量 export password='***'
--ip default: 没有默认值,必要参数,不允许为空
--port default: 9200
--pattern default: 索引匹配规则,默认为 '*',支持逗号分隔
--instances default: 分组数量。没有默认值,必要参数,不允许为空
2.3. 执行示例
示例 1
ES 实例没有密码认证,端口为9200,且所有索引都需要进行 分组,分组数为10个
./index_grouping --ip 127.0.0.1 --instances 10
示例 2(推荐)
密码赋值和执行命令写成一条,中间无需分号
password='123456' ./index_grouping --ip 127.0.0.1 --port 9200 --user logUser --pattern 'logstash-*2023.04.18*' --instances 10
示例 3
通过环境变量自动加载密码。
export password='123456'
nohup ./index_grouping --ip 127.0.0.1 --user logUser --pattern '*2023.04.18*' --instances 10
示例 4
不安全,不推荐。这种参数传递方式可以在 ps -ef 中看到 --password 的明文密码
./index_grouping --ip 127.0.0.1 --user logUser --password '123456' --pattern 'logstash-*2023.04.18*' --instances 10
3. 常见问题
3.1. 执行报错 Permission denied
-bash: ./index_grouping: Permission denied
解答:
需要赋予执行权限,赋权方式:
chmod +x index_grouping