뉴렐릭 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
- 쿼리 및 가져오기 지연시간
🟡 중요
인덱싱 성능
elasticsearch.node.operations.time
- 인덱싱 및 삭제 작업 타이밍
🟡 중요
회로 차단기
elasticsearch.breaker.tripped
- 메모리 보호 트리거
🟡 중요
리소스 사용량
system.cpu.utilization
,
system.memory.usage
- 호스트 시스템 리소스
🔵 모니터링
완전한 참조 이 통합 기능은 클러스터, 노드, JVM 및 호스트 인프라 전반에 걸쳐 60개 이상의 메트릭을 수집합니다. 자세한 사양을 보려면 아래 섹션을 펼치십시오.
Cluster 상태 및 회로 차단기 지표(elasticsearchreceiver) 미터법
설명
속성
elasticsearch.cluster.in_flight_fetch
샤드 가져오기 작업이 아직 진행 중입니다.
—
elasticsearch.cluster.nodes
클러스터 노드 총 개수.
—
elasticsearch.cluster.pending_tasks
실행을 기다리는 클러스터 수준 작업입니다.
—
elasticsearch.cluster.state_update.time
클러스터 상태 업데이트에 소요된 누적 시간.
state
(어느)
type
(계산, 컨텍스트 구성, 커밋, 완료, 마스터 적용, 공지)
인덱스 활동(엘라스틱서치리시버) 미터법
설명
속성
elasticsearch.index.documents
색인별 문서 수, 주별로 분류됨.
state
(활성 | 삭제됨)
aggregation
(기본 파편 | 총계)
elasticsearch.index.operations.merge.current
활성 세그먼트 병합 작업.
aggregation
(기본 파편 | 총계)
elasticsearch.index.operations.time
인덱스 수준 작업에 소요된 시간.
operation
(인덱스, 삭제, 가져오기, 쿼리, 가져오기, 스크롤, 제안, 병합, 새로 고침, 플러시, 워밍업)
aggregation
(기본 파편 | 총계)
elasticsearch.indexing_pressure.memory.total.primary_rejections
누적 1차 색인 거절 건수.
—
노드 활동 및 워크로드 지표(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.get.time
GET 성공/실패에 소요된 시간.
result
(맞음 | 놓침)
elasticsearch.node.shards.reserved.size
회복으로 인한 파편 증가 예측.
—
elasticsearch.node.thread_pool.tasks.finished
스레드 풀별 완료(또는 거부)된 작업 수.
thread_pool_name
(어느)
state
(거부됨 | 완료됨)
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.memory
Elasticsearch에서 확인한 물리적 메모리 사용량.
state
(무료 | 중고)
jvm.gc.collections.count
전체 가비지 컬렉션 실행 횟수.
name
(수집기 이름)
jvm.gc.collections.elapsed
쓰레기 수거에 소요되는 시간.
name
(수집기 이름)
jvm.memory.heap.max
사용 가능한 최대 힙 메모리입니다.
—
jvm.memory.heap.used
현재 사용 중인 힙 메모리입니다.
—
jvm.threads.count
활성 JVM 스레드 수.
—
호스트 인프라 메트릭(hostmetricsreceiver) 미터법
설명
속성
system.cpu.time
상태별 누적 CPU 시간.
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.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 통합 기능을 사용하여 애플리케이션 스택을 모니터링하는 것을 고려해 보세요.