728x90
클러스터 레벨의 실시간 모니터링
GET _cluster/stats
- _cluster/stars API를 이용하면, 클러스터 전체에서 통계를 검색 할 수 있다.
- 클러스터를 구성하는 물리적인 노드의 정보(역할, 운영체제 정보, 메모리 사용량, CPU 사용량)를 알 수 있다.
클러스터 인덱스 정보
- count: 클러스터에 존재하는 인덱스의 갯수를 나타낸다.
- shards: 클러스터에 존재하는 샤드의 정보를 나타낸다.
- docs: 클러스터에 색인된 문서의 개수를 나타낸다.
- store: 클러스터 내부에 가지고 있는 문서가 차지하는 디스크 크기를 나타낸다.
- fielddata: 클러스터가 fielddata를 위해 생성한 메모리 크기를 나타낸다.
- query_cache: 동일한 검색 요청 시 빠른 응답을 위해 검색 결과를 메모리에 올려 캐시한다.
- completion: Compleion Suggest를 위해 생성한 메모리 크기를 나타낸다.
- segments: 클러스터 내부에 존재하는 루씬 세그먼트가 사용 중인 메모리 정보를 나타낸다.
클러스터 통계 정보 중 노드에 관한 정보
- count: 클러스터에 존재하는 노드의 갯수를 알려준다
- versions: 클러스터를 구성하는 엘라스틱서치 버전을 나타낸다.
- os: 클러스터에 존재하는 노드의 운영체제 정보를 나타낸다.
- process: 클러스터에 존재하는 노드의 CPU 정보를 나타낸다.
- jvm: 클러스터에 존재하는 노드의 JVM 정보를 나타낸다
- fs: 클러스텅에 존재하는 노드의 File System 정보를 나타낸다.
- plugins: 클러스터에 존재하는 노드에 설치된 플러그인 정보를 나타낸다.
- network_types: 클러스터에 존재하는 노드에서 사용중인 네트워크 타입 정보를 나타낸다.
노드 레벨의 실시간 모니터링
GET _nodes/stats
- 모든 노드의 통계 정보를 노드별로 상세하게 볼 수 있다.
- 모든 노드의 통계 정보의 형식은 동일하나, 노드가 동작하고 있는 물리 머신을 기준으로 데이터가 생성되기 떄문에 각 노드 정보를 비교해보면 문제가 발생한 노드를 쉽게 발견할 수 있다.
데이터 노드의 통계 정보 중 indices에 대한 정보
- docs: 데이터 노드가 가지고 있는 문서의 수
- store: 데이터 노드가 사용 중인 디스크 용량
- indexing: 데이터 노드가 색인 작업을 진행한 통계 정보
- get: 데이터 노드에서 Get API 요청을 처리한 통계 정보
- search: 데이터 노드에서 검색 요청을 처리한 통계 정보(검색 요청에 따른 세부 동작 과정에서 걸린 처리 시간을 불 수 있다.)
- merges: 데이터 노드 내부에서 merge 작업을 수행한 통계 정보(merge 작업에 따른 세부 동작 과정에서 걸린 처리 시간 확인 가능)
- flush: 데이터 노드 내부에서 flush 작업을 수행한 통계 정보다(Flush 작업에 따른 세부 동작 과정에서 걸린 처리 시간 확인 가능)
- warmer: 데이터 노드에서 사용한 Warmer 작업을 수행한 통계 정보다(Warmar 기능은 과거 인덱스 조회 성능 향상을 위해 사용했지만 현재는 폐기 예정이라 사용되지 않는다)
- query_cache: 데이터 노드에서 가지고 있는 검색 결과에 대한 캐시 정보다.(검색 결과를 저장한 캐시 수와 캐시 적중률, 미스율 등을 볼 수 있다)
- fielddata: 데이터 노드에서 fielddata를 위해 생성한 메모리 크기를 나타낸다.
- completion: 데이터 노드에서 completion suggest 를 위해 생성한 메모리 크기를 나타낸다
- segments: 데이터 노드 내부에서 루씬 세그먼트 작업르 수행한 통계 정보다(세그먼트 메모리 샤용량 볼 수 있다.)
- translog: 데이터 노드 내부에서 Translog 작업을 수행한 통계 정보다(Translog 파일의 크기를 볼 수 있다.)
- request_cache: 데이터 노드에서 가지고 있는 샤드 레베의 중간 검색 결과에 대한 캐시 정보다. 캐시에 대한 적중률 및 미스율을 볼 수 있다
- recovery: 데이터 노드 내부에서 복구 작업을 수행한 통계 정보다
데이터 노드의 통계 정보 중 os에 대한 정보
- cpu: 데이터 노드에서 사용중인 CPU 통계 정보다. CPU 사용률을 확인할 수 있다.
- mem: 데이터 노드에서 사용중인 메모리 통계 정보다.
- swap: 데이터 노드에서 사용중인 스와핑 통계 정보
- cgroup: 데이터 노드에서 사용중인 cgroup 통계 정보(리눅스에서 제공하는 cgroup에 의해 제한된 시스템 리스소 정보 확인 가능)
데이터 노드의 통계 정보 중 Process(엘라스틱서치 인스턴스)에 대한 정보
- open_file_description: 데이터 노드를 실행한 후로 사용중인 디스크립터 정보
- max_file_descriptors: 데이터 노드 프로세스가 생성 가능한 최대 파일 디스크립터 카운트 정보
- cpu: 데이터 노드를 실행한 이후로 사용한 CPU 정보
- mem: 데이터 노드 프로세스가 부여받은 가상 메모리 정보
데이터 노드의 통계 정보 중 JVM에 대한 정보
- mem: JVM의 메모리 관련 통계 정보
- threads: JVM이 사용중인 스레드 관련 통계 정보
- gc: JVM 현재 가비지 컬렉션 정보(Young/Old 영역 정보를 확인해서 간접적으로 GC 발생 시간을 유추)
- buffer_pools: JVM 내부의 Direct Buffer와 Mapped Buffer의 메모리 정보를 보여준다.
- classes: JVM 내부에 로딩된 클래스 정보를 보여준다.
데이터 노드의 통계 정보 중 Thread_Pool에 대한 정보
- bluk: bulk 요청을 처리하는데 사용하는 스레드 풀 정보를 보여준다
- fetch_shard_started: 샤드 started 패치 작업을 처리하는데 사용하는 스레드 풀 정보를 보여준다
- fetch_shard_store:샤드 store 패치 작업을 처리하는 데 사용하는 스레드 풀 정보를 보여준다.
- flush: Flush 작업을 처리하는데 사용하는 스레드 풀 정보를 보여준다.
- force_merge: 강제 병합 작업을 처리하는데 사용하는 스레드 풀 정보를 보여준다
- generic: 일반적인 연산을 처리하는데 사용하는 스레드 풀 정보를 보여준다
- get: Get API 요청을 처리하는데 사용하는 스레드 풀 정보를 보여준다
- index: 색인 작업에 사용하는 스레드 풀 정보를 보여준다
- listener: 자바 클라이언트에서 사용하는 스레드 풀 정보를 보여준다(엘라스틱서치 노드가 클라이언트 모드로 실행될때만 의미 있다)
- menagement: Cat API나 Stat API 같은 관리용 요청을 처리하는데 사용하는 스레드 풀 정보를 보여준다
- refresh: Refresh 요청을 처리하는데 사용하는 스레드 풀 정보를 보여준다
- search: 카운트, 검색, 추천에 사용하는 스레드 풀 정보를 보여준다
- snapshot: Snapshot/Restore 작업을 처리하는데 사용하는 스레드 풀 정보를 보여준다
- warmer: 세그먼트 Warmer 작업을 처리하는데 사용하는 스레드 풀 정보를 보여준다(Deprecate)
데이터 노드의 통계 정보 중 fs(파일 시스템)에 대한 정보
- total: 사용중인 파일 시스템의 통계 정보
- data: 사용중인 파일 시스템의 종류와 저장 경로
- io_stats: 현재 일어나고 있는 IO 통계 정보
데이터 노드의 통계 정보 중 transport(클라이언트 모듈)에 대한 정보
- server_open: 연결 중인 Transport 개수
- rx_count: 수신받은 갯수
- rx_size_in_bytes: 수신받은 데이터 크기
- tx_count: 송신한 횟수
- tx_size_in_bytes: 송신한 데이터 크기
데이터 노드의 통계 정보 중 Http에 대한 정보
- current_open: 현재 요청중인 HTTP 연결 수
- total_opened: 지금까지 요청한 HTTP 요청 수
데이터 노드의 통계 정보 중 서킷 브레이커(breakers)에 대한 정보
- parent: 공통으로 사용되는 메모리 사용량을 설정(기본 70%), 모든 서킷브레이커들은 Parent에서 설정된 메모리 사용량보다 작게 설정해야 유효하다
- request: 요청 시 집계 연산과 같은 무거운 작업이 수행될 수 있기 때문에 메모리 사용량에 제한을 둔다(기본 60%)
- fielddata: 노드에서 fielddata 캐시로 사용되는 메모리 사용량에 제한을 둔다(기본: 60%)
- in_flight_requests: Transfer 동작, Http 수준의 동작 시 수신되는 데이터에 대한 메모리 사용량에 제한을 둔다(기본 100%)
- accounting: 루씬 세그먼트와 같이 요청이 완료된 후에도 해제되지 않는 메모리가 존재할 경우에 대비한 메모리 사용량을 설정한다(기본 100%)
인덱스 레벨의 실시간 모니터링
GET _stats
- 클러스터를 인덱스 수준에서 들여다볼 수 있게 도와준다.
- 인덱스 통계는 여러 노드에 걸쳐 존재하는 논리적인 개념이다.
- _all 속성은 모든 인덱스의 통계값을 합친 값으로 구성된다.
- 클러스터에 존재하는 전체 인덱스를 대상으로 하는 통계 정보를 살펴 볼 수 있다.
- indices로 인덱스 통계를 볼 수 있다.
- primaries: 프라이머리 샤드를 의미한다.
- total: 프라이머리와 레플리카 샤드를 모두 합친것을 의미한다.
primaries 통계 정보
- docs: 인덱스가 가지고 있는 문서의 수
- store: 인덱스가 사용 중인 디스크 용량
- indexing: 인덱스가 색인 작업을 진행한 통계 정보
- get: 인덱스에서 Get API 요청을 처리한 통계 정보
- search: 인덱스에서 검색 요청을 처리한 통계 정보
- merges: 인덱스 내부에서 Merge 작업을 수행한 통계 정보
- refresh: 인덱스 내부에서 refresh 작업을 수행한 통계 정보
- flush: 인덱스 내부에서 Flush 작업을 수행한 통게 정보
- warmer:인덱스에서 사용한 Warmer 작업을 수행한 통계 정보(현재 Deprecate)
- query_cache: 인덱스에서 가지고 있는 검색 결과에 대한 캐시 정보
- fielddata: 인덱스에서 fielddata를 위해 생성한 메모리 크기
- completion: 인덱스에서 Completion Suggest를 위해 생성한 메모리 크기
- segments: 인덱스 내부에서 루씬 세그먼트 작업을 수행한 통계 정보
- translog: 인덱스 내부에서 Translog 작업을 수행한 정보
- request_cache: 인덱스에서 가지고 있는 샤드 레벨의 중간 검색 결과에 대한 캐시 정보
- recovery: 인덱스 내부에서 복구 작업을 수행한 통계 정보
728x90
'Elastic Search' 카테고리의 다른 글
| Ch12. 안정적인 클러스터 운영 노하우 - 노드 부트스트랩 과정의 이해 (0) | 2025.10.21 |
|---|---|
| Ch11. 장애 방지를 위한 실시간 모니터링 - Cat API를 이용해 콘솔에서 모니터링 하기 (0) | 2025.10.15 |
| Ch11. 장애 방지를 위한 실시간 모니터링 - 물리적인 클러스터 상태 정보 조회 (0) | 2025.10.15 |
| Ch11. 장애 방지를 위한 실시간 모니터링 - 클러스터 Health 체크 (0) | 2025.10.15 |
| Ch10. 대용량 처리를 위한 시스템 최적화 - 시스템 튜닝 포인트 (0) | 2025.10.10 |