#amazon-web-services #elasticsearch #aws-elasticsearch
#amazon-web-services #elasticsearch #aws-elasticsearch
Вопрос:
У меня есть кластер Elasticsearch, работающий на AWS, где у меня есть снимок, подобный этому
{
"snapshot": "2016-07-13_165430",
"indices": [
"analytical-2016-06-15",
"analytical_2016-06-13",
"analytical_2016-07-13",
"operational-2016-06-15",
"operational_2016-06-13",
"operational_2016-07-13"
],
"state": "SUCCESS",
"start_time": "2016-10-10T23:54:33.705Z",
"start_time_in_millis": 1476143673705,
"end_time": "2016-10-10T23:54:44.893Z",
"end_time_in_millis": 1476143684893,
"duration_in_millis": 11188,
"failures": [],
"shards": {
"total": 30,
"failed": 0,
"successful": 30
}
},
{
"snapshot": "2016-07-13_165546",
"indices": [
"analytical-2016-06-15",
"analytical_2016-06-13",
"analytical_2016-07-13",
"operational-2016-06-15",
"operational_2016-06-13",
"operational_2016-07-13"
],
"state": "SUCCESS",
"start_time": "2016-10-10T23:55:48.808Z",
"start_time_in_millis": 1476143748808,
"end_time": "2016-10-10T23:55:52.420Z",
"end_time_in_millis": 1476143752420,
"duration_in_millis": 3612,
"failures": [],
"shards": {
"total": 30,
"failed": 0,
"successful": 30
}
}
Теперь все эти индексы работают онлайн с некоторыми другими индексами, такими как:
«аналитический-2016-06-15 «,
«аналитический_2016-06-13»,
«аналитический_2016-07-13»,
«операционный-2016-06-15 «,
«operational_2016-06-13»,
«operational_2016-07-13»
«operational_2016-09-13»
….
Мне нужно проверить, созданы ли резервные копии моих индексов или нет, и если они уже созданы, в каком моментальном снимке они существуют.
Ответ №1:
Я подозреваю, что @air (был) заинтересован в том, чтобы определить, какой из многих снимков содержит данный индекс; вставленный пример был всего лишь одним просмотром истории снимков. Когда вы делаете ежедневные снимки в течение определенного периода времени, а индексы были добавлены / удалены, поиск вручную будет сложной задачей.
Похоже, что нет вызова API для «найти мне все снимки, содержащие индекс operational_2021-06-10
«, но вот вариант автоматизации:
curl -XGET "http://cluster:9200/_snapshot/myrepo/*" |
jq -c '.snapshots[] | select(.indices | index("operational_2021-06-10")) | { snapshot }'
{"snapshot":"daily-snap-2021.06.10-hjmskkjsryyq82asmxiuva"}
{"snapshot":"daily-snap-2021.06.11-eayyiiort0cx97r_jscara"}
{"snapshot":"daily-snap-2021.06.12-rmrsbmsespgf0_czu721hw"}
{"snapshot":"daily-snap-2021.06.13-meeoachori61w5r3n3qzaq"}
{"snapshot":"daily-snap-2021.06.14-espbnhuprcckqylk3xltwq"}
{"snapshot":"daily-snap-2021.06.15-sbosayasthinaudxaqw3pa"}
Ответ №2:
Я смущен вашим вопросом, поскольку вы опубликовали snapshot json, который сообщает вам, какие именно индексы сохраняются в каждом моментальном снимке. Вам нужно просмотреть каждый моментальный снимок в каждом репозитории моментальных снимков (что, я думаю, вы уже знаете, как это сделать) и посмотреть на индексы в каждом моментальном снимке.
Это единственный способ AFAIK определить, какие индексы были скопированы, когда и с помощью каких снимков.
Вот документация к api snapshot: https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html