4장. Alertmanager에 대한 보안 설정

OpenShift Container Platform 모니터링 스택에는 경고를 Prometheus에서 끝점 수신자로 라우팅하는 Alertmanager가 포함되어 있습니다. Alertmanager가 경고를 보낼 수 있도록 수신자로 인증해야 하는 경우 수신자에 대한 인증 자격 증명이 포함된 보안을 사용하도록 Alertmanager를 구성할 수 있습니다.

예를 들어, 보안을 사용하여 개인 CA(인증 기관)에서 발급한 인증서를 요구하는 끝점 수신자로 인증하도록 Alertmanager를 구성할 수 있습니다. 기본 HTTP 인증에 대한 암호 파일이 필요한 수신자로 인증하도록 Alertmanager를 구성할 수도 있습니다. 두 경우 모두 인증 세부 정보는 ConfigMap 오브젝트가 아닌 Secret 오브젝트에 포함됩니다.

4.1. Alertmanager 설정에 시크릿 추가

openshift-monitoring 프로젝트에서 cluster-monitoring-config 구성 맵을 편집하여 코어 플랫폼 모니터링 구성 요소의 Alertmanager 구성에 보안을 추가할 수 있습니다.

구성 맵에 보안을 추가하면 Alertmanager Pod에 대한 alertmanager 컨테이너 내의 /etc/alertmanager/secrets/<secret_name >에 볼륨으로 마운트됩니다.

사전 요구 사항

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

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

    • 클러스터 관리자가 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
    • cluster-admin 클러스터 역할의 사용자로 또는 openshift-user-workload-monitoring 프로젝트에서 user-workload-monitoring-config-edit 역할의 사용자로 클러스터에 액세스할 수 있습니다.
    • openshift-user-workload-monitoring 프로젝트의 Alertmanager에 구성할 시크릿을 생성했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

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

    • 코어 플랫폼 모니터링을 위해 Alertmanager에 시크릿 구성을 추가하려면 다음을 수행합니다.

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

        $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
      2. 다음 구성을 사용하여 data/config.yaml/alertmanagerMain 아래에 secrets: 섹션을 추가합니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cluster-monitoring-config
          namespace: openshift-monitoring
        data:
          config.yaml: |
            alertmanagerMain:
              secrets: 1
              - <secret_name_1> 2
              - <secret_name_2>
        1
        이 섹션에는 Alertmanager에 마운트할 시크릿이 포함되어 있습니다. 보안은 Alertmanager 오브젝트와 동일한 네임스페이스 내에 있어야 합니다.
        2
        수신자에 대한 인증 자격 증명이 포함된 Secret 오브젝트의 이름입니다. 보안을 여러 개 추가하는 경우 각각을 새 줄에 배치합니다.

        다음 샘플 구성 맵 설정은 test-secret-basic-authtest-secret-api-token 이라는 두 개의 Secret 오브젝트를 사용하도록 Alertmanager를 구성합니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: cluster-monitoring-config
          namespace: openshift-monitoring
        data:
          config.yaml: |
            alertmanagerMain:
              secrets:
              - test-secret-basic-auth
              - test-secret-api-token
    • 사용자 정의 프로젝트 모니터링을 위해 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/alertmanager/secrets 아래에 secrets: 섹션을 추가합니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: user-workload-monitoring-config
          namespace: openshift-user-workload-monitoring
        data:
          config.yaml: |
            alertmanager:
              secrets: 1
              - <secret_name_1> 2
              - <secret_name_2>
        1
        이 섹션에는 Alertmanager에 마운트할 시크릿이 포함되어 있습니다. 보안은 Alertmanager 오브젝트와 동일한 네임스페이스 내에 있어야 합니다.
        2
        수신자에 대한 인증 자격 증명이 포함된 Secret 오브젝트의 이름입니다. 보안을 여러 개 추가하는 경우 각각을 새 줄에 배치합니다.

        다음 샘플 구성 맵 설정은 test-secrettest-secret-api-token:이라는 두 개의 Secret 오브젝트를 사용하도록 Alertmanager를 구성합니다.

        apiVersion: v1
        kind: ConfigMap
        metadata:
          name: user-workload-monitoring-config
          namespace: openshift-user-workload-monitoring
        data:
          config.yaml: |
            alertmanager:
              enabled: true
              secrets:
              - test-secret
              - test-api-receiver-token
        참고

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

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