다음을 통해 공유


Azure Monitor Prometheus용 관리 서비스에서 Prometheus 메트릭 스크래핑 사용자 지정

이 문서에서는 Azure Monitor에서 메트릭 추가 기능을 사용하여 Kubernetes 클러스터에 대한 메트릭 스크래핑을 사용자 지정하는 방법에 대한 지침을 제공합니다.

Configmaps

메트릭 추가 항목에 대한 스크랩 구성 및 기타 설정을 제공하도록 네 가지 configmap을 구성할 수 있습니다. 모든 config-map은 모든 클러스터의 kube-system 네임스페이스에 적용해야 합니다.

참고 항목

관리되는 Prometheus를 사용하도록 설정한 경우 네 가지 configmap 모두 기본값으로 클러스터에 존재하지 않습니다. 사용자 지정해야 하는 항목에 따라 지정된 동일한 이름의 네 가지 configmap 중 일부 또는 전부를 kube-system 네임스페이스에 배포해야 합니다. AMA-Metrics Pod는 kube-system 네임스페이스에 배포가 끝나면 이러한 configmap을 선택하고 2-3분 후에 다시 시작하여 configmap에 지정된 구성 설정을 적용합니다.

  1. ama-metrics-settings-configmap 이 구성 맵에서는 아래의 간단한 설정을 구성할 수 있습니다. 위의 Git Hub 리포지토리에서 configmap을 가져와 필요한 설정을 변경하고 클러스터의 kube-system 네임스페이스에 configmap을 적용/배포할 수 있습니다.
    • 클러스터 별칭(클러스터에서 수집되는 모든 시계열/메트릭에서 cluster 레이블의 값을 변경하려는 경우)
    • 기본 스크래핑 대상 사용/사용 안 함 - 대상에 따라 기본 스크래핑을 켜거나 끕니다. 이러한 기본 대상에 대한 스크랩 구성은 이미 미리 정의/기본 제공됩니다.
    • 네임스페이스당 Pod 주석 기반 스크래핑 사용
    • 메트릭 keep-list - 이 설정은 각 기본 대상에서 허용되는 메트릭을 제어하고 기본 동작을 변경하는 데 사용됩니다.
    • 기본/pre-definetargets에 대한 스크랩 간격입니다. 30 secs는 기본 스크랩 빈도이며 이 configmap을 사용하여 기본 대상별로 변경할 수 있습니다.
    • 디버그 모드 - 이 모드를 켜면 누락된 메트릭/수집 문제를 디버그하는 데 도움이 됩니다. 자세한 내용은 문제 해결을 참조하세요.
  2. ama-metrics-prometheus-config 이 구성 맵은 addon 복제본에 대한 Prometheus 스크랩 구성을 제공하는 데 사용할 수 있습니다. Addon은 싱글톤 복제본을 실행하며, 이 configmap에서 스크랩 작업을 제공하여 클러스터 수준 서비스를 검색하고 스크랩할 수 있습니다. 위의 Git Hub 리포지토리에서 샘플 configmap을 가져와 필요한 스크랩 작업을 추가하고 클러스터의 kube-system 네임스페이스에 구성 맵을 적용/배포할 수 있습니다. 이 기능은 지원되지만 사용자 지정 대상을 스크랩하는 권장 방법은 사용자 지정 리소스를 사용하는 것입니다.
  3. ama-metrics-prometheus-config-node(고급) 이 구성 맵은 클러스터의 모든 Linux 노드에서 실행되는 addon DaemonSet에 대한 Prometheus 스크랩 구성을 제공하는 데 사용할 수 있으며, 각 노드의 모든 노드 수준 대상은 이 configmap에서 스크랩 작업을 제공하여 스크랩할 수 있습니다. 이 configmap을 사용하는 경우 스크랩 구성에서 $NODE_IP 변수를 사용할 수 있으며, 이 변수는 각 노드에서 실행되는 DaemonSet Pod에서 해당 노드의 IP 주소로 대체됩니다. 이렇게 하면 해당 노드에서 실행되는 모든 항목을 메트릭 addon DaemonSet으로부터 스크랩할 수 있습니다. 클러스터의 모든 노드가 대상을 검색하고 중복 메트릭을 수집하도록 설정되므로 이 노드 수준 구성 맵의 스크랩 구성에서 검색을 사용할 때는 주의하세요. 위의 Git Hub 리포지토리에서 샘플 configmap을 가져와 필요한 스크랩 작업을 추가하고, 클러스터의 kube-system 네임스페이스에 구성 맵을 적용/배포할 수 있습니다.
  4. ama-metrics-prometheus-config-node-windows(고급) 이 구성 맵은 클러스터의 모든 Windows 노드에서 실행되는 addon DaemonSet에 대한 Prometheus 스크랩 구성을 제공하는 데 사용할 수 있으며, 각 노드의 노드 수준 대상은 이 configmap에서 스크랩 작업을 제공하여 스크랩할 수 있습니다. 이 configmap을 사용하는 경우 스크랩 구성에서 $NODE_IP 변수를 사용할 수 있으며, 이 변수는 각 노드에서 실행되는 DaemonSet Pod에서 해당 노드의 IP 주소로 대체됩니다. 이렇게 하면 해당 노드에서 실행되는 모든 항목을 메트릭 addon DaemonSet으로부터 스크랩할 수 있습니다. 클러스터의 모든 노드가 대상을 검색하고 중복 메트릭을 수집하도록 설정되므로 이 노드 수준 구성 맵의 스크랩 구성에서 검색을 사용할 때는 주의하세요. 위의 Git Hub 리포지토리에서 샘플 configmap을 가져와 필요한 스크랩 작업을 추가하고, 클러스터의 kube-system 네임스페이스에 구성 맵을 적용/배포할 수 있습니다.

