Elasticsearch 索引容量分组工具使用指南

2023-10-20 12:00:09 浏览数 (1)

说明

本文描述问题及解决方法同样适用于 腾讯云 Elasticsearch Service(ES)

  • 本工具适用于社区版本为 5.x/6.x/7.x 的 elasticsearch,暂不支持其他社区版本
  • 本工具会根据索引主分片 size 自动计算出最佳分组,适用于解决在迁移时需要分批迁移的需求

工具适用场景

  • logstash 数据迁移
  • snapshot 数据迁移

1. 准备工作

● 服务器准备

准备一台可以访问到 ES 实例的服务器,其网络环境应该是互通的;

● ES 实例设置白名单

运行 IndexGrouping 工具所在主机,需要对 ES 有访问权限,ES 白名单添加允许 IndexGrouping 工具机访问。

2. 执行方式

2.1. 下载工具并赋予执行权限

代码语言:javascript复制
# 下载 ES_IndexGrouping
wget     
# 解压
unzip index_grouping.zip
# 赋予执行权限
cd index_grouping/index_grouping/linux
chmod  x index_grouping
# 查看help
./index_grouping --help

2.2. 参数说明

代码语言:javascript复制
--user        default: elastic
--password    default: 默认读取环境变量 export password='***'
--ip          default: 没有默认值,必要参数,不允许为空
--port        default: 9200
--pattern     default: 索引匹配规则,默认为 '*',支持逗号分隔
--instances   default: 分组数量。没有默认值,必要参数,不允许为空

2.3. 执行示例

示例 1

ES 实例没有密码认证,端口为9200,且所有索引都需要进行 分组,分组数为10个

代码语言:javascript复制
./index_grouping --ip 127.0.0.1 --instances 10

示例 2(推荐)

密码赋值和执行命令写成一条,中间无需分号

代码语言:javascript复制
password='123456' ./index_grouping --ip 127.0.0.1 --port 9200 --user logUser --pattern 'logstash-*2023.04.18*' --instances 10

示例 3

通过环境变量自动加载密码。

代码语言:javascript复制
export password='123456'
nohup ./index_grouping --ip 127.0.0.1 --user logUser --pattern '*2023.04.18*' --instances 10

示例 4

不安全,不推荐。这种参数传递方式可以在 ps -ef 中看到 --password 的明文密码

代码语言:javascript复制
./index_grouping --ip 127.0.0.1 --user logUser --password '123456' --pattern 'logstash-*2023.04.18*' --instances 10

3. 常见问题

3.1. 执行报错 Permission denied

代码语言:javascript复制
-bash: ./index_grouping: Permission denied

解答:

需要赋予执行权限,赋权方式:

代码语言:javascript复制
chmod  x index_grouping

0 人点赞