2.12. 메트릭에 클러스터 ID 라벨 추가


여러 OpenShift Container Platform 클러스터를 관리하고 원격 쓰기 기능을 사용하여 이러한 클러스터의 지표 데이터를 외부 스토리지 위치로 보내는 경우 클러스터 ID 레이블을 추가하여 다른 클러스터에서 제공되는 메트릭 데이터를 확인할 수 있습니다. 그런 다음 이러한 라벨을 쿼리하여 메트릭의 소스 클러스터를 식별하고 해당 데이터를 다른 클러스터에서 보낸 유사한 지표 데이터와 구별할 수 있습니다.

이렇게 하면 여러 고객의 여러 클러스터를 관리하고 지표 데이터를 단일 중앙 집중식 스토리지 시스템으로 보내는 경우 클러스터 ID 레이블을 사용하여 특정 클러스터 또는 고객의 메트릭을 쿼리할 수 있습니다.

클러스터 ID 레이블을 생성하고 사용하려면 세 가지 일반적인 단계가 필요합니다.

  • 원격 쓰기 스토리지에 대한 쓰기 재레이블 설정 구성.
  • 메트릭에 클러스터 ID 레이블을 추가합니다.
  • 이러한 라벨을 쿼리하여 메트릭의 소스 클러스터 또는 고객을 식별합니다.

2.12.1. 메트릭에 대한 클러스터 ID 라벨 생성

기본 플랫폼 모니터링 및 사용자 워크로드 모니터링에 대한 메트릭에 대한 클러스터 ID 레이블을 생성할 수 있습니다.

기본 플랫폼 모니터링의 경우 openshift-monitoring 네임스페이스의 cluster-monitoring-config 구성 맵에서 원격 쓰기 스토리지에 대한 write_relabel 설정에 메트릭의 클러스터 ID 레이블을 추가합니다.

사용자 워크로드 모니터링의 경우 openshift-user-workload-monitoring 네임스페이스에서 user-workload-monitoring-config 구성 맵의 설정을 편집합니다.

참고

Prometheus가 네임스페이스 레이블을 노출하는 사용자 워크로드 대상을 스크랩하면 시스템은 이 라벨을 exported_namespace 로 저장합니다. 이 동작을 수행하면 최종 네임스페이스 레이블 값이 대상 Pod의 네임스페이스와 동일합니다. PodMonitor 또는 ServiceMonitor 오브젝트에 대해 honorLabels 필드의 값을 true 로 설정하여 이 기본 구성을 덮어쓸 수 없습니다.

사전 요구 사항

  • 기본 플랫폼 모니터링 구성 요소를 구성하는 경우:

    • cluster-admin 클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다.
    • cluster-monitoring-config ConfigMap 오브젝트를 생성하셨습니다.
  • 사용자 정의 프로젝트를 모니터링하는 구성 요소를 구성하는 경우:

    • cluster-admin 클러스터 역할의 사용자로 또는 openshift-user-workload-monitoring 프로젝트에서 user-workload-monitoring-config-edit 역할의 사용자로 클러스터에 액세스할 수 있습니다.
    • user-workload-monitoring-config ConfigMap 오브젝트가 생성되어 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • 원격 쓰기 스토리지가 구성되어 있습니다.