사용자 지정 리소스 정의

Azure Monitor 메트릭 추가 기능은 OSS Prometheus 연산자와 유사한 Prometheus - Pod 모니터 및 서비스 모니터를 사용하여 Prometheus 메트릭 스크랩을 지원합니다. 추가 기능을 사용하도록 설정하면 Pod 및 서비스 모니터 사용자 지정 리소스 정의가 배포되어 사용자 지정 리소스를 만들 수 있습니다. 지침에 따라 클러스터에 사용자 지정 리소스를 만들고 적용합니다.

메트릭 추가 기능 설정 configmap

ama-metrics-settings-configmap을 다운로드, 편집 및 클러스터에 적용하여 메트릭 추가 기능의 기본 기능을 사용자 지정할 수 있습니다.

기본 대상 사용 및 사용 안 함

다음 표에는 Azure Monitor 메트릭 추가 기능이 기본적으로 스크랩할 수 있는 모든 기본 대상 목록과 초기에 사용하도록 설정되어 있는지 여부가 나와 있습니다. 기본 대상은 30초마다 스크래핑됩니다. kube-state-metrics와 같은 클러스터 전체 대상을 스크랩하기 위해 복제본을 배포합니다. 또한 kubelet과 같은 노드 전체 대상을 스크랩하기 위해 DaemonSet도 배포됩니다.

