Elastic Search 모니터링

cyr·2023년 7월 29일
0

Elastic Search를 운영에 활용하면서 여러가지 issue가 생기는 경우가 많다. index 설계, 잘못된 매핑 등이 그 이유가 되는 경우도 있지만, 운영 중 장애로 커지는 경우는 주로 자원 사용, 클러스터의 상태 이상에 의해 발생하는 경우가 많았다. 이러한 문제를 예방하기 위해서는 Elastic Search의 현재 상태에 대한 모니터링이 반드시 필요하다.

Elastic Search를 모니터링 하는 방법은 여러가지인데, 그 방법은 아래와 같다.

  • 모니터링을 하기위한 별도의 소프트웨어 개발
  • Kibana 구축(cat API 활용)
  • Elastic Search를 사용하도록 도와주는 별도의 솔루션 활용(Elastic Cloud, OpenSearch)

이 글에서는 Kibana를 통해 확인할 수 있는 지표에 대해 작성을 할 것인데, 아마 다른 서비스에서도 유사한 형태로 확인할 수 있을 것으로 생각한다.

Elastic Search 주요 지표

  • 알림이 반드시 필요한 지표

    • CPU Usage : 노드가 CPU를 얼마나 사용하고 있는가? (임계치 : 50% 이상)
    • Disk Usage : 노드가 얼마나 많은 문서를 저장하고 있는가? (임계치 : 70% 이상)
    • Load : 노드가 얼마나 많은 부하(요청량)를 처리하고 있는가?(프로세스) (임계치 : CPU개수)
    • JVM Heap : 노드의 JVM이 얼마나 많은 메모리를 사용하고 있는가?(OOM 발생을 막기 위함) (임계티 : 85% 이상)
    • Threads : 처리량을 넘어서는 색인/검색 요청이 있는가? (임계치 : Rejected Threads가 1 이상)

  • 참고할 수 있는 지표 (문제의 원인을 분석할 수 있는 지표)

    • Memory Usage (물리 메모리의 사용량, JVM Heap Memory를 더 늘릴 수 있는 지? )
    • GC Rate (노드에서 발생하는 GC의 발생 주기)
    • GC Duration (노드에서 발생하는 GC의 소요시간)
    • Disk I/O (노드에서 일어나는 디스크의 연산 지연 시간)
    • Latency (노드에서 발생하는 검색과 색인의 소요시간)
    • Rate (색인/검색 요청이 인입되는 양)
profile
개발

0개의 댓글