У меня есть кластер Elastic с включенным xpack.
Я хотел бы сделать резервную копию всех созданных ролей xpack:
GET _xpack/security/role
=> Я получаю большой JSON, например:
{
"kibana_dashboard_only_user": {
"cluster": [],
"indices": [
{
"names": [
".kibana*"
],
"privileges": [
"read",
"view_index_metadata"
]
}
],
"run_as": [],
"metadata": {
"_reserved": true
},
"transient_metadata": {
"enabled": true
}
},
"watcher_admin": {
"cluster": [
"manage_watcher"
],
"indices": [
{
"names": [
".watches",
".triggered_watches",
".watcher-history-*"
],
"privileges": [
"read"
]
}
],
"run_as": [],
"metadata": {
"_reserved": true
},
"transient_metadata": {
"enabled": true
}
},
....
}
А теперь я хотел бы положить его обратно в кластер (или другой).Я не могу просто PUT
это _xpack/security/role
.Если я правильно понимаю, я должен использовать объем:
$ curl --user elastic:password https://elastic:9200/_xpack/security/_bulk?pretty -XPOST -H 'Content-Type: application/json' -d '
{"index":{"_index": "_xpack/security/role"}}
{"ROOOOLE" : {"cluster" : [ ],"indices" : [{"names" : [".kibana*"],"privileges" : ["read","view_index_metadata"]}],"run_as" : [ ],"metadata" : {"_reserved" : true},"transient_metadata" : {"enabled" : true}}}
'
Но я получаю ошибку:
{
"took" : 3,
"errors" : true,
"items" : [
{
"index" : {
"_index" : "_xpack/security/role",
"_type" : "security",
"_id" : null,
"status" : 400,
"error" : {
"type" : "invalid_index_name_exception",
"reason" : "Invalid index name [_xpack/security/role], must not contain the following characters [ , \", *, \\, <, |, ,, >, /, ?]",
"index_uuid" : "_na_",
"index" : "_xpack/security/role"
}
}
}
]
}
Есть ли способ сделать это легко?Или мне нужно разобрать JSON и поставить каждую роль по очереди:
- _xpack / security / role / rolexxx
- _xpack / security / role / roleyyy
- ...
Более глобально, есть ли способ получить все данные индекса (индекса конфигурации), затем загрузить их обратно или поместить в другой кластер?