Type Enabled Pod 설명
kubelet bool true Linux DaemonSet 추가 스크랩 구성 없이 K8s 클러스터의 모든 노드에서 kubelet을 스크랩합니다.
cadvisor bool true Linux DaemonSet 추가 스크랩 구성 없이 K8s 클러스터의 모든 노드에서 cAdvisor를 스크랩합니다.
Linux 전용입니다.
kubestate bool true Linux 복제본 추가 스크랩 구성 없이 K8s 클러스터(추가 기능의 일부로 설치됨)에서 kube-state-metrics를 스크랩합니다.
nodeexporter bool true Linux DaemonSet 추가 스크래핑 구성 없이 노드 메트릭을 스크래핑합니다.
Linux 전용입니다.
coredns bool false Linux 복제본 추가 스크랩 구성 없이 K8s 클러스터에서 coredns 서비스를 스크랩합니다.
kubeproxy bool false Linux DaemonSet 추가 스크랩 구성 없이 K8s 클러스터에서 검색된 모든 Linux 노드에서 kube-proxy를 스크랩합니다.
Linux 전용입니다.
apiserver bool false Linux 복제본 추가 스크랩 구성 없이 K8s 클러스터의 Kubernetes API 서버를 스크랩합니다.
windowsexporter bool false Windows DaemonSet 추가 스크랩 구성 없이 K8s 클러스터의 모든 노드에서 windows-exporter를 스크랩합니다.
Windows만 해당합니다.
windowskubeproxy bool false Windows DaemonSet 추가 스크랩 구성 없이 K8s 클러스터의 모든 노드에서 windows-kube-proxy를 스크랩합니다.
Windows만 해당합니다.
prometheuscollectorhealth bool false Linux 복제본 스크랩한 시계열의 양 및 크기와 같은 prometheus-collector 컨테이너에 대한 정보를 스크랩합니다.

기본적으로 사용하도록 설정되지 않은 기본 대상의 스크랩을 활성화하려면 configmap ama-metrics-settings-configmap을 편집하여 default-scrape-settings-enabled 아래에 나열된 대상을 true로 업데이트합니다. 클러스터에 configmap을 적용합니다.

Pod 주석 기반 스크랩핑 사용

사용자 지정 Prometheus 구성을 만들 필요 없이 애플리케이션 Pod를 스크랩하려면 Pod에 주석을 추가할 수 있습니다. Pod를 스크랩하려면 주석 prometheus.io/scrape: "true"가 필요합니다. 주석 prometheus.io/pathprometheus.io/port는 메트릭이 Pod에서 호스트되는 경로 및 포트를 나타냅니다. <pod IP>:8080/metrics에서 메트릭을 호스팅하는 Pod에 대한 주석은 다음과 같습니다.

metadata:   
  annotations:
    prometheus.io/scrape: 'true'
    prometheus.io/path: '/metrics'
    prometheus.io/port: '8080'

특정 주석을 사용하여 이러한 Pod를 스크랩하는 것은 기본적으로 사용하지 않도록 설정됩니다. 사용하도록 설정하려면 ama-metrics-settings-configmap에서 Pod의 네임스페이스에 대한 정규식을 필드 podannotationnamespaceregex의 값으로 스크랩하려는 주석과 함께 추가합니다.

예를 들어 다음 설정은 네임스페이스 kube-systemmy-namespace에만 주석이 있는 Pod를 스크랩합니다.

pod-annotation-based-scraping: |-
    podannotationnamespaceregex = "kube-system|my-namespace"

모든 네임스페이스에서 주석이 있는 Pod에 대해 스크랩을 사용하도록 설정하려면 다음을 사용합니다.

pod-annotation-based-scraping: |-
    podannotationnamespaceregex = ".*"

Warning

많은 네임스페이스에서 Pod 주석을 스크래핑하면 주석이 있는 Pod 수에 따라 매우 많은 양의 메트릭이 생성될 수 있습니다.

기본 대상에서 수집한 메트릭 사용자 지정

기본적으로 모든 기본 대상에 대해 기본 기록 규칙, 경고 및 Grafana 대시보드에 사용되는 최소 메트릭만 minimal-ingestion-profile에 설명된 대로 수집됩니다. 기본 대상에서 모든 메트릭을 수집하려면 default-targets-metrics-keep-list 아래의 설정 configmap에서 keep-lists를 업데이트하고 minimalingestionprofilefalse로 설정합니다.

허용하도록 나열된 기본 메트릭 외에 더 많은 메트릭을 허용 목록에 추가하려면 모든 기본 대상에 대해 default-targets-metrics-keep-list에서 변경하려는 해당 작업에 대한 설정을 편집합니다.

예를 들어 kubelet은 기본 대상 kubelet에 대한 메트릭 필터링 설정입니다. 다음 스크립트를 사용하여 정규식 기반 필터링을 사용하여 기본 대상에 대해 수집된 in 메트릭을 필터링합니다.

