1.5. 경고 관리
허브 클러스터 및 관리 클러스터 활동을 모두 모니터링하고, 허브 클러스터의 Alertmanager에 플랫폼 및 사용자 워크로드 경고를 전달하며 Slack, 이메일 또는 PagerDuty와 같은 외부 시스템으로 알림을 라우팅하도록 Observability 경고를 구성합니다.
자세한 내용을 보려면 계속 읽으십시오.
1.5.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
다음 인증 정보가 있어야 하며 경고를 관리하려면 다음 작업을 완료해야 합니다.
- 허브 클러스터에서 Observability를 활성화합니다.
-
open-cluster-management-observability
네임스페이스에서Secret
리소스에 대한 생성 권한이 있어야 합니다. -
MultiClusterObservability
리소스에 대한 편집 권한이 있어야 합니다. - 다시 시작하는 동안 메트릭 손실을 방지할 수 있도록 관리형 클러스터에서 Prometheus 인스턴스를 구성합니다. 자세한 내용은 OpenShift Container Platform 설명서에서 영구 스토리지 구성 을 참조하십시오.
- 관리 클러스터에서 사용자 워크로드 모니터링 및 경고를 활성화합니다. 자세한 내용은 OpenShift Container Platform 설명서에서 사용자 워크로드 모니터링 및 경고 관리를 참조하십시오.
-
Prometheus의 사용자 워크로드의 경우
openshift-user-workload-monitoring
네임스페이스에 배포된 사용자 워크로드 Prometheus만 경고 규칙을 평가하고 Thanos Ruler 인스턴스가 처리하지 못하도록 규칙을 경고하는 레이블을 추가합니다. 자세한 내용은 OpenShift Container Platform 설명서에서 사용자 정의 프로젝트에 대한 경고 규칙 생성 을 참조하십시오.
1.5.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
oc -n open-cluster-management-observability get secret alertmanager-config --template='{{ index .data "alertmanager.yaml" }}' |base64 -d > alertmanager.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
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=-
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=-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 업데이트된 시크릿은 다음 콘텐츠와 유사할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
시크릿을 수정한 후 변경 사항이 즉시 적용됩니다. Alertmanager의 예는 prometheus/alertmanager 를 참조하십시오.
1.5.3. Alertmanager에서 타사 엔드포인트로의 통신 보안 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes Secret
리소스를 통해 인증 정보를 안전하고 관리할 수 있도록 하여 Alertmanager에서 Slack, 이메일, PagerDuty와 같은 타사 엔드포인트에서 보안 외부 통신을 활성화합니다. 권한 부여 인증 정보에 액세스하기 위해 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
oc create secret tls tls --cert=</path/to/cert.crt> --key=</path/to/cert.key> -n open-cluster-management-observability
Copy to Clipboard Copied! Toggle word wrap Toggle overflow tls
시크릿을MultiClusterObservability
리소스에 마운트하려면고급
섹션에 추가합니다. 리소스는 다음 콘텐츠와 유사할 수 있습니다.... advanced: alertmanager: secrets: ['tls']
... advanced: alertmanager: secrets: ['tls']
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Alertmanager 설정 내에
tls
시크릿 참조를 추가하려면 구성에 시크릿 경로를 추가합니다. 리소스는 다음 구성과 유사할 수 있습니다.tls_config: cert_file: '/etc/alertmanager/secrets/tls/tls.crt' key_file: '/etc/alertmanager/secrets/tls/tls.key'
tls_config: cert_file: '/etc/alertmanager/secrets/tls/tls.crt' key_file: '/etc/alertmanager/secrets/tls/tls.key'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안이
alertmanager
pod 내에 있는지 확인하려면 다음 명령을 실행합니다.oc -n open-cluster-management-observability get secret alertmanager-config --template='{{ index .data "alertmanager.yaml" }}' |base64 -d > alertmanager.yaml
oc -n open-cluster-management-observability get secret alertmanager-config --template='{{ index .data "alertmanager.yaml" }}' |base64 -d > alertmanager.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML은 다음 내용과 유사할 수 있습니다.
"global": "http_config": "tls_config": "cert_file": "/etc/alertmanager/secrets/storyverify/tls.crt" "key_file": "/etc/alertmanager/secrets/storyverify/tls.key"
"global": "http_config": "tls_config": "cert_file": "/etc/alertmanager/secrets/storyverify/tls.crt" "key_file": "/etc/alertmanager/secrets/storyverify/tls.key"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 create secret generic alertmanager-config --from-file=alertmanager.yaml --dry-run -o=yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 보안을 새 보안으로 교체하려면 다음 명령을 실행합니다.
oc -n open-cluster-management-observability replace secret --filename=-
oc -n open-cluster-management-observability replace secret --filename=-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.4. 경고 전달 링크 복사링크가 클립보드에 복사되었습니다!
Observability를 활성화하면 OpenShift Container Platform 관리 클러스터의 경고가 허브 클러스터의 Alertmanager로 자동으로 전송됩니다. 기본적으로 모든 플랫폼 경고는 허브 클러스터의 Alertmanager로 전송됩니다. OpenShift Container Platform 관리 클러스터에서 사용자 워크로드 경고를 활성화하면 사용자 워크로드 경고도 허브 클러스터로 전송됩니다. alertmanager-config
YAML 파일을 사용하여 외부 알림 시스템으로 경고를 구성할 수 있습니다.
alertmanager-config
YAML 파일의 다음 예제를 확인합니다.
경고 전달을 위해 프록시를 구성하려면 다음 글로벌
항목을 alertmanager-config
YAML 파일에 추가합니다.
global: slack_api_url: '<slack_webhook_url>' http_config: proxy_url: http://****
global:
slack_api_url: '<slack_webhook_url>'
http_config:
proxy_url: http://****
사용자 워크로드 경고를 전달하려면 Thanos ruler가 아닌 사용자 워크로드 Prometheus 인스턴스에서 경고를 처리해야 합니다. PrometheusRule
리소스의 다음 예제를 참조하십시오.
apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: labels: openshift.io/prometheus-rule-evaluation-scope: leaf-prometheus
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
labels:
openshift.io/prometheus-rule-evaluation-scope: leaf-prometheus
1.5.5. 관리 클러스터에 대한 경고 전달 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
관리 클러스터에 대한 경고 전달을 비활성화하려면 mco-disable-alerting: "true"
주석을 MultiClusterObservability
사용자 정의 리소스에 추가합니다. mco-disable-alerting: "true"
주석을 설정하면 플랫폼 및 사용자 워크로드 경고가 허브 클러스터의 Alertmanager로 전달되지 않습니다. 관리 클러스터의 전달 구성이 복원됩니다.
openshift-monitoring
네임스페이스의 cluster-monitoring-config
구성 맵에 대한 구성 업데이트가 복원됩니다. 주석을 설정하면 Observability Operator 끝점에서 cluster-monitoring-config
구성 맵을 관리하거나 업데이트하지 않습니다. 구성을 업데이트한 후 관리 클러스터의 플랫폼 및 사용자 워크로드 Prometheus 인스턴스가 모두 다시 시작됩니다. 다음 단계를 완료합니다.
변경 사항을 되돌리면 open-cluster-management-addon-observability
네임스페이스에 cluster-monitoring-reverted
라는 구성 맵이 생성됩니다. 수동으로 추가된 새 경고 전달 구성은 구성 맵에서 되돌리지 않습니다.
다음 명령을 실행하여
mco-disable-alerting
주석을"true"
로 설정합니다.oc annotate MultiClusterObservability observability mco-disable-alerting=true
oc annotate MultiClusterObservability observability mco-disable-alerting=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요: 관리 클러스터의 Prometheus가 영구 볼륨으로 구성되지 않은 경우 메트릭이 손실됩니다.
- 허브 클러스터 경고 관리자가 더 이상 관리된 클러스터 경고를 타사 메시징 툴에 전파하지 않는지 확인합니다.
1.5.6. 관리 클러스터에 대한 사용자 워크로드 경고 전달 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
관리 클러스터에 대한 사용자 워크로드 경고 전달을 비활성화하려면 mco-disable-uwl-alerting: "true"
주석을 MultiClusterObservability
사용자 정의 리소스에 추가합니다. 주석을 설정하면 허브 클러스터의 Alertmanager로 사용자 워크로드 경고를 전달하고 플랫폼 경고가 Alertmanager로 계속 전달됩니다.
주석을 설정하면 Observability Operator 끝점에 의해 user-workload-monitoring-config
구성 맵이 관리되거나 업데이트되지 않습니다. configuraion을 업데이트한 후 관리형 클러스터의 사용자 워크로드 Prometheus 인스턴스가 다시 시작됩니다.
다음 명령을 실행하여 mco-disable-uwl-alerting
주석을 "true"
로 설정합니다.
oc annotate MultiClusterObservability observability mco-disable-uwl-alerting=true
oc annotate MultiClusterObservability observability mco-disable-uwl-alerting=true
1.5.7. 음소거 경고 링크 복사링크가 클립보드에 복사되었습니다!
수신하지 않으려는 경고를 추가합니다. 경고 이름, 일치 레이블 또는 시간 기간으로 경고를 음소거할 수 있습니다. 음소거하려는 경고를 추가하면 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"
amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" alertname="SampleAlert"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 일치 레이블을 사용하여 경고를 음소거합니다. 다음 명령은
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>
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>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 특정 기간 동안 경고를 음소거하려면
--duration
플래그를 사용합니다. 다음 명령을 실행하여SampleAlert
를 1시간 동안 음소거합니다.amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" --duration="1h" alertname="SampleAlert"
amtool silence add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" --duration="1h" alertname="SampleAlert"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 음소거된 경고의 시작 또는 종료 시간을 지정할 수도 있습니다. 다음 명령을 입력하여 특정 시작 시
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 add --alertmanager.url="http://localhost:9093" --author="user" --comment="Silencing sample alert" --start="2023-04-14T15:04:05-07:00" alertname="SampleAlert"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 생성된 모든 음소거 경고를 보려면 다음 명령을 실행합니다.
amtool silence --alertmanager.url="http://localhost:9093"
amtool silence --alertmanager.url="http://localhost:9093"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 더 이상 경고를 음소거하지 않으려면 다음 명령을 실행하여 경고의 실칭을 종료합니다.
amtool silence expire --alertmanager.url="http://localhost:9093" "d839aca9-ed46-40be-84c4-dca8773671da"
amtool silence expire --alertmanager.url="http://localhost:9093" "d839aca9-ed46-40be-84c4-dca8773671da"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 경고의 silencing을 종료하려면 다음 명령을 실행합니다.
amtool silence expire --alertmanager.url="http://localhost:9093" $(amtool silence query --alertmanager.url="http://localhost:9093" -q)
amtool silence expire --alertmanager.url="http://localhost:9093" $(amtool silence query --alertmanager.url="http://localhost:9093" -q)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.8. 관찰성 스토리지 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
경고 음소거를 사용하는 경우 음소거를 이전 상태에서 유지하면서 관찰 기능을 마이그레이션할 수 있습니다. 이렇게 하려면 선택한 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.5.9. 경고 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
전 세계적으로 클러스터 전체에서 Red Hat Advanced Cluster Management 경고를 표시하지 않도록 합니다. open-cluster-management-observability
네임스페이스에서 alertmanager-config
에서 억제 규칙을 정의하여 경고를 비활성화합니다.
억제 규칙은 기존의 다른 일치 항목 집합과 일치하는 매개 변수 집합이 있는 경우 경고를 음소거합니다. 규칙을 적용하려면 대상 및 소스 경고 모두 동일한 목록의 라벨 이름에 대해 동일한 레이블 값이 있어야 합니다.
inhibit_rules
는 다음과 유사할 수 있습니다.
- 1 1
inhibit_rules
매개 변수 섹션은 동일한 네임스페이스에서 경고를 찾도록 정의됩니다. 네임스페이스 내에서 위험 경고가 시작되고 해당 네임스페이스에 심각도 수준 경고 또는정보가
포함된 기타경고가
있는 경우중요한
경고만 Alertmanager 수신자로 라우팅됩니다.일치하는 경우 다음 경고가 표시될 수 있습니다.
ALERTS{alertname="foo", namespace="ns-1", severity="critical"} ALERTS{alertname="foo", namespace="ns-1", severity="warning"}
ALERTS{alertname="foo", namespace="ns-1", severity="critical"} ALERTS{alertname="foo", namespace="ns-1", severity="warning"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 2 2
source_match
및target_match_re
매개변수의 값이 일치하지 않으면 경고가 수신자로 라우팅됩니다.ALERTS{alertname="foo", namespace="ns-1", severity="critical"} ALERTS{alertname="foo", namespace="ns-2", severity="warning"}
ALERTS{alertname="foo", namespace="ns-1", severity="critical"} ALERTS{alertname="foo", namespace="ns-2", severity="warning"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Red Hat Advanced Cluster Management에서 억제된 경고를 보려면 다음 명령을 입력합니다.
amtool alert --alertmanager.url="http://localhost:9093" --inhibited
amtool alert --alertmanager.url="http://localhost:9093" --inhibited
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.10. 추가 리소스 링크 복사링크가 클립보드에 복사되었습니다!
- 자세한 내용은 Observability 고급 구성 을 참조하십시오.
- 자세한 관찰 기능 항목은 Observability 서비스를 참조하십시오.