절차

  1. ConfigMap 오브젝트를 편집합니다.

    • 핵심 OpenShift Container Platform 메트릭에 대한 클러스터 ID 레이블을 생성하려면 다음을 수행합니다.

      1. openshift-monitoring 프로젝트에서 cluster-monitoring-config ConfigMap 오브젝트를 편집합니다.

        $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
      2. data/config.yaml/prometheusK8s/remoteWritewriteRelabelConfigs: 섹션에서 클러스터 ID 재지정 구성 값을 추가합니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cluster-monitoring-config
          namespace: openshift-monitoring
        data:
          config.yaml: |
            prometheusK8s:
              remoteWrite:
              - url: "https://remote-write-endpoint.example.com"
                <endpoint_authentication_credentials>
                writeRelabelConfigs: 1
                  - <relabel_config> 2
        1
        원격 끝점에 보낼 지표의 쓰기 재라벨 구성 목록을 추가합니다.
        2
        원격 쓰기 엔드포인트로 전송된 지표의 레이블 구성을 대체합니다.

        다음 샘플에서는 기본 플랫폼 모니터링에서 클러스터 ID 라벨 cluster_id 를 사용하여 메트릭을 전달하는 방법을 보여줍니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cluster-monitoring-config
          namespace: openshift-monitoring
        data:
          config.yaml: |
            prometheusK8s:
              remoteWrite:
              - url: "https://remote-write-endpoint.example.com"
                writeRelabelConfigs:
                - sourceLabels:
                  - __tmp_openshift_cluster_id__ 1
                  targetLabel: cluster_id 2
                  action: replace 3
        1
        처음에 시스템은 __tmp_openshift_cluster_id___라는 임시 클러스터 ID 소스 레이블을 적용합니다. 이 임시 레이블은 지정한 클러스터 ID 레이블 이름으로 교체됩니다.
        2
        원격 쓰기 스토리지로 전송되는 지표의 클러스터 ID 레이블 이름을 지정합니다. 메트릭에 이미 존재하는 라벨 이름을 사용하는 경우 해당 값을 이 클러스터 ID 레이블의 이름으로 덮어씁니다. 레이블 이름의 경우 __tmp_openshift_cluster_id__ 를 사용하지 마십시오. 최종 레이블 재지정 단계에서 이 이름을 사용하는 라벨이 제거됩니다.
        3
        replace write relabel 작업은 임시 레이블을 발신 지표의 대상 레이블로 교체합니다. 이 작업은 기본값이며 작업이 지정되지 않은 경우 적용됩니다.
    • 사용자 정의 프로젝트 메트릭에 대한 클러스터 ID 레이블을 생성하려면 다음을 수행합니다.

      1. openshift-user-workload-monitoring 프로젝트에서 user-workload-monitoring-config ConfigMap 오브젝트를 편집합니다.

        $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
      2. data/config.yaml/prometheus/remoteWritewriteRelabelConfigs: 섹션에서 클러스터 ID 재레이블 구성 값을 추가합니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: user-workload-monitoring-config
          namespace: openshift-user-workload-monitoring
        data:
          config.yaml: |
            prometheus:
              remoteWrite:
              - url: "https://remote-write-endpoint.example.com"
                <endpoint_authentication_credentials>
                writeRelabelConfigs: 1
                  - <relabel_config> 2
        1
        원격 끝점에 보낼 지표의 쓰기 재라벨 구성 목록을 추가합니다.
        2
        원격 쓰기 엔드포인트로 전송된 지표의 레이블 구성을 대체합니다.

        다음 샘플은 user-workload 모니터링에서 클러스터 ID 레이블 cluster_id 를 사용하여 메트릭을 전달하는 방법을 보여줍니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: user-workload-monitoring-config
          namespace: openshift-user-workload-monitoring
        data:
          config.yaml: |
            prometheus:
              remoteWrite:
              - url: "https://remote-write-endpoint.example.com"
                writeRelabelConfigs:
                - sourceLabels:
                  - __tmp_openshift_cluster_id__ 1
                  targetLabel: cluster_id 2
                  action: replace 3
        1
        처음에 시스템은 __tmp_openshift_cluster_id___라는 임시 클러스터 ID 소스 레이블을 적용합니다. 이 임시 레이블은 지정한 클러스터 ID 레이블 이름으로 교체됩니다.
        2
        원격 쓰기 스토리지로 전송되는 지표의 클러스터 ID 레이블 이름을 지정합니다. 메트릭에 이미 존재하는 라벨 이름을 사용하는 경우 해당 값을 이 클러스터 ID 레이블의 이름으로 덮어씁니다. 레이블 이름의 경우 __tmp_openshift_cluster_id__ 를 사용하지 마십시오. 최종 레이블 재지정 단계에서 이 이름을 사용하는 라벨이 제거됩니다.
        3
        replace write relabel 작업은 임시 레이블을 발신 지표의 대상 레이블로 교체합니다. 이 작업은 기본값이며 작업이 지정되지 않은 경우 적용됩니다.
  2. 파일을 저장하여 ConfigMap 오브젝트에 대한 변경 사항을 적용합니다. 업데이트된 구성의 영향을 받는 Pod가 자동으로 다시 시작됩니다.

    주의

    모니터링 ConfigMap 오브젝트에 대한 변경 사항을 저장하면 관련 프로젝트에서 Pod 및 기타 리소스를 재배포할 수 있습니다. 변경 사항을 저장하면 해당 프로젝트에서 실행 중인 모니터링 를 다시 시작할 수도 있습니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.