kubelet = "metricX|metricY"
apiserver = "mymetric.*"

참고 항목

정규식에서 따옴표나 백슬래시를 사용하는 경우 "test\'smetric\"s\""testbackslash\\* 예와 같이 백슬래시를 사용하여 이스케이프 처리해야 합니다.

컬렉션 빈도 또는 레이블과 같은 속성을 변경하도록 기본 작업을 추가로 사용자 지정하려면 대상에 대한 configmap 값을 false로 설정하여 해당 기본 대상을 사용하지 않도록 설정합니다. 그런 다음 사용자 지정 configmap을 사용하여 작업을 적용합니다. 사용자 지정 구성에 대한 자세한 내용은 Azure Monitor에서 Prometheus 메트릭 스크래핑 사용자 지정을 참조하세요.

클러스터 별칭

스크랩된 모든 시계열에 추가되는 클러스터 레이블은 전체 AKS 클러스터의 Azure Resource Manager 리소스 ID의 마지막 부분을 사용합니다. 예를 들어 리소스 ID가 /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/rg-name/providers/Microsoft.ContainerService/managedClusters/myclustername인 경우 클러스터 레이블은 myclustername입니다.

스크랩된 시계열의 클러스터 레이블을 재정의하려면 configmap ama-metrics-settings-configmap에서 cluster_alias 설정을 prometheus-collector-settings 아래의 임의 문자열로 업데이트합니다. 이 configmap이 클러스터에 없는 경우 새로 만들거나 클러스터에 이미 있는 경우 기존 configmap을 편집할 수 있습니다.

새 레이블은 기본 레이블 대신 Grafana 대시보드의 클러스터 매개 변수 드롭다운에도 표시됩니다.

참고 항목

영숫자 문자만 허용됩니다. 다른 모든 문자는 _로 바꿔집니다. 이 변경은 이 레이블을 사용하는 다른 구성 요소가 기본 영숫자 규칙을 준수하도록 하기 위한 것입니다. 기록 및 경고 규칙을 사용하도록 설정하는 경우 규칙이 작동하려면 규칙 온보딩 템플릿의 클러스터 이름 매개 변수에 클러스터 별칭 이름을 사용해야 합니다.

디버그 모드

Warning

이 모드는 성능에 영향을 줄 수 있으며 디버깅 목적으로 짧은 시간 동안만 사용하도록 설정해야 합니다.

디버깅을 위해 스크랩되는 모든 메트릭을 보려면 configmap ama-metrics-settings-configmapdebug-mode 설정에서 enabledtrue로 업데이트하여 메트릭 추가 기능 에이전트를 디버그 모드에서 실행하도록 구성할 수 있습니다. 이 configmap을 만들거나 기존 configmap을 편집할 수 있습니다. 자세한 내용은 Prometheus 메트릭 컬렉션 문제 해결의 디버그 모드 섹션을 참조하세요.

스크랩 간격 설정

모든 대상에 대한 스크랩 간격 설정을 업데이트하려면 configmap ama-metrics-settings-configmap에서 해당 대상에 대한 설정 default-targets-scrape-interval-settings에서 기간을 업데이트할 수 있습니다. 이 웹 사이트에 지정된 올바른 형식으로 스크랩 간격을 설정해야 합니다. 그렇지 않으면 기본값인 30초가 해당 대상에 적용됩니다. 예를 들어 kubelet 작업의 스크랩 간격을 60s로 업데이트하려는 경우 YAML에서 다음 섹션을 업데이트할 수 있습니다.

default-targets-scrape-interval-settings: |-
    kubelet = "60s"
    coredns = "30s"
    cadvisor = "30s"
    kubeproxy = "30s"
    apiserver = "30s"
    kubestate = "30s"
    nodeexporter = "30s"
    windowsexporter = "30s"
    windowskubeproxy = "30s"
    kappiebasic = "30s"
    prometheuscollectorhealth = "30s"
    podannotations = "30s"

