1.3. 관찰 기능 사용자 정의
다음 섹션을 검토하여 observability 서비스에서 수집한 데이터의 사용자 정의, 관리 및 보기에 대해 자세히 알아보십시오.
must-gather
명령을 사용하여 관찰 가능한 리소스에 대해 생성된 새 정보에 대한 로그를 수집합니다. 자세한 내용은 문제 해결 문서의 Must-gather 섹션을 참조하십시오.
1.3.1. 사용자 정의 규칙 생성
관찰 가능성 리소스에 Prometheus 기록 규칙 및 경고 규칙을 추가하여 관찰 기능 설치에 대한 사용자 정의 규칙을 생성합니다. 자세한 내용은 Prometheus 구성을 참조하십시오.
- 레코딩 규칙은 필요에 따라 비용이 많이 드는 표현식을 사전 계산하거나 조작할 수 있는 기능을 제공합니다. 결과는 새로운 시계열 세트로 저장됩니다.
- 경고 규칙을 사용하면 경고를 외부 서비스로 전송하는 방법에 따라 경고 조건을 지정할 수 있습니다.
경고 조건을 생성하고 외부 메시징 서비스에 알림을 전송하도록 Prometheus를 사용하여 사용자 정의 규칙을 정의합니다. 참고: 사용자 정의 규칙을 업데이트하면 observability-thanos-rule
Pod가 자동으로 다시 시작됩니다.
open-cluster-management-observability
네임스페이스에 thanos-ruler-custom-rules
라는 ConfigMap을 생성합니다. 다음 예와 같이 키의 이름은 custom_rules.yaml
이어야 합니다. 구성에 여러 규칙을 생성할 수 있습니다.
기본적으로 기본으로 제공되는 경고 규칙은
open-cluster-management-observability
네임스페이스의thanos-ruler-default-rules
ConfigMap에 정의되어 있습니다.예를 들어 CPU 사용량이 정의된 값을 통과할 때 알리는 사용자 정의 경고 규칙을 만들 수 있습니다. YAML은 다음 콘텐츠와 유사할 수 있습니다.
data: custom_rules.yaml: | groups: - name: cluster-health rules: - alert: ClusterCPUHealth-jb annotations: summary: Notify when CPU utilization on a cluster is greater than the defined utilization limit description: "The cluster has a high CPU usage: {{ $value }} core for {{ $labels.cluster }} {{ $labels.clusterID }}." expr: | max(cluster:cpu_usage_cores:sum) by (clusterID, cluster, prometheus) > 0 for: 5s labels: cluster: "{{ $labels.cluster }}" prometheus: "{{ $labels.prometheus }}" severity: critical
data: custom_rules.yaml: | groups: - name: cluster-health rules: - alert: ClusterCPUHealth-jb annotations: summary: Notify when CPU utilization on a cluster is greater than the defined utilization limit description: "The cluster has a high CPU usage: {{ $value }} core for {{ $labels.cluster }} {{ $labels.clusterID }}." expr: | max(cluster:cpu_usage_cores:sum) by (clusterID, cluster, prometheus) > 0 for: 5s labels: cluster: "{{ $labels.cluster }}" prometheus: "{{ $labels.prometheus }}" severity: critical
Copy to Clipboard Copied! thanos-ruler-custom-rules
ConfigMap 내에서 사용자 정의 레코딩 규칙을 생성할 수도 있습니다.예를 들어 Pod의 컨테이너 메모리 캐시 합계를 가져오는 기능을 제공하는 기록 규칙을 생성할 수 있습니다. YAML은 다음 콘텐츠와 유사할 수 있습니다.
data: custom_rules.yaml: | groups: - name: container-memory recording_rules: - record: pod:container_memory_cache:sum expr: sum(container_memory_cache{pod!=""}) BY (pod, container)
data: custom_rules.yaml: | groups: - name: container-memory recording_rules: - record: pod:container_memory_cache:sum expr: sum(container_memory_cache{pod!=""}) BY (pod, container)
Copy to Clipboard Copied! 참고: 첫 번째 새 사용자 지정 규칙인 경우 즉시 생성됩니다. ConfigMap 변경의 경우 구성이 자동으로 다시 로드됩니다.
observability-thanos-ruler
사이드카 내의config-reload
로 인해 설정이 다시 로드됩니다.
경고 규칙이 적절하게 작동하는지 확인하려면 Grafana 대시보드를 시작하고 탐색 페이지로 이동한 다음 ALERTS
를 쿼리합니다. 경고가 시작된 경우에만 Grafana에서 경고를 사용할 수 있습니다.
1.3.2. AlertManager 구성
email, 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! 다음 명령을 실행하여
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! 업데이트된 보안은 다음 내용과 유사할 수 있습니다.
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
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
Copy to Clipboard Copied!
변경 사항은 수정 후 즉시 적용됩니다. AlertManager의 예는 prometheus/alertmanager 를 참조하십시오.
1.3.3. 사용자 정의 메트릭 추가
관리 클러스터에서 수집하려면 metrics_list.yaml
파일에 지표를 추가합니다.
사용자 지정 지표를 추가하기 전에 oc get
명령을 사용하여 mco observability가 활성화되어 있는지 확인합니다. mco observability
-o yamlstatus.conditions.message
읽기에서 다음 메시지가 있는지 확인합니다. Observability 구성 요소가 배포되어 실행 중인지 확인합니다
.
observability-metrics-custom-allowlist.yaml
이라는 파일을 생성하고 사용자 정의 메트릭의 이름을 metrics_list.yaml
매개변수에 추가합니다. ConfigMap의 YAML은 다음 콘텐츠와 유사할 수 있습니다.
kind: ConfigMap apiVersion: v1 metadata: name: observability-metrics-custom-allowlist data: metrics_list.yaml: | names: - node_memory_MemTotal_bytes rules: - record: apiserver_request_duration_seconds:histogram_quantile_90 expr: histogram_quantile(0.90,sum(rate(apiserver_request_duration_seconds_bucket{job=\"apiserver\", verb!=\"WATCH\"}[5m])) by (verb,le))
kind: ConfigMap
apiVersion: v1
metadata:
name: observability-metrics-custom-allowlist
data:
metrics_list.yaml: |
names:
- node_memory_MemTotal_bytes
rules:
- record: apiserver_request_duration_seconds:histogram_quantile_90
expr: histogram_quantile(0.90,sum(rate(apiserver_request_duration_seconds_bucket{job=\"apiserver\",
verb!=\"WATCH\"}[5m])) by (verb,le))
-
names
섹션에서 관리 클러스터에서 수집할 사용자 지정 지표의 이름을 추가합니다. -
규칙
섹션에서expr
및record
매개 변수 쌍에 대해 하나의 값만 입력하여 쿼리 식을 정의합니다. 지표는 관리 클러스터의레코드
매개변수에 정의된 이름으로 수집됩니다. 반환된 지표 값은 쿼리 표현식을 실행한 후의 결과입니다. -
names
및rules
섹션은 선택 사항입니다. 섹션 중 하나 또는 둘 다를 사용할 수 있습니다.
다음 명령을 사용하여 open-cluster-management-observability
네임스페이스에 observability-metrics-custom-allowlist
ConfigMap을 생성합니다. oc apply -n open-cluster-management-observability -f observability-metrics-custom-allowlist.yaml
.
Grafana 대시보드의 탐색 페이지에서 메트릭을 쿼리하여 사용자 지정 지표의 데이터가 수집되고 있는지 확인합니다. 자체 대시보드에서 사용자 지정 지표를 사용할 수도 있습니다. 대시보드 보기에 대한 자세한 내용은 Grafana 대시보드 설계를 참조하십시오.
1.3.4. 기본 메트릭 제거
관리된 클러스터에서 특정 메트릭에 대해 데이터를 수집하지 않으려면 observability-metrics-custom-allowlist.yaml
파일에서 지표를 제거합니다. 지표를 제거하면 관리 클러스터에 지표 데이터가 수집되지 않습니다. 앞서 언급했듯이 먼저 mco 관찰 기능이
활성화되어 있는지 확인합니다.
지표 이름 시작 시 하이픈을 사용하여 기본 메트릭의 이름을 metrics_list.yaml
매개변수에 추가합니다. 예:
-cluster_infrastructure_provider
.
다음 명령을 사용하여 open-cluster-management-observability
네임스페이스에 observability-metrics-custom-allowlist
ConfigMap을 생성합니다. oc apply -n open-cluster-management-observability -f observability-metrics-custom-allowlist.yaml
.
관리 클러스터에서 특정 메트릭이 수집되지 않는지 확인합니다. Grafana 대시보드에서 메트릭을 쿼리하면 지표가 표시되지 않습니다.
1.3.5. 외부 끝점으로 메트릭 내보내기
실시간으로 Prometheus Remote Write 프로토콜을 지원하는 외부 끝점으로 메트릭을 내보내는 관찰 기능을 사용자 지정할 수 있습니다. 자세한 내용은 Prometheus Remote Write 프로토콜을 참조하십시오.
1.3.5.1. 외부 끝점에 대한 Kubernetes 보안 생성
open-cluster-management-observability
네임스페이스에서 외부 끝점의 액세스 정보를 사용하여 Kubernetes 보안을 생성해야 합니다. 다음 예제 시크릿을 확인합니다.
apiVersion: v1 kind: Secret metadata: name: victoriametrics namespace: open-cluster-management-observability type: Opaque stringData: ep.yaml: | url: http://victoriametrics:8428/api/v1/write http_client_config: basic_auth: username: test password: test
apiVersion: v1
kind: Secret
metadata:
name: victoriametrics
namespace: open-cluster-management-observability
type: Opaque
stringData:
ep.yaml: |
url: http://victoriametrics:8428/api/v1/write
http_client_config:
basic_auth:
username: test
password: test
ep.yaml
은 콘텐츠의 키이며 다음 단계의 multiclusterobservability
CR에서 사용됩니다. 현재 관찰 기능은 기본 인증 또는 tls
사용을 통해 보안 검사 없이 끝점으로 메트릭 내보내기를 지원합니다. 지원되는 매개변수 전체 목록은 다음 표를 참조하십시오.
이름 | 설명 | 스키마 |
---|---|---|
URL | 외부 끝점의 URL입니다. | string |
http_client_config | HTTP 클라이언트를 위한 고급 구성입니다. |
HttpClientConfig
이름 | 설명 | 스키마 |
---|---|---|
basic_auth | 기본 인증을 위한 HTTP 클라이언트 구성입니다. | |
tls_config | TLS에 대한 HTTP 클라이언트 구성입니다. |
BasicAuth
이름 | 설명 | 스키마 |
---|---|---|
사용자 이름 | 기본 권한 부여를 위한 사용자 이름입니다. | string |
password | 기본 권한 부여의 암호입니다. | string |
TLSConfig
이름 | 설명 | 스키마 |
secret_name | 인증서가 포함된 보안의 이름입니다. | string |
ca_file_key | 보안의 CA 인증서 키입니다. | string |
cert_file_key | 보안에 있는 클라이언트 인증서의 키입니다. | string |
key_file_key | 시크릿에 있는 클라이언트 키의 키입니다. | string |
insecure_skip_verify | 대상 인증서의 확인을 생략하는 매개변수입니다. | bool |
1.3.5.2. multiclusterobservability CR 업데이트
Kubernetes 시크릿을 생성한 후 spec.storageConfig
매개변수에 writeStorage
를 추가하도록 multiclusterobservability
CR을 업데이트해야 합니다. 다음 예제를 확인합니다.
spec: storageConfig: writeStorage: - key: ep.yaml name: victoriametrics
spec:
storageConfig:
writeStorage:
- key: ep.yaml
name: victoriametrics
writeStorage
의 값은 목록입니다. 메트릭을 하나의 외부 끝점으로 내보내려는 경우 목록에 항목을 추가할 수 있습니다. 목록에 두 개 이상의 항목을 추가하면 메트릭이 여러 외부 엔드포인트로 내보내집니다. 각 항목에는 이름과 키 의 두 가지 속성이 포함되어 있습니다. name은 끝점 액세스 정보가 포함된 Kubernetes 시크릿의 이름이며 key 는 시크릿에 있는 콘텐츠의 키입니다. 다음 설명 표를 참조하십시오.
1.3.5.3. 메트릭 내보내기 상태 보기
지표 내보내기가 활성화되면 acm_remote_write_requests_total
지표를 확인하여 지표 내보내기의 상태를 볼 수 있습니다. hub 클러스터의 OpenShift 콘솔에서 Observe 섹션에서 Metrics 를 클릭하여 지표 페이지로 이동합니다.
그런 다음 acm_remote_write_requests_total
지표를 쿼리합니다. 해당 메트릭의 값은 하나의 Observatorium API 인스턴스에서 하나의 외부 끝점에 대한 특정 응답이 있는 총 요청 수입니다. name
레이블은 외부 끝점의 이름입니다. 코드
레이블은 메트릭 내보내기에 대한 HTTP 요청의 반환 코드입니다.
1.3.6. 고급 구성 추가
필요에 따라 고급
구성 섹션을 추가하여 각 관찰 가능 구성 요소의 보존을 업데이트합니다.
MultiClusterObservability
CR을 편집하고 oc edit mco observability -o yaml
명령을 사용하여 고급
섹션을 추가합니다. YAML 파일은 다음 내용과 유사합니다.
spec: advanced: retentionConfig: blockDuration: 2h deleteDelay: 48h retentionInLocal: 24h retentionResolutionRaw: 30d retentionResolution5m: 180d retentionResolution1h: 0d receive: resources: limits: memory: 4096Gi replicas: 3
spec:
advanced:
retentionConfig:
blockDuration: 2h
deleteDelay: 48h
retentionInLocal: 24h
retentionResolutionRaw: 30d
retentionResolution5m: 180d
retentionResolution1h: 0d
receive:
resources:
limits:
memory: 4096Gi
replicas: 3
고급
구성에 추가할 수 있는 모든 매개변수에 대한 설명은 Observability API 를 참조하십시오.
1.3.7. 콘솔에서 multiclusterobservability CR 복제본 업데이트
워크로드가 증가하면 관찰 가능한 Pod의 복제본 수를 늘립니다. hub 클러스터에서 Red Hat OpenShift Container Platform 콘솔로 이동합니다. multiclusterobservability
CR(사용자 정의 리소스)을 찾고 복제본을 변경하려는 구성 요소의 replicas
매개변수 값을 업데이트합니다. 업데이트된 YAML은 다음 콘텐츠와 유사할 수 있습니다.
spec: advanced: receive: replicas: 6
spec:
advanced:
receive:
replicas: 6
mco observability
CR 내의 매개변수에 대한 자세한 내용은 Observability API 를 참조하십시오.
1.3.8. 경고 전달
관찰 기능을 활성화하면 OpenShift Container Platform 관리 클러스터의 경고가 hub 클러스터로 자동으로 전송됩니다. 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 }}'
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://****
global:
slack_api_url: '<slack_webhook_url>'
http_config:
proxy_url: http://****
자세한 내용은 Prometheus Alertmanager 설명서 를 참조하십시오.
1.3.8.1. 관리형 클러스터에 대한 전달 경고 비활성화
관리형 클러스터에 대한 경고 전달을 비활성화합니다. MultiClusterObservability
사용자 정의 리소스에 다음 주석을 추가합니다.
metadata: annotations: mco-disable-alerting: "true"
metadata:
annotations:
mco-disable-alerting: "true"
주석을 설정하면 관리 클러스터의 경고 전달 구성이 되돌아갑니다. openshift-monitoring
네임스페이스의 ocp-monitoring-config
ConfigMap에 대한 변경 사항이 취소됩니다. 주석을 설정하면 ocp-monitoring-config
ConfigMap이 더 이상 observability Operator 끝점에 의해 관리되거나 업데이트되지 않습니다. 구성을 업데이트하면 관리 클러스터의 Prometheus 인스턴스가 다시 시작됩니다.
중요: 관리 클러스터의 지표는 메트릭용 영구 볼륨이 있는 Prometheus 인스턴스가 있고 Prometheus 인스턴스가 다시 시작되면 손실됩니다. 그러나 hub 클러스터의 메트릭은 영향을 받지 않습니다.
변경 사항이 취소되면 cluster-monitoring-reverted
라는 ConfigMap이 open-cluster-management-addon-observability
네임스페이스에 생성됩니다. ConfigMap에서 수동으로 추가된 새로운 경고 전달 구성은 되돌릴 수 없습니다.
hub 클러스터 경고 관리자가 더 이상 관리되는 클러스터 경고를 타사 메시징 도구에 전파하지 않는지 확인합니다. 이전 섹션, AlertManager 구성을 참조하십시오.
1.3.9. 음소거 경고
수신하지 않으려는 경고를 추가합니다. 경고 이름, 일치 레이블 또는 시간 기간으로 경고를 음소거할 수 있습니다. 음소거할 경고를 추가하면 ID가 생성됩니다. 음소거된 경고의 ID는 다음 문자열 d839aca9-ed46-40be-84c4-dca8773671da
와 유사합니다.
경고를 음소거하는 방법에 대해 계속 읽기를 계속합니다.
Red Hat Advanced Cluster Management 경고를 음소거하려면
open-cluster-management-observability
네임스페이스에서alertmanager-main
Pod에 액세스할 수 있어야 합니다. 예를 들어 Pod 터미널에서 다음 명령을 입력하여SampleAlert
를 음소거합니다.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! 일치하는 여러 레이블을 사용하여 경고를 음소거합니다. 다음 명령은
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! 특정 기간 동안 경고를 음소거하려면
--duration
플래그를 사용합니다. 다음 명령을 실행하여SampleAlert
를 한 시간 동안 음소거합니다.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! 음소거된 경고의 시작 또는 종료 시간을 지정할 수도 있습니다. 특정 시작 시
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! 생성된 모든 음소거된 경고를 보려면 다음 명령을 실행합니다.
amtool silence --alertmanager.url="http://localhost:9093"
amtool silence --alertmanager.url="http://localhost:9093"
Copy to Clipboard Copied! 더 이상 경고를 음소거하지 않으려면 다음 명령을 실행하여 경고의 음소거를 종료합니다.
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! 모든 경고의 음소거를 종료하려면 다음 명령을 실행합니다.
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! == 경고 비활성화
심각도가 낮은 전 세계 클러스터 전체에서 Red Hat Advanced Cluster Management 경고를 비활성화합니다. open-cluster-management-observability
네임스페이스의 alertmanager-config
에서 억제 규칙을 정의하여 경고를 비활성화합니다.
억제 규칙은 기존의 일치 항목 집합과 일치하는 매개 변수 집합이 있는 경우 경고를 음소거합니다. 규칙을 적용하려면 대상 및 소스 경고에 동일한 목록에 있는 레이블 이름에 대해 동일한 레이블 값이 있어야 합니다.
inhibit_rules
는 다음과 유사할 수 있습니다.
global: resolve_timeout: 1h inhibit_rules: - equal: - namespace source_match: severity: critical target_match_re: severity: warning|info
global:
resolve_timeout: 1h
inhibit_rules:
- equal:
- namespace
source_match:
severity: critical
target_match_re:
severity: warning|info
- 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! - 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! 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!
1.3.10. 경로 인증 사용자 정의
OpenShift Container Platform 경로 인증을 사용자 지정하려면 alt_names
섹션에 경로를 추가해야 합니다. OpenShift Container Platform 경로에 액세스할 수 있도록 하려면 alertmanager.apps.<domainname> ,
> , observatorium-api.apps
.<domainnamerbac-query-proxy.apps.<domainname
> .
참고: 사용자는 인증서 교체 및 업데이트를 담당합니다.
1.3.10.1. 오브젝트 저장소에 액세스하기 위한 인증서 사용자 정의
오브젝트 저장소에 액세스하기 위해 인증서를 사용자 지정할 수 있습니다. 오브젝트 저장소 보안에 인증서를 추가하여 http_config
섹션을 편집합니다. 다음 예제를 확인합니다.
thanos.yaml: | type: s3 config: bucket: "thanos" endpoint: "minio:9000" insecure: false access_key: "minio" secret_key: "minio123" http_config: tls_config: ca_file: /etc/minio/certs/ca.crt insecure_skip_verify: false
thanos.yaml: |
type: s3
config:
bucket: "thanos"
endpoint: "minio:9000"
insecure: false
access_key: "minio"
secret_key: "minio123"
http_config:
tls_config:
ca_file: /etc/minio/certs/ca.crt
insecure_skip_verify: false
open-cluster-management-observability
네임스페이스에 보안을 제공해야 합니다. 시크릿에는 이전 시크릿 예제에서 정의한 ca.crt
가 포함되어야 합니다. 상호 TLS를 활성화하려면 이전 시크릿에 public.crt
, private.key
를 제공해야 합니다. 다음 예제를 확인합니다.
thanos.yaml: | type: s3 config: ... http_config: tls_config: ca_file: /etc/minio/certs/ca.crt cert_file: /etc/minio/certs/public.crt key_file: /etc/minio/certs/private.key insecure_skip_verify: false
thanos.yaml: |
type: s3
config:
...
http_config:
tls_config:
ca_file: /etc/minio/certs/ca.crt
cert_file: /etc/minio/certs/public.crt
key_file: /etc/minio/certs/private.key
insecure_skip_verify: false
보안 이름, TLSSecretName
매개변수를 MultiClusterObservability
CR에서 구성할 수도 있습니다. 보안 이름이 tls-certs-secret
인 다음 예를 확인합니다.
metricObjectStorage: key: thanos.yaml name: thanos-object-storage tlsSecretName: tls-certs-secret
metricObjectStorage:
key: thanos.yaml
name: thanos-object-storage
tlsSecretName: tls-certs-secret
이 시크릿은 오브젝트 저장소에 액세스해야 하는 모든 구성 요소에 마운트할 수 있으며, receiver
,store
,ruler
,compact
구성 요소를 포함합니다.
1.3.11. 데이터 보기 및 탐색
hub 클러스터에서 Grafana에 액세스하여 관리 클러스터의 데이터를 봅니다. 특정 경고를 쿼리하고 쿼리에 대한 필터를 추가할 수 있습니다.
예를 들어 단일 노드 클러스터에서 cluster_infrastructure_provider 는 cluster_infrastructure_provider{clusterType="SNO"}
쿼리 표현식을 사용합니다.
참고: 단일 노드 관리 클러스터에서 관찰 기능이 활성화된 경우 ObservabilitySpec.resources.CPU.limits
매개변수를 설정하지 마십시오. CPU 제한을 설정하면 관리 클러스터의 용량에 대해 관찰 기능 Pod가 계산됩니다. 자세한 내용은 관리 워크로드 파티셔닝 을 참조하십시오.
1.3.11.1. etcd 테이블 보기
Grafana의 허브 클러스터 대시보드에서 etcd 테이블을 보고 etcd의 안정성을 데이터 저장소로 확인합니다.
hub 클러스터에서 Grafana 링크를 선택하여 hub 클러스터에서 수집되는 etcd 테이블 데이터를 확인합니다. 관리 클러스터 전체에서 리더 선택 변경 사항이 표시됩니다.
1.3.11.2. Kubernetes API 서버 대시보드의 클러스터 플릿 서비스 수준 개요 보기
Grafana의 허브 클러스터 대시보드에서 클러스터 플릿 API 서비스 수준 개요를 확인합니다.
Grafana 대시보드로 이동한 후 Kubernetes > Service-Level Overview > API Server 를 선택하여 관리형 대시보드 메뉴에 액세스합니다. Fleet 개요 및 상위 클러스터 세부 정보가 표시됩니다.
지난 7일 또는 30일 동안 대상 서비스 수준 목표(SLO) 값을 초과하거나 충족하는 클러스터, 오프로드 및 해제되지 않는 클러스터, API 서버 요청 기간 등의 총 클러스터 수를 확인합니다.
1.3.11.3. Kubernetes API 서버 대시보드의 클러스터 서비스 수준 개요 보기
Grafana의 허브 클러스터 대시보드에서 Kubernetes API 서비스 수준 개요 테이블을 확인합니다.
Grafana 대시보드로 이동한 후 Kubernetes > Service-Level Overview > API Server 를 선택하여 관리형 대시보드 메뉴에 액세스합니다. Fleet 개요 및 상위 클러스터 세부 정보가 표시됩니다.
지난 7일 또는 30일 기간, 나머지 다운타임 및 추세에 대한 오류 예산을 확인합니다.
1.3.12. 관찰 기능 비활성화
Red Hat Advanced Cluster Management hub 클러스터에서 데이터 수집을 중지하는 관찰 기능을 비활성화할 수 있습니다.
1.3.12.1. 모든 클러스터에서 관찰 기능 비활성화
모든 관리형 클러스터에서 관찰 가능 구성 요소를 제거하여 관찰 기능을 비활성화합니다.
enableMetrics
를 false
로 설정하여 multicluster-observability-operator
리소스를 업데이트합니다. 업데이트된 리소스는 다음 변경 사항과 유사할 수 있습니다.
spec: imagePullPolicy: Always imagePullSecret: multiclusterhub-operator-pull-secret observabilityAddonSpec: # The ObservabilityAddonSpec defines the global settings for all managed clusters which have observability add-on enabled enableMetrics: false #indicates the observability addon push metrics to hub server
spec:
imagePullPolicy: Always
imagePullSecret: multiclusterhub-operator-pull-secret
observabilityAddonSpec: # The ObservabilityAddonSpec defines the global settings for all managed clusters which have observability add-on enabled
enableMetrics: false #indicates the observability addon push metrics to hub server
1.3.12.2. 단일 클러스터에서 관찰 기능 비활성화
특정 관리 클러스터에서 관찰 가능 구성 요소를 제거하여 관찰 기능을 비활성화합니다. managedclusters.cluster.open-cluster-management.io
사용자 정의 리소스에 observability: disabled
레이블을 추가합니다.
Red Hat Advanced Cluster Management 콘솔 클러스터 페이지에서 observability=disabled
라벨을 지정된 클러스터에 추가합니다.
참고: 관찰성 구성 요소가 있는 관리형 클러스터를 분리하면 metrics-collector
배포가 제거됩니다.
관찰 서비스를 사용하여 콘솔에서 데이터 모니터링에 대한 자세한 내용은 Observing 환경 도입 을 참조하십시오.