1.6. 경고 관리


hub 클러스터 및 관리 클러스터 변경에 대한 알림을 받을 관찰 기능 서비스에 대한 경고를 수신하고 정의합니다.

1.6.1. 사전 요구 사항

  • 허브 클러스터에서 관찰 기능을 활성화해야 합니다.
  • open-cluster-management-observability 네임스페이스에 시크릿 리소스에 대한 생성 권한이 있어야 합니다.
  • MultiClusterObservability 리소스에 대한 편집 권한이 있어야 합니다.

1.6.2. Alertmanager 구성

이메일, Slack, PagerDuty와 같은 외부 메시징 도구를 통합하여 Alertmanager에서 알림을 수신합니다. 통합을 추가하려면 open-cluster-management-observability 네임스페이스에서 alertmanager-config 시크릿을 재정의하고 Alertmanager의 경로를 구성해야 합니다. 사용자 정의 수신자 규칙을 업데이트하려면 다음 단계를 완료합니다.

  1. alertmanager-config 시크릿에서 데이터를 추출합니다. 다음 명령을 실행합니다.

    oc -n open-cluster-management-observability get secret alertmanager-config --template='{{ index .data "alertmanager.yaml" }}' |base64 -d > alertmanager.yaml
  2. 다음 명령을 실행하여 alertmanager.yaml 파일 구성을 편집하고 저장합니다.

    oc -n open-cluster-management-observability create secret generic alertmanager-config --from-file=alertmanager.yaml --dry-run -o=yaml |  oc -n open-cluster-management-observability replace secret --filename=-

    업데이트된 시크릿은 다음 콘텐츠와 유사할 수 있습니다.

    global
      smtp_smarthost: 'localhost:25'
      smtp_from: 'alertmanager@example.org'
      smtp_auth_username: 'alertmanager'
      smtp_auth_password: 'password'
    templates:
    - '/etc/alertmanager/template/*.tmpl'
    route:
      group_by: ['alertname', 'cluster', 'service']
      group_wait: 30s
      group_interval: 5m
      repeat_interval: 3h
      receiver: team-X-mails
      routes:
      - match_re:
          service: ^(foo1|foo2|baz)$
        receiver: team-X-mails

변경 사항이 수정 후 즉시 적용됩니다. Alertmanager의 예는 prometheus/alertmanager 를 참조하십시오.

1.6.2.1. Alertmanager Pod 내에서 보안 마운트

권한 부여 인증 정보에 액세스하기 위해 alertmanager Pod 내에 마운트할 수 있는 임의의 콘텐츠로 Secret 리소스를 생성할 수 있습니다.

Alertmanager 구성 내에서 시크릿을 참조하려면 open-cluster-management-observability 네임스페이스에 Secret 리소스 콘텐츠를 추가하고 해당 콘텐츠를 alertmanager Pod에 마운트합니다. 예를 들어 tls 시크릿을 생성하고 마운트하려면 다음 단계를 완료합니다.

  1. TLS 인증서를 사용하여 tls 보안을 생성하려면 다음 명령을 실행합니다.

    oc create secret tls tls --cert=</path/to/cert.crt> --key=</path/to/cert.key> -n open-cluster-management-observability
  2. tls 시크릿을 MultiClusterObservability 리소스에 마운트하려면 고급 섹션에 추가합니다. 리소스는 다음 콘텐츠와 유사할 수 있습니다.

    ...
    advanced:
     alertmanager:
       secrets: ['tls']
  3. Alertmanager 설정 내에 tls 시크릿 참조를 추가하려면 구성에 시크릿 경로를 추가합니다. 리소스는 다음 구성과 유사할 수 있습니다.

    tls_config:
     cert_file: '/etc/alertmanager/secrets/tls/tls.crt'
     key_file: '/etc/alertmanager/secrets/tls/tls.key'
  4. 보안이 alertmanager pod 내에 있는지 확인하려면 다음 명령을 실행합니다.

    oc -n open-cluster-management-observability get secret alertmanager-config --template='{{ index .data "alertmanager.yaml" }}' |base64 -d > alertmanager.yaml

    YAML은 다음 내용과 유사할 수 있습니다.

    "global":
      "http_config":
        "tls_config":
          "cert_file": "/etc/alertmanager/secrets/storyverify/tls.crt"
          "key_file": "/etc/alertmanager/secrets/storyverify/tls.key"
  5. alertmanager.yaml 구성을 alertmanager-config 시크릿에 저장하려면 다음 명령을 실행합니다.

    oc -n open-cluster-management-observability create secret generic alertmanager-config --from-file=alertmanager.yaml --dry-run -o=yaml
  6. 이전 보안을 새 보안으로 교체하려면 다음 명령을 실행합니다.

    oc -n open-cluster-management-observability replace secret --filename=-

1.6.3. 경고 전달