다음 kubectl apply -f .\ama-metrics-settings-configmap.yaml 명령을 사용하여 YAML을 적용합니다.

사용자 지정 Prometheus 스크래핑 작업 구성

OSS Prometheus 연산자와 유사하게 Prometheus - Pod 모니터 및 서비스 모니터(권장)를 사용하여 Prometheus 메트릭을 스크랩할 수 있습니다. 지침에 따라 클러스터에 사용자 지정 리소스를 만들고 적용합니다.

또한 지침에 따라 클러스터에 대한 configmap을 만들기, 유효성 검사 및 적용할 수 있습니다. 구성 형식은 Prometheus 구성 파일과 유사합니다.

Prometheus 구성 팁 및 예제

이 섹션의 예에서 몇 가지 팁을 알아봅니다.

Pod 및 Service Monitor 템플릿을 사용하고 API 사양에 따라 사용자 지정 리소스(PodMonitorService Monitor)를 만듭니다. 참고 관리되는 Prometheus에서 선택하기 위해 기존 OSS CR에 필요한 유일한 변경 내용은 API 그룹(azmonitoring.coreos.com/v1)입니다. 자세한 내용은 여기를 참조하세요.

참고 항목

유효성 검사 오류로 인해 사용자 지정 스크랩 구성을 적용하지 못하는 경우 기본 스크랩 구성이 계속 사용됩니다.

모든 스크레이핑 작업에 적용되는 전역 설정을 사용하고 사용자 지정 리소스만 있는 경우에도 전역 설정만으로 configmap을 만들어야 합니다(사용자 지정 리소스의 각 설정은 전역 섹션의 항목을 재정의합니다.)

스크랩 구성

현재 사용자 지정 리소스에 대해 지원되는 대상 검색 방법은 Pod 및 서비스 모니터입니다.

Pod 및 서비스 모니터

Pod 및 서비스 모니터를 사용하여 발견된 대상에는 사용되는 모니터에 따라 다른 __meta_* 레이블이 있습니다. relabelings 섹션의 레이블을 사용하여 대상을 필터링하거나 대상의 레이블을 바꿀 수 있습니다.

Pod 및 서비스 모니터의 Pod 및 서비스 모니터 예를 참조하세요.

레이블 재지정

relabelings 섹션은 대상 검색 시 적용되며 작업의 각 대상에 적용됩니다. 다음 예에서는 relabelings를 사용하는 방법을 보여 줍니다.

레이블 추가

작업의 모든 메트릭에 값이 example_valueexample_label이라는 새 레이블을 추가합니다. 해당 레이블이 항상 존재하고 작업의 모든 대상에 대한 레이블을 추가하기 때문에 __address__를 원본 레이블로만 사용합니다.

relabelings:
- sourceLabels: [__address__]
  targetLabel: example_label
  replacement: 'example_value'

Pod 또는 서비스 모니터 레이블 사용

Pod 및 서비스 모니터를 사용하여 발견된 대상에는 사용되는 모니터에 따라 다른 __meta_* 레이블이 있습니다. 대상을 검색한 후 __* 레이블이 삭제됩니다. 메트릭 수준에서 사용하여 필터링하려면 먼저 레이블 이름을 할당하여 relabelings를 사용하여 유지합니다. 그런 다음 metricRelabelings를 사용하여 필터링합니다.

# Use the kubernetes namespace as a label called 'kubernetes_namespace'
relabelings:
- sourceLabels: [__meta_kubernetes_namespace]
  action: replace
  targetLabel: kubernetes_namespace

# Keep only metrics with the kubernetes namespace 'default'
metricRelabelings:
- sourceLabels: [kubernetes_namespace]
  action: keep
  regex: 'default'

작업 및 인스턴스 레이블 재지정

다른 레이블과 마찬가지로 원본 레이블을 기반으로 jobinstance 레이블 값을 변경할 수 있습니다.

# Replace the job name with the pod label 'k8s app'
relabelings:
- sourceLabels: [__meta_kubernetes_pod_label_k8s_app]
  targetLabel: job

