DevOps

Prometheus #3 - Alertmanager

WonYoungJae 2022. 9. 16. 14:42

설치

  1. alert_rules.yml 작성

     vi /<config-file-path>/alert_rules.yml
     groups:
     # alert group 이름
     - name: prometheus-alert
       rules: 
         # alert 이름
       - alert: health-check
             # alert을 보낼 조건 (promQL 사용)
         expr: up == 1
             # expr 조건 만족 후 대기 시간 (지정 시간 이후에도 같은 상태면 alert 전송)
         for: 5m
             # 사용자 정의 라벨
         labels: 
            severity: warning
         annotations:
                 # 메세지 설정 (title 등 여러 설정이 있음)
           summary: "{{ $labels.groups }} {{ $labels.instance }}"
           description: "{{ $labels.instance }} is up. (current value: {{ humanize $value }}
  2. slack api key 얻기

    1. 왼쪽 메뉴에서 앱추가 클릭 후 incoming webhooks 검색

    2. 추가 클릭

    3. slack에 추가 클릭

    4. 알림을 보낼 채널을 선택하고 수신 웹후크 통합 앱 추가 클릭

    5. 웹후크 URL 복사

  3. alertmanager.yml 작성

     vi /<config-file-path>/alertmanager.yml
     global:
         # 해결 alert 전송 시간 (지정 시간동안 추가 alert 없으면 )
       resolve_timeout: 1s
         # slack web hook url
       slack_api_url: '위에서 복사한 웹후크 URL'
    
     # 알림 수신자 route 설정
     route:
         # 수신자 명
       receiver: 'slack-notifications' 
         # prometheus에서 보내온 alert을 group으로 묶을 조건 
         # (하위 설정은 alertname, instance가 같으면 같은 그룹)
       group_by: [alertname, instance]
         # 같은 그룹의 alert이 다시 들어오면 대기할 시간
       group_wait: 10s
         # alert을 보내고 다시 보내기 전에 대기할 시간
       repeat_interval: 2m 
    
     # 알림 수신자 상세 설정 (보낼 채널 지정, title이나 메세지 custom 등)
     receivers:
     # route에서 설정한 receiver
     - name: 'slack-notifications'
         # alert을 보낼 api등 설정
       slack_configs:
       - channel: '#slack-webhook-test'
         text: "<!channel> {{ range .Alerts}} \nsummary: {{ .Annotations.summary }}\ndescription: {{ .Annotations.description }} {{ end }}"
  4. prometheus.yml 수정

     vi /<config-file-path>/prometheus.yml
     alerting:
       alertmanagers:
         - static_configs:
           - targets:
             - IP:9093
    
     rule_files:
       - "<config-file-path>/alert_rules.yml"
  5. prometheus 재시작

     docker restart prometheus
  6. docker run

     docker run -d --name alertmanager -p 9093:9093 \
     -v /<config-file-path>/alertmanager.yml:/opt/bitnami/alertmanager/conf/config.yml \
     bitnami/alertmanager:latest
  7. IP:9093 접속


728x90

'DevOps' 카테고리의 다른 글

Prometheus #2 - 설치  (0) 2022.09.16
Prometheus #1 - 소개  (0) 2022.04.30