ELasticsearch Пост объемный на роли упругих xpack - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть кластер 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
  • ...

Более глобально, есть ли способ получить все данные индекса (индекса конфигурации), затем загрузить их обратно или поместить в другой кластер?

...