뉴렐릭 Elasticsearch OpenTelemetry (OTel) 통합은 업계 표준 OpenTelemetry 프로토콜을 사용하여 Elasticsearch 클러스터를 위한 포괄적인 옵저버빌리티를 제공합니다. OpenTelemetry Collector 활용하면 Elasticsearch 인프라에서 데이터와 로그를 효율적으로 수집하는 통합 파이프라인을 구축할 수 있으며, 이를 통해 뉴럴릭과 직접 통합되는 빠르고 안정적인 모니터링을 보장할 수 있습니다.
중요 모니터링 접근 방식 선택: 이 OpenTelemetry기반 통합은 현대적인 공급업체 비종속 모니터링을 제공합니다. 기존 방식을 선호하시거나 특정 호환성이 필요한 경우, 표준 Elasticsearch 통합 기능을 참조하십시오.
왜 OpenTelemetry 방식을 선택해야 할까요?
통합 데이터 수집 : 단일 수집기는 Elasticsearch 및 호스트 시스템의 메트릭, 로그 및 트레이스를 처리합니다.공급업체 중립성 : 모든 감시 플랫폼에서 작동하는 오픈소스 표준을 사용하며 공급업체에 종속되지 않습니다.고성능 : 내장된 배치 처리, 압축 및 카디널리티 감소 기능으로 리소스 사용량을 최소화합니다.미래에도 문제없는 아키텍처 : 인프라 확장에 따라 적응하는 진화하는 개방형 표준을 기반으로 구축되었습니다.네이티브 뉴렐릭 통합 : 최적화된 데이터 처리 및 원활한 대시보드 경험.사용 사례: 한 전자상거래 회사가 제품 검색 기능에 Elasticsearch를 사용합니다. 이 통합 기능을 사용하면 운영팀은 검색 서비스의 정상 작동 여부, 검색 응답 속도를 확인하고 메모리 부족 사태 발생 전에 알림을 받을 수 있습니다. 이 모든 기능을 하나의 대시보드에서 이용할 수 있습니다. 고객이 검색 결과 속도가 느리다고 불평하기 시작하면, 팀은 모든 모니터링 데이터를 한곳에 모아 확인함으로써 문제가 Elasticsearch 문제인지, 서버 문제인지, 아니면 다른 원인인지 신속하게 파악할 수 있습니다.
얻게 될 것
Elasticsearch 인프라를 모니터링하려면 다음을 사용하세요.
Cluster 상태 모니터링 : 노드 상태, 샤드 분포, 클러스터 상태를 추적합니다.성능 인사이트 : 모니터 검색 지연시간, 인덱싱 비율, JVM 성능 지표입니다.리소스 활용률 : 모든 노드의 CPU, 메모리, 디스크 및 네트워크 사용량을 확인합니다.사전 알림 : 지능형 노인값, 바인딩으로 문제가 사용자에게 영향을 미치기 전에 알림을 받으세요.풀스택 상관관계 분석 : Elasticsearch 메트릭을 애플리케이션 및 인프라 데이터와 연결합니다.주요 지표를 한눈에 살펴보기 다음 필수 지표를 사용하여 Elasticsearch 클러스터 상태와 성능을 모니터링하세요.
지표 카테고리
측정하는 것
우선순위
클러스터 상태
elasticsearch.cluster.health
- 클러스터 전체 상태(녹색/노란색/빨간색)
🔴 중요
샤드 상태
elasticsearch.cluster.shards
- 할당되지 않았거나, 재배치 중이거나, 초기화 중인 샤드
🔴 중요
노드 가용성
elasticsearch.cluster.data_nodes
- 클러스터의 활성 데이터 노드
🔴 중요
JVM 힙 사용량
jvm.memory.heap.utilization
- 메모리 사용률
🔴 중요
검색 성능
elasticsearch.node.operations.time
- 쿼리 및 가져오기 지연시간
🟡 중요
리소스 사용량
system.cpu.utilization
,
system.memory.usage
- 호스트 시스템 리소스
🔵 모니터링
완전한 참조 The integration collects 50+ metrics across cluster, node, JVM, and host infrastructure. Expand the sections below for detailed metric specifications.
Cluster metrics(elasticsearchreceiver) 미터법
설명
속성
elasticsearch.cluster.health
The health status of the cluster.
—
elasticsearch.cluster.in_flight_fetch
샤드 가져오기 작업이 아직 진행 중입니다.
—
elasticsearch.cluster.nodes
클러스터 노드 총 개수.
—
elasticsearch.cluster.data_nodes
클러스터의 데이터 노드 수입니다.
—
elasticsearch.cluster.shards
The number of shards in the cluster.
—
elasticsearch.cluster.pending_tasks
실행을 기다리는 클러스터 수준 작업입니다.
—
elasticsearch.cluster.state_update.time
클러스터 상태 업데이트에 소요된 누적 시간.
state
(어느)
type
(계산, 컨텍스트 구성, 커밋, 완료, 마스터 적용, 공지)
인덱스 활동(엘라스틱서치리시버) aggregation
(기본 파편 | 총계)
aggregation
(기본 파편 | 총계)
operation
(인덱스, 삭제, 가져오기, 쿼리, 가져오기, 스크롤, 제안, 병합, 새로 고침, 플러시, 워밍업)
aggregation
(기본 파편 | 총계)
미터법
설명
속성
elasticsearch.index.documents
색인별 문서 수, 주별로 분류됨.
state
(활성 | 삭제됨)
aggregation
(기본 파편 | 총계)
elasticsearch.index.operations.merge.current
활성 세그먼트 병합 작업.
aggregation
(기본 파편 | 총계)
elasticsearch.index.operations.time
인덱스 수준 작업에 소요된 시간.
operation
(인덱스, 삭제, 가져오기, 쿼리, 가져오기, 스크롤, 제안, 병합, 새로 고침, 플러시, 워밍업)
aggregation
(기본 파편 | 총계)
elasticsearch.index.shards.size
The size of the shards assigned to this index.
elasticsearch.index.segments.count
Number of segments of an index.
elasticsearch.index.operations.completed
The number of operations completed for an index.
노드 활동 및 워크로드 지표(elasticsearchreceiver) 미터법
설명
속성
elasticsearch.node.cache.count
쿼리 캐시 히트 및 노드 샤드 전반에 걸친 누락.
type
(맞음 | 놓침)
elasticsearch.node.cache.evictions
노드 캐시 제거.
cache_name
(필드 데이터 | 쿼리)
elasticsearch.node.cache.memory.usage
캐시 메모리 사용량(바이트).
cache_name
(필드 데이터 | 쿼리)
elasticsearch.node.cluster.io
내부 클러스터 네트워크 I/O(바이트 단위).
direction
(수신됨 | 발송됨)
elasticsearch.node.documents
노드에서 호스팅되는 문서입니다.
state
(활성 | 삭제됨)
elasticsearch.node.disk.io.read
파일 저장소별 디스크 읽기 처리량(KiB).
—
elasticsearch.node.disk.io.write
파일 저장소별 디스크 쓰기 처리량(KiB).
—
elasticsearch.node.fs.disk.available
JVM에서 사용 가능한 디스크 공간입니다.
—
elasticsearch.node.fs.disk.total
노드의 총 디스크 용량입니다.
—
elasticsearch.node.http.connections
해당 노드에서 처리하는 HTTP 연결입니다.
—
elasticsearch.node.ingest.documents.current
현재 문서가 수집 중입니다.
—
elasticsearch.node.ingest.operations.failed
누적된 데이터 수집 실패.
—
elasticsearch.node.open_files
열려 있는 파일 디스크립터가 사용 중입니다.
—
elasticsearch.node.operations.completed
노드에서 완료된 작업입니다.
operation
(인덱스, 삭제, 가져오기, 쿼리, 가져오기, 스크롤, 제안, 병합, 새로 고침, 플러시, 워밍업)
elasticsearch.node.operations.current
현재 작업이 진행 중입니다.
operation
(동일한 세트)
elasticsearch.node.operations.get.completed
성공과 실패를 GET .
result
(맞음 | 놓침)
elasticsearch.node.operations.time
Time spent on operations by a node..
Operation
(index | delete| get| query| fetch| scroll| suggest| merge| refresh| flush| warmer)
elasticsearch.node.shards.reserved.size
회복으로 인한 파편 증가 예측.
—
elasticsearch.node.shards.size
The size of the shards assigned to this node.
—
Elasticsearch(elasticsearchreceiver)에서 보고하는 JVM 및 OS 메트릭 미터법
설명
속성
elasticsearch.os.cpu.load_avg.1m
1분 평균 OS 부하.
—
elasticsearch.os.cpu.load_avg.5m
5분 평균 OS 부하율.
—
elasticsearch.os.cpu.load_avg.15m
15분간의 운영체제 부하 평균.
—
elasticsearch.os.cpu.usage
Recent CPU usage for the whole system, or -1 if not supported.
elasticsearch.os.memory
Elasticsearch에서 확인한 물리적 메모리 사용량.
state
(무료 | 중고)
jvm.gc.collections.count
전체 가비지 컬렉션 실행 횟수.
name
(수집기 이름)
jvm.gc.collections.elapsed
쓰레기 수거에 소요되는 시간.
name
(수집기 이름)
jvm.memory.heap.max
사용 가능한 최대 힙 메모리입니다.
—
jvm.memory.heap.used
현재 사용 중인 힙 메모리입니다.
—
jvm.memory.heap.utilization
Fraction of heap memory usage.
—
jvm.threads.count
활성 JVM 스레드 수.
—
호스트 인프라 메트릭(hostmetricsreceiver) 미터법
설명
속성
system.cpu.time
상태별 누적 CPU 시간.
cpu
(logical CPU)
state
(idle| interrupt| nice| softirq| steal| system| user| wait)
system.cpu.utilization
Difference in system.cpu.time since the last measurement per logical CPU, divided by the elapsed time (value in interval [0,1]).
cpu
(논리 CPU)
state
(위와 동일한 세트)
system.cpu.load_average.1m
1분 시스템 부하 평균.
—
system.cpu.load_average.5m
5분 시스템 부하 평균.
—
system.cpu.load_average.15m
15분 시스템 부하 평균.
—
system.memory.utilization
메모리 사용률.
state
(사용된)
system.memory.usage
Bytes of memory in use..
state
(buffered| cached| inactive| free| slab_reclaimable| slab_unreclaimable| used)
system.disk.io
장치별 디스크 I/O 처리량.
device
(디스크)
direction
(읽기 | 쓰기)
system.disk.operations
장치별 디스크 작업 수.
device
direction
(읽기 | 쓰기)
system.filesystem.usage
파일 시스템 용량(상태별).
device
state
(사용됨 | 사용 가능 | 예약됨)
system.filesystem.utilization
파일 시스템 사용률.
device
state
(사용됨)
system.network.io
인터페이스당 네트워크 바이트 수.
interface
direction
(수신 | 송신)
system.network.packets
인터페이스별 네트워크 패킷 수.
interface
direction
(수신 | 송신)
process.cpu.utilization
마지막 스크래핑 이후 프로세스가 사용한 총 CPU 시간의 백분율로, 0에서 1 사이의 값으로 표시됩니다.
process.pid
(PID)
process.executable.name
(이진 이름)
process.owner
(사용자)
state
(사용자 | 시스템 | 기타)
데이터 구성 방식 Elasticsearch 데이터가 뉴럴릭으로 전송될 때, 데이터를 정리하고 필터링하는 데 도움이 되는 식별 정보가 포함됩니다. 이 메타데이터는 모든 메트릭에 클러스터 정보를 자동으로 태그합니다.
태그
그것이 식별하는 것
elasticsearch.cluster.name
Elasticsearch 클러스터의 고유 이름
이 클러스터 이름 태그를 사용하면 다음을 수행할 수 있습니다.
여러 Elasticsearch 환경이 있는 경우 클러스터별로 메트릭을 필터링하세요. 프로덕션, 스테이징 및 개발 환경에 맞는 클러스터별 대시보드를 생성합니다. 개별 클러스터에 대한 레고, 목표 알림을 설정합니다. 서로 다른 모니터링 도구의 데이터를 동일한 클러스터 식별자를 사용하여 상호 연관시킵니다. 다음 단계 이 통합이 제공하는 기능을 검토하고 이해한 후:
통합 설치 - 단계별 설치 가이드를 따르세요.알림 설정 - 클러스터 상태 및 힙 사용량과 같은 중요한 지표에 대한 사전 모니터링을 구성합니다.사용자 정의 대시보드 생성 - 특정 Elasticsearch 사용 사례에 맞게 조정된 보기를 구축합니다.관련 통합 기능을 살펴보세요 - 다른 OpenTelemetry 통합 기능을 사용하여 애플리케이션 스택을 모니터링하는 것을 고려해 보세요.