: ElasticSearch를 잘 사용하기 위해서는 ElasticSearch 상태를 모니터링하는 것이 필수
: 오픈 소스인 Head와 프로메테우스 그리고 X-Pack을 이용해서 클러스터를 모니터링하는 방법과 각 툴의 장, 단점을 학습
3. 1 Head를 이용해서 모니터링하기
: Head는 클러스터의 여러 정보를 웹 UI를 통해 확인할 수 있도록 해준다. 가장 큰 장점 중 하나는 샤드 배치 정보를 시각적으로 확인할 수 있는 것
: 이를 통해서 샤드 분배가 특정 노드에 치중되었다거나 배치가 안 된 샤드가 있는 등 샤드 분배와 관련된 문제가 발생했을 때 유용하게 사용할 수 있다.
: Head를 설치하면 프로세스가 9100번 포트를 통해 사용자의 접속을 처리할 수 있게 된다.
: Head를 통해 클러스터의 노드에 접근하려면 접근하려는 클러스터에서도 접근 허용을 위한 설정 작업이 필요하다. elasticsearch.yml 파일에 CORS 허용을 해주어야 한다.
3. 2 프로메테우스를 활용한 클러스터 모니터링
: 프로테메우스는 데이터를 시간의 흐름대로 저장할 수 있는 시계열 데이터베이스의 일종으로 수집된 데이터를 바탕으로 임계치를 설정하고 메시지를 바을 수 있는 오픈소스 모니터링 시스템이다.
: 각종 메트릭을 저장하는 TSDB의 역할을 하는 프로메테우스 서버가 중앙에 있다. 각종 지표들을 Exporter라는 컴포넌트를 토앻서 가져올 수도 있고 Push Gateway를 통해 입력할 수 도 있다.
: 각 항목에 대해 임계치를 설정하여 Alert Manager를 통해 경고 메시지를 받을 수 있다.
: 이번 절에서는 프로메테우스 서버와 익스포터를 설정해보고 프로메테우스에 쌓인 데이터들을 Grafana를 통해 시각화하는 과정
3. 3 X-Pack 모니터링 기능을 활용한 클러스터 모니터링
: X-Pack 모니터링을 사용하기 위해서는 Kibana 설치가 필요, Kibana는 ElasticSearch에 저장된 로그를 검색하거나 그래프 등으로 시각화할 때 사용되는 도구
: 사실상 ElasticSearch의 웹 UI와 같은 역할을 하는 도구, 저장된 문서 조회, 간단한 검색 요청, 데이터 분석을 통한 시각화 작업 모두 Kibana에서 진행
3. 4 마치며
1.
Head 모니터링은 클러스터의 전반적인 동작 상태를 확인하기에 용이하지만 성능 지표 등의 자세한 정보는 확인이 어렵다.
2.
프로메테우스 모니터링은 다량의 클러스터를 운영하고 있을 때 구축하기 수월하지만 확인할 수 있는 정보량이 X-Pack 모니터링에 비해 상대적으로 적다.
3.
X-Pack 모니터링은 모니터링 시스템 중 가장 많은 정보를 확인할 수 있지만 클러스터의 규모가 클수록 모니터링 데이터를 기록하기 위한 인덱스의 색인이 발생하기 때문에 색인 성능에 영향을 줄 수 있다.