왜 Elasticsearch 검색이 실패할까? 인덱스 Close와 Alias의  관계
Backend2024. 7. 4. 20:33왜 Elasticsearch 검색이 실패할까? 인덱스 Close와 Alias의 관계

배경실무에서 Elasticsearch를 사용하면서 index_closed_exception 오류를 경험한 적이 있습니다.해당 에러는 ES에서 4XX대 응답을 내려주고 있지만 자칫하면 검색이 되지 않는 크리티컬한 상황이 될 수 있습니다.  위 다이어그램은 제게 이슈가 있었던 상황을 표현한 것입니다. 복수 개의 인덱스가 존재하고 공통 alias로 인덱스가 연결 되어있는 상태일 때alias 연관 인덱스를 close 하고 alias 검색 시 close 인덱스에도 접근을 시도 하게 되어 index_closed_exception 예외가 발생하며 검색 요청이 실패합니다. 해결 원인은 close된 인덱스가 여전히 alias에 의해 참조되고 있어서 발생한 에러 입니다.A closed index is blocked fo..

Backend2024. 7. 4. 20:32GitHub Actions를 이용하여 GitOps의 YAML 파일 동적 업데이트

배경Jenkins & Spinnaker 기반의 CI/CD 환경에서 GitHub Action & Argo CD로 전환하게 되었습니다.Spinnaker에서는 배포 시 동적 파라미터를 제공하여 yaml 을 수정하는 기능이 있었으나, Argo CD는 이러한 기능을 지원하지 않는걸로 파악했습니다. 구현Argo CD가 GitOps 방식을 따르므로, 애플리케이션 배포 시 GitHub Actions를 활용하여 Deploy Repository의 yaml 파일을 워크플로우 디스패치 이벤트로부터 받은 파라미터로 동적으로 수정합니다. 이를 통해 최종 배포 단계에서 yaml 파일을 업데이트하여 파라미터를 주입합니다. (* yq 활용) 구현 샘플.Application Repository 설정# GitHub Workflownam..

Backend2024. 7. 4. 20:28[Datadog] Anomaly Detection 리서치

Anomaly Detection메트릭의 과거 트렌드, 계절별 패턴을 비교 분석하여 메트릭이 정상적인 범위를 벗어 났는지 탐지하는 데이터독 기능그래서 언제 사용?https://docs.datadoghq.com/ko/monitors/guide/anomaly-monitor/모니터링 하고자 하는 Elasticsearch 클러스터의 검색 성능과 관련된 지표에서 규칙적인 패턴이 발견됨.이상 징후 모니터를 통해 기대 하는 것 (가설)Datadog의 Anomaly Monitor를 통해 검색 지표를 모니터링 하여 비정상적인 부하를 조기에 감지하여 알람을 받을 수 있다.이상 징후 알람으로 조기 조치가 가능 해진다면 시스템 다운타임을 방지하고, 사용자 경험을 개선하는 데 도움을 줄 수 있다.설정 방법Datadog - Mon..

Backend2024. 7. 4. 20:27[Datadog] Detection Method 정리

데이터독에 전송된 메트릭은 사전에 정의한 임계값에 도달하면 알람을 받을 수 있다.Threshold Alert특정 메트릭이 설정된 임계값을 초과하거나 미달할 때 경고를 발생시키는 방법적합한 상황잘 알려진 성능 기준이나 목표가 있을 때 유용사용 케이스CPU 사용량 (`elasticsearch.node.cpu.utilization`)이 설정된 임계치 도달클러스터 상태 (`elasticsearch.cluster.health_status`)가 "yellow" 또는 "red"로 변경.단위 샤드 크기 50GB 초과ES JVM 힙 메모리 85% 이상 사용LB 응답시간 p95가 200ms 이상Change Alert메트릭 값의 변화율을 감지하고, 이 변화율이 설정한 임계치를 초과할 때 알림을 발생시킵니다.적합한 상황평소와..

Backend2024. 7. 4. 20:18[Elasticsearch] maximum normal shards open - 클러스터 샤드 수 제한

상황아래 ES 에러 메시지가 발생하면서 신규 인덱스 생성 불가{"type":"illegal_argument_exception","reason":"Validation Failed: 1: this action would add [10] shards, but this cluster currently has [993]/[1000] maximum normal shards open;"}분석ES 공식문서에 따르면,클러스터의 샤드 수는 노드 수에 기반한 소프트 제한이 있으며, 이것은 클러스터를 불안정하게 할 수 있는 작업을 방지하기 위함입니다.클러스터 샤드 제한은 하드웨어 구성과 부하량에 따라 안정적인 샤드 수가 다릅니다.closed index는 위 max_shards_per_node 에 포함되지 않습니다.새 인덱스 ..

image