관찰 기능을 활성화하면 OpenShift Container Platform 관리 클러스터의 경고가 허브 클러스터로 자동으로 전송됩니다. alertmanager-config YAML 파일을 사용하여 외부 알림 시스템으로 경고를 구성할 수 있습니다.

alertmanager-config YAML 파일의 다음 예제를 확인합니다.

global:
  slack_api_url: '<slack_webhook_url>'

route:
  receiver: 'slack-notifications'
  group_by: [alertname, datacenter, app]

receivers:
- name: 'slack-notifications'
  slack_configs:
  - channel: '#alerts'
    text: 'https://internal.myorg.net/wiki/alerts/{{ .GroupLabels.app }}/{{ .GroupLabels.alertname }}'

경고 전달을 위해 프록시를 구성하려면 다음 글로벌 항목을 alertmanager-config YAML 파일에 추가합니다.

global:
  slack_api_url: '<slack_webhook_url>'
  http_config:
    proxy_url: http://****

1.6.3.1. 관리 클러스터에 대한 경고 전달 비활성화

관리 클러스터에 대한 경고 전달을 비활성화하려면 MultiClusterObservability 사용자 정의 리소스에 다음 주석을 추가합니다.

metadata:
      annotations:
        mco-disable-alerting: "true"

주석을 설정하면 관리 클러스터에서 경고 전달 구성이 복원됩니다. openshift-monitoring 네임스페이스의 ocp-monitoring-config 구성 맵에 대한 변경 사항도 복원됩니다. 주석을 설정하면 ocp-monitoring-config 구성 맵이 더 이상 observability Operator 끝점에 의해 관리되거나 업데이트되지 않습니다. 구성을 업데이트하면 관리형 클러스터의 Prometheus 인스턴스가 다시 시작됩니다.

중요: 메트릭에 영구 볼륨이 있는 Prometheus 인스턴스가 있고 Prometheus 인스턴스가 다시 시작되면 관리 클러스터의 지표가 손실됩니다. hub 클러스터의 메트릭은 영향을 받지 않습니다.

변경 사항을 되돌리면 open-cluster-management-addon-observability 네임스페이스에 cluster-monitoring-reverted 라는 ConfigMap이 생성됩니다. ConfigMap에서 수동으로 추가한 새 경고 전달 구성이 복원되지 않습니다.

허브 클러스터 경고 관리자가 더 이상 관리된 클러스터 경고를 타사 메시징 툴에 전파하지 않는지 확인합니다. 이전 섹션, Alertmanager 구성 을 참조하십시오.

1.6.4. 음소거 경고

수신하지 않으려는 경고를 추가합니다. 경고 이름, 일치 레이블 또는 시간 기간으로 경고를 음소거할 수 있습니다. 음소거하려는 경고를 추가하면 ID가 생성됩니다. 음소거 경고의 ID는 d839aca9-ed46-40be-84c4-dca8773671da 문자열과 유사할 수 있습니다.

경고를 음소거하는 방법에 대해 계속 읽습니다.

  • Red Hat Advanced Cluster Management 경고를 음소거하려면 open-cluster-management-observability 네임스페이스의 alertmanager Pod에 액세스할 수 있어야 합니다. 예를 들어 observability-alertmanager-0 Pod 터미널에 다음 명령을 입력하여 silence SampleAlert:

    amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" alertname="SampleAlert"
  • 여러 일치 레이블을 사용하여 경고를 음소거합니다. 다음 명령은 match-label-1match-label-2 를 사용합니다.

    amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" <match-label-1>=<match-value-1> <match-label-2>=<match-value-2>
  • 특정 기간 동안 경고를 음소거하려면 --duration 플래그를 사용합니다. 다음 명령을 실행하여 SampleAlert 를 1시간 동안 음소거합니다.

    amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" --duration="1h" alertname="SampleAlert"

    음소거된 경고의 시작 또는 종료 시간을 지정할 수도 있습니다. 다음 명령을 입력하여 특정 시작 시 SampleAlert 를 음소거합니다.

    amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" --start="2023-04-14T15:04:05-07:00" alertname="SampleAlert"
  • 생성된 모든 음소거 경고를 보려면 다음 명령을 실행합니다.

    amtool silence --alertmanager.url="http://localhost:9093"
  • 더 이상 경고를 음소거하지 않으려면 다음 명령을 실행하여 경고의 실칭을 종료합니다.

    amtool silence expire --alertmanager.url="http://localhost:9093" "d839aca9-ed46-40be-84c4-dca8773671da"
  • 모든 경고의 silencing을 종료하려면 다음 명령을 실행합니다.

    amtool silence expire --alertmanager.url="http://localhost:9093" $(amtool silence query --alertmanager.url="http://localhost:9093" -q)

1.6.4.1. 관찰성 스토리지 마이그레이션