# Replace the instance name with the node name. This is helpful to replace a node IP
# and port with a value that is more readable
relabelings:
- sourceLabels: [__meta_kubernetes_node_name]]
  targetLabel: instance

참고 항목

레이블 재지정 구성이 있는 경우 레이블 재지정으로 인해 대상이 필터링되지 않게 하고, 구성된 레이블이 대상과 올바르게 일치하도록 확인합니다.

메트릭 레이블 재지정

메트릭 레이블 재지정은 스크래핑 후 및 수집 전에 적용됩니다. metricRelabelings 섹션을 사용하여 스크래핑 후 메트릭을 필터링합니다. 다음 예에서는 이를 수행하는 방법을 보여 줍니다.

이름으로 메트릭 삭제

# Drop the metric named 'example_metric_name'
metricRelabelings:
- sourceLabels: [__name__]
  action: drop
  regex: 'example_metric_name'

이름으로 특정 메트릭만 유지

# Keep only the metric named 'example_metric_name'
metricRelabelings:
- sourceLabels: [__name__]
  action: keep
  regex: 'example_metric_name'
# Keep only metrics that start with 'example_'
metricRelabelings:
- sourceLabels: [__name__]
  action: keep
  regex: '(example_.*)'

메트릭 이름 바꾸기

메트릭 이름 바꾸기는 지원되지 않습니다.

레이블별로 메트릭 필터링

# Keep metrics only where example_label = 'example'
metricRelabelings:
- sourceLabels: [example_label]
  action: keep
  regex: 'example'
# Keep metrics only if `example_label` equals `value_1` or `value_2`
metricRelabelings:
- sourceLabels: [example_label]
  action: keep
  regex: '(value_1|value_2)'
# Keep metrics only if `example_label_1 = value_1` and `example_label_2 = value_2`
metricRelabelings:
- sourceLabels: [example_label_1, example_label_2]
  separator: ';'
  action: keep
  regex: 'value_1;value_2'
# Keep metrics only if `example_label` exists as a label
metricRelabelings:
- sourceLabels: [example_label_1]
  action: keep
  regex: '.+'

기본 인증

Prometheus 구성에서 basic_auth 설정을 사용하는 경우 다음 단계를 따릅니다.

  1. ama-metrics-mtls-secret이라는 이름의 kube-system 네임스페이스에 비밀을 만듭니다.

password1의 값은 base64encoded입니다.

password1 키는 무엇이든 가능하지만 scrapeconfig password_file 파일 경로와 일치해야 합니다.

apiVersion: v1
kind: Secret
metadata:
  name: ama-metrics-mtls-secret
  namespace: kube-system
type: Opaque
data:
  password1: <base64-encoded-string>

ama-metrics-mtls-secret 비밀은 /etc/prometheus/certs/ 경로의 ama-metrics 컨테이너에 탑재되며 prometheus 메트릭을 스크래핑하는 프로세스에서 사용할 수 있습니다. 위 예제의 키(예 - password1)는 파일 이름이고 값은 base64로 디코딩되어 컨테이너 내의 파일 내용에 추가되고 prometheus 스크래퍼는 이 파일의 내용을 사용하여 엔드포인트를 스크래핑하는 데 사용되는 암호로 사용되는 값을 가져옵니다.

  1. 사용자 지정 스크랩 구성을 위한 configmap에서 다음 설정을 사용합니다. 사용자 이름 필드에는 실제 사용자 이름 문자열이 포함되어야 합니다. password_file 필드에는 암호가 포함된 파일 경로가 포함되어야 합니다.
basic_auth:
  username: <username string>
  password_file: /etc/prometheus/certs/password1

위의 password_file의 경로를 제공하여 prometheus 스크래퍼는 /etc/prometheus/certs 경로에서 password1이라는 파일의 내용을 기본 인증 기반 스크래핑에 대한 암호 값으로 사용합니다.

기본 인증 및 tls 인증을 모두 사용하는 경우 아래 섹션을 참조하세요. 자세한 내용은 아래 참고 섹션를 참조하세요.

