Amazon Elasticsearch Service를 업그레이드한 후 발생하는 "Unable to find saved objects" 오류를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 4월 10일

최근에 Amazon Elasticsearch Service(Amazon ES) 클러스터를 버전 7.1로 업그레이드했습니다. 그런데 Kibana에서 "Unable to find saved objects" 오류가 표시되었습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

Amazon ES 사용자들은 Amazon ES 버전 7.1로 업그레이드한 후에 가끔 400 Bad Request 오류를 경험할 수 있습니다. 업그레이드에 따라 사용자가 Kibana에서 저장된 객체를 찾을 수 없는 문제가 발생할 수 있습니다. 또한 .kibana 인덱스는 Kibana 버전 7.x 사용 시 바로 복원할 수 없습니다. 대신, .kibana 인덱스를 별칭으로 사용해야 합니다. 예를 들어 버전 7.1로 업그레이드하는 경우 Kibana는 .kibana_1 인덱스로 마이그레이션한 후에 .kibana를 인덱스 별칭으로 설정합니다.

해결 방법

Kibana에서 저장된 객체를 찾아서 복원하려면 다음 단계를 수행합니다.

1.    다음 매핑을 사용하여 .kibana_1을 생성합니다.

PUT /.kibana_1
{                                                            
    "aliases": {},
    "mappings": {
      "properties": {
        "config": {
          "properties": {
            "buildNum": {
              "type": "long"
            }
          }
        },
        "index-pattern": {
          "properties": {
            "fields": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            },
            "timeFieldName": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            },
            "title": {
              "type": "text",
              "fields": {
                "keyword": {
                  "type": "keyword",
                  "ignore_above": 256
                }
              }
            }
          }
        },
        "type": {
          "type": "keyword",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "updated_at": {
          "type": "date"
        }
      }
    },
    "settings": {
      "index": {
        "number_of_shards": "1",
        "number_of_replicas": "1"
      }
    }
}

2.    그런 다음, .kibana_backup 인덱스를 생성합니다.

PUT .kibana_backup

3.    reindex API를 사용하여 .kibana 인덱스의 데이터를 .kibana_backup 인덱스에 복사합니다. 이때 다음 쿼리를 사용합니다.

POST _reindex
{
  "source": {
    "index": ".kibana"
  },
  "dest": {
    "index": ".kibana_backup"
  }
}

이 쿼리는 .kibana_backup 인덱스의 데이터를 복사 및 저장합니다.

4.    .kibana 인덱스를 삭제합니다.

DELETE .kibana

5.    .kibana 별칭을 생성하고 .kibana _1 인덱스를 가리킵니다.

POST /_aliases
{
    "actions" : [
        { "add" : { "index" : ".kibana_1", "alias" : ".kibana" } }
    ]
}

6.    reindex API를 사용하여 .kibana_backup 인덱스의 데이터를 새로 생성된 .kibana_1 인덱스로 복사합니다.  

POST _reindex
{
  "source": {
    "index": ".kibana_backup"
  },
  "dest": {
    "index": ".kibana_1"
  }
}

이제 .kibana_backup의 데이터가 복원되어 .kibana_1 인덱스에 저장되었습니다.

7.    저장된 인덱스 패턴을 검색하거나 Kibana 관리 탭에서 새 인덱스 패턴을 생성합니다. 이 작업을 수행할 수 있으면 문제가 해결된 것입니다.

8.    .kibana_backup 인덱스를 제거하여 모든 것을 삭제합니다.

DELETE .kibana_backup

이 문서가 도움이 되었습니까?

개선할 부분이 있습니까?


다른 도움이 필요하십니까?