뉴렐릭은 쿠버네티스 클러스터에서 구현하다, 배포하다 Helm 차트 를 제공합니다.OpenTelemetry Collector 이 Helm 차트는 다양한 사용 사례에 대한 고급 설정을 포함하여 사용자의 특정 요구 사항에 맞게 사용자 정의할 수 있습니다.
nr-k8s-otel-collector
Helm 차트는 DaemonSet
및 Deployment
수집기를 모두 지원하므로 사용 사례에 가장 적합한 것을 선택할 수 있습니다. 이러한 수집기는 동작을 사용자 지정하도록 구성할 수 있습니다. 에 NewRick OpenTelemetry Collector Kubernetes 설치하는 방법에 대한 자세한 내용은 설치 가이드를 참조하세요.
이 문서에서는 몇 가지 주요 고급 설정 옵션에 대한 개요를 제공합니다.
GKE Autopilot 또는 Red Hat OpenShift 호환성 활성화
특정 Kubernetes 환경과의 호환성을 보장하려면 공급자별 설정을 활성화할 수 있습니다. 이 설정은 이러한 환경의 특정 제약 조건에 맞게 조정하여 OpenTelemetry 수집기의 호환성과 적절한 기능을 보장합니다.
values.yaml
파일 에서 이 옵션을 활성화하세요.
provider: "GKE_AUTOPILOT" # Or "OPEN_SHIFT" if applicable
LowDataMode 활성화
LowDataMode
옵션은 Kubernetes UI에서 필요한 메트릭만 수집하도록 기본적으로 활성화되어 있습니다. 이 모드는 Kubernetes 모니터링의 필수 지표에 초점을 맞춰 수집되는 데이터 양을 줄입니다.
LowDataMode에 추가 메트릭 추가
추가 메트릭을 가져오려면 섹션을 values.yaml
사용하여 파일 extraConfig
에 새 파이프라인을 추가하고 적절한 수신기와 프로세서를 구성하세요.
다음 예제에서는 cadvisor_version_info
메트릭을 새 파이프라인에 추가하는 방법을 보여줍니다. 기존 수신기를 재사용하거나 나만의 수신기를 정의할 수 있습니다. 프로세서는 특정 메트릭을 필터링하고 Kubernetes 속성으로 풍부하게 만들기 위해 추가되었습니다.
extraConfig: receivers: processors: filter/keep_cadvisor_version_info: metrics: metric: - name != "cadvisor_version_info" # Exclude all metrics except cadvisor_version_info exporters: connectors: pipelines: metrics/additional_metrics: receivers: - prometheus # This references the prometheus receiver defined above processors: - filter/keep_cadvisor_version_info - resource # Essential for basic resource attributes - k8sattributes/ksm # Essential for Kubernetes metadata enrichment - cumulativetodelta # Converts cumulative metrics to delta - batch # For efficient data sending exporters: - otlphttp/newrelic
설정에서 재사용할 수 있는 사용 가능한 수신기, 프로세서, 내보내기 및 파이프라인의 포괄적인 목록은 뉴렐릭 Helm Charts 저장소를 참조하세요.
여러 뉴렐릭 계정으로 데이터 보내기
Kubernetes 텔메트리 데이터를 여러 뉴렐릭 계정으로 동시에 보내려면 보조 수집 볼륨 키를 OpenTelemetry Collector 컨테이너에 삽입하고 추가 OTLP 내보내기를 구성하세요.
보조 라이선스 키를 삽입하려면:
values.yaml
파일의env
섹션에서 사용하려는 각 보조 수집 라이선스 키에 대해 다음 환경 변수를 추가합니다.daemonset:envs:- name: MY_SECONDARY_LICENSE_KEY_VAR # Choose a descriptive environment variable namevalueFrom:secretKeyRef:name: <Your Secret Name> # Name of your Kubernetes Secretkey: <Your Secret Key> # Key within the Secret that holds the license keydeployment:envs:- name: MY_SECONDARY_LICENSE_KEY_VARvalueFrom:secretKeyRef:name: <Your Secret Name>key: <Your Secret Key>values.yaml
파일의envForm
섹션에서 사용하려는 각 보조 라이선스 키에 대해 다음 환경 변수를 추가합니다.daemonset:envsFrom:- secretRef:name: <Your Secret Name>deployment:envsFrom:- secretRef:name: <Your Secret Name>
추가 계정마다
extraConfig
섹션에otlphttp
내보내기 프로그램을 추가하려면 삽입된 환경 변수를 참조하세요.
daemonset: configMap: extraConfig: exporters: otlphttp/secondAccount: # Unique name for this exporter endpoint: "{{include 'nrKubernetesOtel.endpoint'}}" headers: api-key: ${env:MY_SECONDARY_LICENSE_KEY_VAR} # Reference the env vardeployment: configMap: extraConfig: exporters: otlphttp/secondAccount: # Unique name for this exporter endpoint: "{{include 'nrKubernetesOtel.endpoint'}}" headers: api-key: ${env:MY_SECONDARY_LICENSE_KEY_VAR} # Reference the env var# Important: Add this exporter to the relevant pipelines belowpipelines: metrics: exporters: - otlphttp/newrelic # Original exporter - otlphttp/secondAccount # New exporter traces: exporters: - otlphttp/newrelic - otlphttp/secondAccount logs: exporters: - otlphttp/newrelic - otlphttp/secondAccount
팁
daemonset
및 deployment
수집기 모두에 대해 extraConfig
내의 관련 pipelines
(메트릭, 트레이스, 로그)에 otlphttp/secondAccount
내보내기 프로그램을 추가하여 데이터가 실제로 이 새로운 내보내기 프로그램을 통해 전송되도록 해야 합니다.
values.yaml
파일을 업데이트한 후 클러스터에 변경 사항을 적용합니다.
$helm upgrade nr-k8s-otel-collector newrelic/nr-k8s-otel-collector -f your-custom-values.yaml -n newrelic
프록시를 통해 데이터 보내기
프록시를 통해 Kubernetes 텔레메트리 데이터를 보내려면 OpenTelemetry Collector 구성하여 아웃바운드 연결에 HTTP 프록시를 사용할 수 있습니다. 이 기능은 인터넷 직접 접속이 제한되거나 모니터링되는 환경에서 특히 유용합니다.
다음 방법 중 하나를 사용하여 OpenTelemetry Collector가 프록시를 사용하도록 구성할 수 있습니다.
Helm 차트에 사용자 정의 설정 추가
values.yaml
파일 내의 extraConfig
섹션은 daemonset
및 deployment
수집기의 기능을 확장하는 강력한 방법을 제공합니다. 두 수집기를 모두 선택하여 추가 구성을 적용하고 모니터링 환경을 맞춤 설정할 수 있습니다.
이러한 옵션은 기본적으로 포함되지 않은 특정 설정을 통합하는 데 있어 유연성을 제공합니다.
추가적인 사용자 정의를 위해, 귀하의 설정에서 재사용할 수 있는 수신기, 프로세서, 내보내기 및 파이프라인의 포괄적인 목록을 참조할 수 있습니다.
파이프라인에서 여러 가지 권장 프로세서를 사용하여 텔레메트리 데이터의 효율성과 관련성을 향상시킬 수 있습니다.
resource:
메트릭 데이터에 필수적인 리소스 정보가 포함되어 있는지 확인하여 데이터 분석의 명확성을 높입니다.k8sattributes:
클러스터의 동작 및 성능에 대한 자세한 인사이트를 위해 Kubernetes관련 속성을 지표에 통합합니다.cumulativetodelta:
시간 경과에 따른 변화를 더 잘 추적할 수 있도록 누적 지표를 델타 지표로 변환합니다.batch:
데이터 수집 중에 성능을 최적화하고, 일괄적으로 메트릭을 처리하고 내보냅니다.
이러한 프로세서는 함께 작동하여 데이터를 정제하여 더욱 정확한 모니터링과 알림을 제공합니다. Kubernetes 환경 내에서 원활한 Prometheus 서비스 검색을 보장하려면 특정 사용 사례에 맞게 설정을 사용자 지정하세요.
Prometheus 서비스 검색 활성화 섹션에서는 표준 prometheus.io/scrape
주석 extraConfig
사용하여 서비스 검색을 설정하는 방법의 예를 제공합니다.
Prometheus 서비스 검색 활성화
쿠버네티스 클러스터 내에서 Prometheus 서비스 검색을 활성화하려면 deployment
수집기 설정의 extraConfig
섹션을 사용하세요. 이를 통해 OpenTelemetry Collector prometheus.io/scrape
로 주석이 달린 파드에서 지표를 자동으로 검색하고 스크래핑할 수 있습니다.
다음은 표준 prometheus.io/scrape
주석을 사용하여 서비스 검색을 설정하는 구성 스니펫의 예입니다.
extraConfig: receivers: prometheus/discover: config: scrape_configs: - job_name: "auto-discovered-services" scrape_interval: 30s # Set the scrape interval to 30 seconds kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] action: keep regex: true - source_labels: [__meta_kubernetes_pod_label_app] action: drop regex: kube-state-metrics - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace target_label: __address__ separator: ; regex: (.+):(?:\d+);(.*) replacement: $1:$2 - action: replace target_label: job_label replacement: auto-discovery processors: exporters: connectors: pipelines: metrics/prom_auto_discover: receivers: - prometheus/discover processors: - resource/metrics - k8sattributes/ksm - cumulativetodelta - batch exporters: - otlphttp/newrelic