OpenTelemetry Collector
설치 확인
환경 설정
otelcol의 설정을 변경하기 위해서는 ${OTELCOL_HOME}/configs/otelcol.yaml 파일을 수정하거나 새로운 YAML 파일을 생성하여 otelcol 스크립트 실행 시 --config 옵션의 경로를 변경합니다.
otelcol 설정 파일의 내부는 다음과 같이 총 세 가지 요소로 구성됩니다.
요소 | 설명 |
---|---|
Receivers |
모니터링 데이터를 어디에서 받아올지 등록합니다. |
Processors |
수신 받은 데이터를 가지고 처리할 내용을 등록합니다. |
Exporters |
받은 데이터를 설정한 곳으로 전달합니다. |
Receivers, Processors, Exporters는 Service 섹션 내의 파이프라인을 통해서 활성화됩니다. |
다음은 현재 모니터링에서 지원하는 엔진(HyperFrame에서 관리하는 엔진)을 기준으로 작성된 otelcol 설정 파일의 내용입니다.
receivers:
otlp:
# otlp의 protocols에 따로 지정을 안할 경우 기본값으로 설정
# opentelemetry-javaagent에서는 grpc를 사용
protocols:
grpc: # 기본값 0.0.0.0:4317
http: # 기본값 0.0.0.0:4318
prometheus:
config:
scrape_configs:
# Nginx 모니터링 시 추가
- job_name: "nginx"
scrape_interval: 10s # (10초 고정 권장)
# file_sd_configs 설정을 통해 otelcol 중단 없이 수집 대상 수정 가능
file_sd_configs:
- files:
# 파일의 경로
- "/agent-home/nginx.json"
# Apache 모니터링 시 추가
- job_name: "apache"
scrape_interval: 10s # (10초 고정 권장)
# file_sd_configs 설정을 통해 otelcol 중단 없이 수집 대상 수정 가능
file_sd_configs:
- files:
# 파일의 경로
- "/agent-home/apache.json"
processors:
batch:
exporters:
otlp:
# 백엔드 서버 모니터링
endpoint: "localhost:11800"
tls:
insecure: true # 보안 설정 끄기
# 데이터를 콘솔로 전달
logging:
logLevel: info
# 수집되는 데이터 상세 정보
# verbosity: detailed
service:
# receivers, processors, exporters의 활성화
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp, logging]
metrics:
receivers: [otlp, prometheus]
processors: [batch]
exporters: [otlp, logging]
logs:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
file_sd_configs 옵션에 설정한 json 파일을 통해서 otelcol을 재기동하지 않고도 수집 대상에 대한 설정을 변경할 수 있습니다. 다음은 Apache 모니터링을 위해 file_sd_configs 옵션에 설정한 apache.json 및 nginx.json 파일의 작성 예시입니다. apache.json
nginx.json
|