ES dump 的糟糕体验


  1. 导出的结构看起来使用API查的:

    {"_index":".kibana_1","_id":"config:2.11.0","_score":1,"_source":{"config":{"buildNum":929202301},"type":"config","references":[],"migrationVersion":{"config":"7.9.0"},"updated_at":"2024-01-13T04:59:17.184Z"}}  
    {"_index":"abc","_id":"1","_score":1,"_source":{"a":1}}
  2. 跨集群迁移,源端没认证的集群,输入命令写了用户名密码花式报错,会把本地路径给拼到URL里

Error: ENOENT: no such file or directory, open 'C:\Users\ec3\Desktop\333\'https:\admin:ZAQ!2wsx@vpc-ekslog-ezkqfpyofgio5wgfiiscivs3c4.cn-north-1.es.amazonaws.com.cn\*'' Emitted 'error' event on ReadStream instance at: at emitErrorNT (node:internal/streams/destroy:151:8) at emitErrorCloseNT (node:internal/streams/destroy:116:3) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { errno: -4058, code: 'ENOENT', syscall: 'open', path: "C:\\Users\\ec3\\Desktop\\333\\'https://username:password@host2/*'"
  1. 源端和目标端不能都是通配符

    迁移mapping会报错权限不够,即使admin 已经注册为主用户

elasticdump --input='https://host1/*' --output='https://username:password@host2/*' --type=mapping Sat, 13 Jan 2024 08:32:13 GMT | starting dump Sat, 13 Jan 2024 08:32:13 GMT | got 1 objects from source elasticsearch (offset: 0) Sat, 13 Jan 2024 08:32:13 GMT | Error Emitted => {"root_cause":[{"type":"security_exception","reason":"no permissions for [] and User [name=admin, backend_roles=[], requestedTenant=null]"}],"type":"security_exception","reason":"no permissions for [] and User [name=admin, backend_roles=[], requestedTenant=null]"} Sat, 13 Jan 2024 08:32:13 GMT | Error Emitted => {"root_cause":[{"type":"security_exception","reason":"no permissions for [] and User [name=admin, backend_roles=[], requestedTenant=null]"}],"type":"security_exception","reason":"no permissions for [] and User [name=admin, backend_roles=[], requestedTenant=null]"} Sat, 13 Jan 2024 08:32:13 GMT | Total Writes: 0 Sat, 13 Jan 2024 08:32:13 GMT | dump ended with error (get phase) => [object Object]

迁移data报错说索引不能用特殊字符:

elasticdump --input='https://host1/*' --output='https://username:password@host2/*' --type=data 报错 type: 'invalid_index_name_exception', reason: 'Invalid index name [*], must not contain the following characters [ , ", *, \\, <, |, ,, >, /, ?]',
  1. 目标端只能写一个索引,但是源端可以配置多个(不会报错, 简直就是把源索引都写到一个目标里

这逻辑完全像是用API拿100条:

Sat, 13 Jan 2024 09:33:10 GMT | got 100 objects from source elasticsearch (offset: 118400)
Sat, 13 Jan 2024 09:33:10 GMT | sent 100 objects to destination elasticsearch, wrote 100
Sat, 13 Jan 2024 09:33:10 GMT | got 100 objects from source elasticsearch (offset: 118500)

elasticdump --input='https://host1/*'   --output='https://username:password@host2/abcd' --type=data

文章作者: AWS Learner
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AWS Learner !
评论
  目录