TLS 기반 스크래핑

Prometheus 인스턴스가 TLS와 함께 제공되고 메트릭을 스크랩하려는 경우 구성표를 https로 설정하고 configmap 또는 해당 CRD에서 TLS 설정을 지정해야 합니다. 아래 단계를 따르세요.

  1. ama-metrics-mtls-secret이라는 이름의 kube-system 네임스페이스에 비밀을 만듭니다. 비밀 개체의 데이터 섹션에 지정된 각 키-값 쌍은 데이터 섹션에 지정된 키와 동일한 파일 이름을 가진 별도의 파일로 이 /etc/prometheus/certs 위치에 탑재됩니다. 비밀 값은 데이터 섹션 아래에 배치하기 전에 아래와 같이 base64로 인코딩해야 합니다.

    다음은 YAML을 통해 비밀을 만드는 예제입니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: ama-metrics-mtls-secret
      namespace: kube-system
    type: Opaque
    data:
      <certfile>: base64_cert_content    
      <keyfile>: base64_key_content 
    

    ama-metrics-mtls-secret 비밀은 /etc/prometheus/certs/ 경로의 ama-metrics 컨테이너에 탑재되며 prometheus 메트릭을 스크래핑하는 프로세스에서 사용할 수 있습니다. 위 예제의 키(예 - certfile)는 파일 이름이고 값은 base64로 디코딩되어 컨테이너 내의 파일 내용에 추가되고 prometheus 스크래퍼는 이 파일의 내용을 사용하여 엔드포인트를 스크래핑하는 데 사용되는 암호로 사용되는 값을 가져옵니다.

  2. 다음은 configmap 또는 CRD를 통해 TLS 구성 설정을 제공하는 방법에 대한 세부 정보입니다.

  • configmap에서 TLS 구성 설정을 제공하려면 아래 예제를 따르세요.
tls_config:
    ca_file: /etc/prometheus/certs/<certfile> # since it is self-signed
    cert_file: /etc/prometheus/certs/<certfile>
    key_file: /etc/prometheus/certs/<keyfile>
    insecure_skip_verify: false

기본 인증 및 TLS

configmap/CRD에서 기본 및 Tls 인증 설정을 모두 사용하려는 경우 아래와 같이 비밀 ama-metrics-mtls-secret의 데이터 섹션 아래에 해당 기본 64로 인코딩된 값이 있는 모든 파일(키)이 포함되어 있는지 확인합니다.

apiVersion: v1
kind: Secret
metadata:
  name: ama-metrics-mtls-secret
  namespace: kube-system
type: Opaque
data:
  certfile: base64_cert_content    # used for Tls
  keyfile: base64_key_content      # used for Tls
  password1: base64-encoded-string # used for basic auth
  password2: base64-encoded-string # used for basic auth

참고 항목

참고 항목

/etc/prometheus/certs/ 경로는 필수이지만 password1은 임의의 문자열일 수 있으며 위에서 만들어진 비밀에 있는 데이터의 키와 일치해야 합니다. 이는 보안 비밀 ama-metrics-mtls-secret이 컨테이너 내 /etc/prometheus/certs/ 경로에 탑재되어 있기 때문입니다.

base64로 인코딩된 값은 비밀이 파일로 탑재될 때 에이전트 Pod에 의해 자동으로 디코딩됩니다.

비밀 이름이 ama-metrics-mtls-secret이고 kube-system 네임스페이스에 있는지 확인합니다.

비밀을 만든 다음, kube-system 네임스페이스에 configmap/CRD를 만들어야 합니다. 비밀 만들기는 순서가 중요합니다. 비밀은 없지만 유효한 CRD/구성 맵이 있으면 수집기 로그에서 다음 오류를 찾을 수 있습니다. >no file found for cert....

TLS 구성 설정을 자세히 알아보려면 이 구성을 따라 진행하세요

다음 단계

Prometheus 메트릭에 대한 경고 설정
Prometheus 메트릭 쿼리
Prometheus 메트릭 수집에 대해 자세히 알아보기