상황
헬름으로 띄운 개발계 ELK에서, 특정 이유로 인해 Elastic Search의 인덱스가 모두 날아가는 상황이 생겼다.
개발계이기 때문에 큰 문제는 없었고, 인덱스 패턴을 새로 정의하여 Discovery를 활성하고자 하였다.
그러나 Kibana UI에서 인덱스 패턴 생성을 완료하였음에도 불구하고, 생성되지 않았던 상황.
원인
Kibana는 최초 생성 시점에 .kibana_1이라는 인덱스를 생성한다. 이 인덱스는 Kibana 자체 구성 데이터를 저장하는 데 사용되며 대시보드 구성, 시각화, 저장된 검색 및 기타 사용자 정의 설정이 포함되어 있다.
{
".kibana_1" : {
"aliases" : { },
"mappings" : {
"properties" : {
"application_usage_daily" : {
"properties" : {
"appId" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"minutesOnScreen" : {
"type" : "float"
},
"numberOfClicks" : {
"type" : "long"
},
"timestamp" : {
"type" : "date"
}
}
},
"application_usage_transactional" : {
"properties" : {
"appId" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"minutesOnScreen" : {
"type" : "float"
},
"numberOfClicks" : {
"type" : "long"
},
"timestamp" : {
"type" : "date"
}
}
},
"config" : {
"properties" : {
"buildNum" : {
"type" : "long"
},
"defaultIndex" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
},
"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
}
}
}
}
},
"migrationVersion" : {
"properties" : {
"config" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"index-pattern" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
},
"telemetry" : {
"properties" : {
"userHasSeenNotice" : {
"type" : "boolean"
}
}
},
"type" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"ui-metric" : {
"properties" : {
"count" : {
"type" : "long"
}
}
},
"updated_at" : {
"type" : "date"
}
}
},
"settings" : {
"index" : {
"number_of_shards" : "1",
"auto_expand_replicas" : "0-1",
"provided_name" : ".kibana_1",
"creation_date" : "1714119804597",
"number_of_replicas" : "0",
"uuid" : "qo7f0QglTnO_WNwvzseOPA",
"version" : {
"created" : "7090399"
}
}
}
}
}
그리고 이를 aliasing해서 사용하는데, 확인 결과 index와 alias에 값이 없었다. 인덱스가 모두 날아가면서 사라진 것이다.
GET /_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana 5-ULSbkPS5-A5hVOFts0Fg 1 0 91 881 354.4kb 354.4kb
green open log-2024-04-26 5DQAh9vpTMSJ-9xuM0dGGQ 1 0 4621 0 4mb 4mb
green open application-log-2024-04-26 MSF1IiR_SwOKaEEv3zfUfA 1 0 99 0 285.6kb 285.6kb
GET /_cat/aliases?v
없음
즉 ES에서 인덱스에 대한 참조 역할을 하는 alias가 없어서 메타 정보를 담은 index에 접근하지 못했던 것.
내 경우 Kibana가 ElasticSearch 서버를 호출하여 Index Pattern은 실질적으로 생성 되었으나, 접근을 하지 못한 케이스였다. (그래서 해결 이후에 Index Pattern이 어마어마하게 쌓여있었다.)
해결 방안
ES와 키바나를 재기동 함으로써 메타 정보를 담은 .kibana_1가 제대로 재생성 되도록하였다.
GET /_cat/indices?v
green open .kibana_1 MKGEJm1MQLOXEGouHHts-Q 1 0 98 0 105.9kb 105.9kb
GET /_cat/aliases?v
.kibana .kibana_1 - - - -
이후 인덱스 패턴이 정상적으로 생성된 것을 확인할 수 있다.
'트러블 슈팅 > 인프라' 카테고리의 다른 글
(Kafka) Kafka Streams에서 Repartition Topic을 Consume하지 못하는 장애(feat: kafkaAdminCli) (0) | 2024.06.16 |
---|---|
(Kafka) Kafka Streams에서 Repartition Topic을 Consume하지 못하는 장애 (feat: Metric으로 Lag값 추출) (0) | 2024.05.18 |
(Kafka) 유효하지 않은 레코드가 토픽에 들어와 카프카 어플리케이션 장애가 났을 때 (2) | 2024.05.08 |
(Airflow) 배치 날짜값 오차로 인한 통계값 오류가 발생한 이슈 2 (8) | 2024.05.01 |
(Airflow) 배치 날짜값 오차로 인한 통계값 오류가 발생한 이슈 1 (2) | 2024.04.28 |