3장. 외부 Alertmanager 인스턴스 구성

OpenShift Container Platform 모니터링 스택에는 Prometheus의 경고를 라우팅하는 로컬 Alertmanager 인스턴스가 포함되어 있습니다. 외부 Alertmanager 인스턴스를 추가하여 핵심 OpenShift Container Platform 프로젝트 또는 사용자 정의 프로젝트에 대한 경고를 라우팅할 수 있습니다.

여러 클러스터에 대해 동일한 외부 Alertmanager 구성을 추가하고 각 클러스터에 대해 로컬 인스턴스를 비활성화하면 단일 외부 Alertmanager 인스턴스를 사용하여 여러 클러스터에 대한 경고 라우팅을 관리할 수 있습니다.

사전 요구 사항

  • openshift-monitoring 프로젝트에서 핵심 OpenShift Container Platform 모니터링 구성 요소를 구성하는 경우:

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

    • cluster-admin 클러스터 역할의 사용자로 또는 openshift-user-workload-monitoring 프로젝트에서 user-workload-monitoring-config-edit 역할의 사용자로 클러스터에 액세스할 수 있습니다.
    • user-workload-monitoring-config 구성 맵을 생성했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

절차

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

    • 핵심 OpenShift Container Platform 프로젝트의 라우팅 경고에 대한 추가 Alertmanager를 구성하려면 다음을 수행합니다.

      1. openshift-monitoring 프로젝트에서 cluster-monitoring-config 구성 맵을 편집합니다.

        $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
      2. data/config.yaml/prometheusK8s 아래에 additionalAlertmanagerConfigs: 섹션을 추가합니다.
      3. 이 섹션에서 추가 Alertmanagers의 설정 세부 정보를 추가합니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cluster-monitoring-config
          namespace: openshift-monitoring
        data:
          config.yaml: |
            prometheusK8s:
              additionalAlertmanagerConfigs:
              - <alertmanager_specification>

        <alertmanager_specification>의 경우 추가 Alertmanager 인스턴스의 인증 및 기타 구성 세부 정보를 대체합니다. 현재 지원되는 인증 방법은 베어러 토큰 (bearerToken) 및 클라이언트 TLS (tlsConfig)입니다. 다음 샘플 구성 맵은 클라이언트 TLS 인증이 있는 베어러 토큰을 사용하여 추가 Alertmanager를 구성합니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cluster-monitoring-config
          namespace: openshift-monitoring
        data:
          config.yaml: |
            prometheusK8s:
              additionalAlertmanagerConfigs:
              - scheme: https
                pathPrefix: /
                timeout: "30s"
                apiVersion: v1
                bearerToken:
                  name: alertmanager-bearer-token
                  key: token
                tlsConfig:
                  key:
                    name: alertmanager-tls
                    key: tls.key
                  cert:
                    name: alertmanager-tls
                    key: tls.crt
                  ca:
                    name: alertmanager-tls
                    key: tls.ca
                staticConfigs:
                - external-alertmanager1-remote.com
                - external-alertmanager1-remote2.com
    • 사용자 정의 프로젝트에서 라우팅 경고에 대한 추가 Alertmanager 인스턴스를 구성하려면 다음을 수행합니다.

      1. openshift-user-workload-monitoring 프로젝트에서 user-workload-monitoring-config 구성 맵을 편집합니다.

        $ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
      2. data/config.yaml/<component>/additionalAlertmanagerConfigs: 섹션을 추가합니다.
      3. 이 섹션에서 추가 Alertmanagers의 설정 세부 정보를 추가합니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: user-workload-monitoring-config
          namespace: openshift-user-workload-monitoring
        data:
          config.yaml: |
            <component>:
              additionalAlertmanagerConfigs:
              - <alertmanager_specification>

        <component>의 경우 지원되는 외부 Alertmanager 구성 요소인 prometheus 또는 thanosRuler 중 하나를 바꿉니다.

        <alertmanager_specification>의 경우 추가 Alertmanager 인스턴스의 인증 및 기타 구성 세부 정보를 대체합니다. 현재 지원되는 인증 방법은 베어러 토큰 (bearerToken) 및 클라이언트 TLS (tlsConfig)입니다. 다음 샘플 구성 맵은 베어러 토큰 및 클라이언트 TLS 인증으로 Thanos Ruler를 사용하여 추가 Alertmanager를 구성합니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: user-workload-monitoring-config
          namespace: openshift-user-workload-monitoring
        data:
          config.yaml: |
            thanosRuler:
              additionalAlertmanagerConfigs:
              - scheme: https
                pathPrefix: /
                timeout: "30s"
                apiVersion: v1
                bearerToken:
                  name: alertmanager-bearer-token
                  key: token
                tlsConfig:
                  key:
                    name: alertmanager-tls
                    key: tls.key
                  cert:
                    name: alertmanager-tls
                    key: tls.crt
                  ca:
                    name: alertmanager-tls
                    key: tls.ca
                staticConfigs:
                - external-alertmanager1-remote.com
                - external-alertmanager1-remote2.com
  2. 파일을 저장하여 ConfigMap 오브젝트에 대한 변경 사항을 적용합니다. 새로운 구성 요소 배치 구성이 자동으로 적용됩니다.

    참고

    클러스터 관리자가 사용자 정의 프로젝트에 대한 모니터링을 활성화하지 않는 한 user-workload-monitoring-config ConfigMap 오브젝트에 적용되는 구성이 활성화되어 있지 않습니다.

  3. 파일을 저장하여 ConfigMap 오브젝트에 대한 변경 사항을 적용합니다. 새로운 구성 요소 배치 구성이 자동으로 적용됩니다.