경고 음소거를 사용하는 경우 음소거를 이전 상태에서 유지하면서 관찰 기능을 마이그레이션할 수 있습니다. 이렇게 하려면 선택한 StorageClass 리소스를 사용하는 새 StatefulSetsPersistentVolumes (PV) 리소스를 생성하여 Red Hat Advanced Cluster Management observability 스토리지를 마이그레이션합니다.

참고: PV의 스토리지는 클러스터에서 수집된 지표를 저장하는 데 사용되는 오브젝트 스토리지와 다릅니다.

StatefulSets 및 PV를 사용하여 관찰 기능 데이터를 새 스토리지로 마이그레이션하는 경우 다음 데이터 구성 요소가 저장됩니다.

  • Observatorium 또는 Thanos: 데이터를 수신한 다음 오브젝트 스토리지에 업로드합니다. 일부 구성 요소는 PV에 데이터를 저장합니다. 이 데이터의 경우 Observatorium 또는 Thanos는 시작 시 오브젝트 스토리지를 자동으로 다시 생성하므로 이 데이터를 손실해도 결과가 발생하지 않습니다.
  • Alertmanager: 음소거된 경고만 저장합니다. 이러한 음소거된 경고를 유지하려면 해당 데이터를 새 PV로 마이그레이션해야 합니다.

관찰성 스토리지를 마이그레이션하려면 다음 단계를 완료합니다.

  1. MultiClusterObservability 에서 .spec.storageConfig.storageClass 필드를 새 스토리지 클래스로 설정합니다.
  2. PersistentVolumeClaim 을 삭제할 때에도 이전 PersistentVolumes 의 데이터를 유지하려면 기존의 모든 PersistentVolumes 로 이동합니다.
  3. reclaimPolicy"Retain": 'oc patch pv <your-pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' 로 변경합니다.
  4. 선택 사항: 데이터 손실을 방지하려면 OCP 4의 DG 8 Operator의 다른 스토리지 클래스로 영구 데이터 마이그레이션 을 참조하십시오.
  5. 다음 StatefulSet 사례에서 StatefulSet PersistentVolumeClaim 을 둘 다 삭제합니다.

    1. alertmanager-db-observability-alertmanager-<REPLICA_NUMBER>
    2. data-observability-thanos-<COMPONENT_NAME>
    3. data-observability-thanos-receive-default
    4. data-observability-thanos-store-shard
    5. 중요:StatefulSet 을 생성할 수 있도록 MultiClusterObservability Operator Pod를 삭제한 후 다시 생성해야 할 수 있습니다.
  6. 이름이 동일하지만 올바른 StorageClass 를 사용하여 새 PersistentVolumeClaim 을 다시 생성합니다.
  7. 이전 PersistentVolume 을 참조하는 새 PersistentVolumeClaim 을 생성합니다.
  8. StatefulSetPersistentVolumes 에서 선택한 새 StorageClass 를 사용하는지 확인합니다.

1.6.5. 경고 비활성화

전 세계적으로 클러스터 전체에서 Red Hat Advanced Cluster Management 경고를 표시하지 않도록 합니다. open-cluster-management-observability 네임스페이스에서 alertmanager-config 에서 억제 규칙을 정의하여 경고를 비활성화합니다.

억제 규칙은 기존의 다른 일치 항목 집합과 일치하는 매개 변수 집합이 있는 경우 경고를 음소거합니다. 규칙을 적용하려면 대상 및 소스 경고 모두 동일한 목록의 라벨 이름에 대해 동일한 레이블 값이 있어야 합니다. inhibit_rules 는 다음과 유사할 수 있습니다.

global:
  resolve_timeout: 1h
inhibit_rules:1
  - equal:
      - namespace
    source_match:2
      severity: critical
    target_match_re:
      severity: warning|info
1 1
inhibit_rules 매개 변수 섹션은 동일한 네임스페이스에서 경고를 찾도록 정의됩니다. 네임스페이스 내에서 위험 경고가 시작되고 해당 네임스페이스에 심각도 수준 경고 또는 정보가 포함된 기타 경고가 있는 경우 중요한 경고만 Alertmanager 수신자로 라우팅됩니다. 일치하는 경우 다음 경고가 표시될 수 있습니다.
ALERTS{alertname="foo", namespace="ns-1", severity="critical"}
ALERTS{alertname="foo", namespace="ns-1", severity="warning"}
2 2
source_matchtarget_match_re 매개변수의 값이 일치하지 않으면 경고가 수신자로 라우팅됩니다.
ALERTS{alertname="foo", namespace="ns-1", severity="critical"}
ALERTS{alertname="foo", namespace="ns-2", severity="warning"}
  • Red Hat Advanced Cluster Management에서 억제된 경고를 보려면 다음 명령을 입력합니다.
amtool alert --alertmanager.url="http://localhost:9093" --inhibited

1.6.6. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.