• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Linkerd 모니터링 설치 및 구성: 매니페스트를 사용한 NRDOT

|View as Markdown (English)

이 페이지에서는 Kubernetes 매니페스트를 사용하여 NRDOT Collector를 설치하고, Linkerd 프록시 및 컨트롤 플레인 메트릭을 스크랩하도록 구성하며, 데이터가 뉴렐릭으로 전송되는지 확인합니다. 이 작업은 약 15분 정도 소요됩니다.

호환성 및 요구 사항

지원

  • kubectl이(가) 구성된 쿠버네티스 클러스터(EKS, GKE, AKS 또는 자체 관리형)
  • Linkerd 설치 및 정상 상태(linkerd check 통과)
  • 매니페스트 관리형 클러스터 설정

필요한 사항

  • 뉴렐릭 수집 라이선스 키

  • 기본 Kubernetes OpenTelemetry 매니페스트 설치가 완료되었습니다.

  • 뉴렐릭 OTLP 엔드포인트에 대한 네트워크 연결

  • 관찰하려는 네임스페이스에 주입이 활성화되어 있어야 합니다. 그렇지 않은 경우, 어노테이션을 추가하고 다시 시작하십시오:

    bash
    $
    kubectl annotate namespace <YOUR_NAMESPACE> linkerd.io/inject=enabled
    $
    kubectl rollout restart deployment -n <YOUR_NAMESPACE>

설치

  1. 로컬 deployment-configmap.yaml의 receivers.prometheus.config.scrape_configs 목록에 Linkerd 스크랩 구성을 추가하십시오.

    - job_name: 'linkerd-controller'
    kubernetes_sd_configs:
    - role: pod
    namespaces: { names: ['linkerd', 'linkerd-viz'] }
    relabel_configs:
    - { source_labels: [__meta_kubernetes_pod_container_port_name], action: keep, regex: admin-http }
    - { source_labels: [__meta_kubernetes_pod_container_name], target_label: component }
    - { source_labels: [__meta_kubernetes_namespace], target_label: namespace }
    - { source_labels: [__meta_kubernetes_pod_name], target_label: pod }
    - job_name: 'linkerd-proxy'
    kubernetes_sd_configs: [{ role: pod }]
    relabel_configs:
    - { source_labels: [__meta_kubernetes_pod_container_name, __meta_kubernetes_pod_container_port_name, __meta_kubernetes_pod_label_linkerd_io_control_plane_ns], action: keep, regex: ^linkerd-proxy;linkerd-admin;linkerd$ }
    - { source_labels: [__meta_kubernetes_namespace], target_label: namespace }
    - { source_labels: [__meta_kubernetes_pod_name], target_label: pod }
    - { source_labels: [__meta_kubernetes_pod_label_linkerd_io_control_plane_ns], target_label: linkerd_control_plane_ns }
    - { source_labels: [__meta_kubernetes_pod_label_linkerd_io_control_plane_component], target_label: linkerd_control_plane_component }
  2. 프로세서와 metrics/linkerd 파이프라인을 동일한 deployment-configmap.yaml에 추가하십시오.

    processors:
    resource/strip_service:
    attributes:
    - { key: service.name, action: delete }
    - { key: service.instance.id, action: delete }
    transform/k8s:
    metric_statements:
    - context: datapoint
    statements:
    - set(attributes["k8s.namespace.name"], attributes["namespace"]) where attributes["namespace"] != nil
    - set(attributes["k8s.pod.name"], attributes["pod"]) where attributes["pod"] != nil
    - delete_key(attributes, "instance")
    transform/deployment:
    metric_statements:
    - context: datapoint
    statements:
    - set(attributes["k8s.deployment.name"], attributes["k8s.pod.name"]) where attributes["k8s.deployment.name"] == nil and attributes["k8s.pod.name"] != nil
    - replace_pattern(attributes["k8s.deployment.name"], "-[a-z0-9]+-[a-z0-9]+$", "") where attributes["k8s.deployment.name"] == attributes["k8s.pod.name"]
    transform/metadata_nullify:
    metric_statements:
    - context: metric
    statements:
    - set(description, "")
    - set(unit, "")
    filter/drop_unused:
    error_mode: ignore
    metrics:
    metric:
    - 'name == "rustls_info" or name == "proxy_build_info"'
    - 'name == "scrape_series_added"'
    - 'IsMatch(name, "stack_(poll|create|drop)_total") or name == "stack_poll_total_ms"'
    - 'IsMatch(name, "tokio_rt_.*")'
    - 'IsMatch(name, "(inbound|outbound)_http_.*_frame_size_bytes")'
    - 'IsMatch(name, "(inbound|outbound)_tcp_detect_http_duration_seconds")'
    - 'IsMatch(name, "outbound_tcp_balancer_queue_.*")'
    - 'name == "scrape_duration_seconds" or name == "scrape_samples_scraped" or name == "scrape_samples_post_metric_relabeling"'
    pipelines:
    metrics/linkerd:
    receivers: [prometheus]
    processors: [memory_limiter, resource/strip_service, transform/k8s, transform/deployment, transform/metadata_nullify, filter/drop_unused, resource/newrelic, batch]
    exporters: [otlp_http/newrelic]
  3. ConfigMap을 다시 적용하고 수집기 배포를 다시 시작하십시오.

    bash
    $
    kubectl apply -f rendered/deployment-configmap.yaml -n newrelic
    $
    kubectl rollout restart deployment -n newrelic

데이터 찾기

  1. one.newrelic.com > All capabilities > All entities 으)로 이동합니다.

  2. 클러스터 이름을 검색하십시오.

  3. Linkerd 엔티티를 선택하여 내장 대시보드를 여십시오.

    내장 대시보드는 요청 비율, 지연시간 p50/p95/p99, 성공률, TCP 연결, mTLS 인증서 상태, 컨트롤 플레인 상태 및 메시된 파드 인벤토리를 포함합니다. 자세한 내용은 Linkerd 데이터 찾기 문서를 참조하십시오.

OpenTelemetry를 사용한 Linkerd 분산 추적

프록시 트레이스 내보내기를 활성화하고 애플리케이션 파드를 계측하여 메시 스팬을 APM 트레이스와 연관시키십시오.

Linkerd 프록시 로그 수집

선택적으로

linkerd-proxy

사이드카 컨테이너 로그를 수집하십시오.

지표 참조

OTel Collector가 수집한 Linkerd 메트릭 및 리소스 속성의 전체 목록입니다.

Copyright © 2026 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.