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의 경로를 구성해야 합니다. 사용자 정의 수신자 규칙을 업데이트하려면 다음 단계를 완료합니다.
alertmanager-config
시크릿에서 데이터를 추출합니다. 다음 명령을 실행합니다.oc -n open-cluster-management-observability get secret alertmanager-config --template='{{ index .data "alertmanager.yaml" }}' |base64 -d > alertmanager.yaml
다음 명령을 실행하여
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
시크릿을 생성하고 마운트하려면 다음 단계를 완료합니다.
TLS 인증서를 사용하여
tls
보안을 생성하려면 다음 명령을 실행합니다.oc create secret tls tls --cert=</path/to/cert.crt> --key=</path/to/cert.key> -n open-cluster-management-observability
tls
시크릿을MultiClusterObservability
리소스에 마운트하려면고급
섹션에 추가합니다. 리소스는 다음 콘텐츠와 유사할 수 있습니다.... advanced: alertmanager: secrets: ['tls']
Alertmanager 설정 내에
tls
시크릿 참조를 추가하려면 구성에 시크릿 경로를 추가합니다. 리소스는 다음 구성과 유사할 수 있습니다.tls_config: cert_file: '/etc/alertmanager/secrets/tls/tls.crt' key_file: '/etc/alertmanager/secrets/tls/tls.key'
보안이
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"
alertmanager.yaml
구성을alertmanager-config
시크릿에 저장하려면 다음 명령을 실행합니다.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=-
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 터미널에 다음 명령을 입력하여 silenceSampleAlert
:amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" alertname="SampleAlert"
여러 일치 레이블을 사용하여 경고를 음소거합니다. 다음 명령은
match-label-1
및match-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
리소스를 사용하는 새 StatefulSets
및 PersistentVolumes
(PV) 리소스를 생성하여 Red Hat Advanced Cluster Management observability 스토리지를 마이그레이션합니다.
참고: PV의 스토리지는 클러스터에서 수집된 지표를 저장하는 데 사용되는 오브젝트 스토리지와 다릅니다.
StatefulSets
및 PV를 사용하여 관찰 기능 데이터를 새 스토리지로 마이그레이션하는 경우 다음 데이터 구성 요소가 저장됩니다.
- Observatorium 또는 Thanos: 데이터를 수신한 다음 오브젝트 스토리지에 업로드합니다. 일부 구성 요소는 PV에 데이터를 저장합니다. 이 데이터의 경우 Observatorium 또는 Thanos는 시작 시 오브젝트 스토리지를 자동으로 다시 생성하므로 이 데이터를 손실해도 결과가 발생하지 않습니다.
- Alertmanager: 음소거된 경고만 저장합니다. 이러한 음소거된 경고를 유지하려면 해당 데이터를 새 PV로 마이그레이션해야 합니다.
관찰성 스토리지를 마이그레이션하려면 다음 단계를 완료합니다.
-
MultiClusterObservability
에서.spec.storageConfig.storageClass
필드를 새 스토리지 클래스로 설정합니다. -
PersistentVolumeClaim
을 삭제할 때에도 이전PersistentVolumes
의 데이터를 유지하려면 기존의 모든PersistentVolumes
로 이동합니다. -
reclaimPolicy
를"Retain": 'oc patch pv <your-pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'
로 변경합니다. - 선택 사항: 데이터 손실을 방지하려면 OCP 4의 DG 8 Operator의 다른 스토리지 클래스로 영구 데이터 마이그레이션 을 참조하십시오.
다음 StatefulSet 사례에서
StatefulSet
PersistentVolumeClaim
을 둘 다 삭제합니다.-
alertmanager-db-observability-alertmanager-<REPLICA_NUMBER>
-
data-observability-thanos-<COMPONENT_NAME>
-
data-observability-thanos-receive-default
-
data-observability-thanos-store-shard
-
중요: 새
StatefulSet
을 생성할 수 있도록MultiClusterObservability
Operator Pod를 삭제한 후 다시 생성해야 할 수 있습니다.
-
-
이름이 동일하지만 올바른
StorageClass
를 사용하여 새PersistentVolumeClaim
을 다시 생성합니다. -
이전
PersistentVolume
을 참조하는 새PersistentVolumeClaim
을 생성합니다. -
새
StatefulSet
및PersistentVolumes
에서 선택한 새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_match
및target_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. 추가 리소스
- 자세한 내용은 관찰 기능 사용자 지정을 참조하십시오.
- 자세한 관찰 기능 항목은 Observability 서비스를 참조하십시오.