9.8. 알림을 전송하도록 Alertmanager 구성
기본 플랫폼 경고 또는 사용자 정의 경고에 대한 alertmanager-main 시크릿을 편집하여 알림을 보내도록 Alertmanager를 구성할 수 있습니다.
지원되는 업스트림 Alertmanager 버전의 모든 기능은 OpenShift Alertmanager 구성에서도 지원됩니다. 지원되는 업스트림 Alertmanager 버전의 모든 구성 옵션을 확인하려면 Alertmanager 설정을 참조하십시오.
9.8.1. 기본 플랫폼 경고에 대한 알림 구성 링크 복사링크가 클립보드에 복사되었습니다!
클러스터에서 들어오는 중요한 경고를 수신하도록 알림을 보내도록 Alertmanager를 구성할 수 있습니다. openshift-monitoring 네임스페이스의 alertmanager-main 시크릿에서 기본 구성을 편집하여 Alertmanager가 기본 플랫폼 경고에 대한 알림을 전송하는 위치와 방법을 사용자 지정합니다.
Alertmanager는 기본적으로 알림을 보내지 않습니다. alertmanager-main 시크릿 구성 파일에서 알림 세부 정보를 설정하여 알림을 수신하도록 Alertmanager를 구성하는 것이 좋습니다.
사전 요구 사항
-
cluster-admin클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
alertmanager-main보안에서 현재 활성화된 Alertmanager 구성을 추출하여 로컬alertmanager.yaml파일로 저장합니다.$ oc -n openshift-monitoring get secret alertmanager-main --template='{{ index .data "alertmanager.yaml" }}' | base64 --decode > alertmanager.yaml-
alertmanager.yaml파일을 엽니다. Alertmanager 설정을 편집합니다.
선택 사항: 기본 Alertmanager 설정을 변경합니다.
기본 Alertmanager 시크릿 YAML의 예
global: resolve_timeout: 5m route: group_wait: 30s1 group_interval: 5m2 repeat_interval: 12h3 receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog receivers: - name: default - name: watchdog- 1
- 알림을 보내기 전에 경고 그룹에 대한 초기 경고를 수집하는 동안 Alertmanager가 대기하는 시간을 지정합니다.
- 2
- Alertmanager가 새 경고에 대한 알림을 보내기 전에 초기 알림이 이미 전송된 경고 그룹에 추가된 알림을 보내기 전에 경과해야 하는 시간을 지정합니다.
- 3
- 경고 알림을 반복하기 전에 전달해야 하는 최소 시간을 지정합니다. 각 그룹 간격마다 알림을 반복하려면
repeat_interval값을group_interval값보다 적도록 설정합니다. 예를 들어 특정 Alertmanager Pod를 다시 시작하거나 다시 예약하는 경우 반복된 알림이 계속 지연될 수 있습니다.
경고 수신자 구성을 추가합니다.
# ... receivers: - name: default - name: watchdog - name: <receiver>1 <receiver_configuration>2 # ...- 1
- 수신자의 이름입니다.
- 2
- 수신자 구성입니다. 지원되는 수신자는 PagerDuty, webhook, email, Slack 및 Microsoft Teams입니다.
PagerDuty를 경고 수신자로 구성하는 예
# ... receivers: - name: default - name: watchdog - name: team-frontend-page pagerduty_configs: - routing_key: xxxxxxxxxx1 # ... - PagerDuty 통합 키를 정의합니다.
이메일을 경고 수신자로 구성하는 예
# ... receivers: - name: default - name: watchdog - name: team-frontend-page email_configs: - to: myemail@example.com1 from: alertmanager@example.com2 smarthost: 'smtp.example.com:587'3 auth_username: alertmanager@example.com4 auth_password: password hello: alertmanager5 # ...중요Alertmanager에는 이메일 경고를 보내는 외부 SMTP 서버가 필요합니다. 이메일 경고 수신자를 구성하려면 외부 SMTP 서버에 필요한 연결 세부 정보가 있어야 합니다.
라우팅 구성을 추가합니다.
# ... route: group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog - matchers:1 - "<your_matching_rules>"2 receiver: <receiver>3 # ...- 1
matchers키 이름을 사용하여 노드와 일치하도록 경고가 충족해야 하는 일치하는 규칙을 지정합니다. 억제 규칙을 정의하는 경우 대상 matchers에target_matchers키 이름을 사용하고 소스 matchers에source_matchers키 이름을 사용합니다.- 2
- 경고와 일치하도록 라벨을 지정합니다.
- 경고에 사용할 수신자 이름을 지정합니다.주의
더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정인 일치 ,
, targetmatch_re ,target_match_키 이름을 사용하지 마십시오.match_re,source_match_re경고 라우팅의 예
# ... route: group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: default routes: - matchers: - "alertname=Watchdog" repeat_interval: 2m receiver: watchdog - matchers:1 - "service=example-app" routes:2 - matchers: - "severity=critical" receiver: team-frontend-page # ...이전 예제에서는
example-app서비스에서 실행하는 심각 심각도의 경고를team-frontend-page수신자로 라우팅합니다.일반적으로 이러한 유형의 경고는 개인 또는 심각한 대응 팀으로 호출됩니다.
파일에 새 설정을 적용합니다.
$ oc -n openshift-monitoring create secret generic alertmanager-main --from-file=alertmanager.yaml --dry-run=client -o=yaml | oc -n openshift-monitoring replace secret --filename=-라우팅 트리를 시각화하여 라우팅 구성을 확인합니다.
$ oc exec alertmanager-main-0 -n openshift-monitoring -- amtool config routes show --alertmanager.url http://localhost:9093출력 예
Routing tree: . └── default-route receiver: default ├── {alertname="Watchdog"} receiver: Watchdog └── {service="example-app"} receiver: default └── {severity="critical"} receiver: team-frontend-page