설치
사전작업 : docker 및 prometheus 설치
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 }}
slack api key 얻기
왼쪽 메뉴에서 앱추가 클릭 후 incoming webhooks 검색
추가 클릭
slack에 추가 클릭
알림을 보낼 채널을 선택하고 수신 웹후크 통합 앱 추가 클릭
웹후크 URL 복사
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 }}"
prometheus.yml 수정
vi /<config-file-path>/prometheus.yml
alerting: alertmanagers: - static_configs: - targets: - IP:9093 rule_files: - "<config-file-path>/alert_rules.yml"
prometheus 재시작
docker restart prometheus
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
IP:9093 접속
728x90
'DevOps' 카테고리의 다른 글
Prometheus #2 - 설치 (0) | 2022.09.16 |
---|---|
Prometheus #1 - 소개 (0) | 2022.04.30 |