Alertmanager Configuration

Hansu Kim·2022년 4월 18일
0

Prometheus에서 발생하는 알람을 실제 사용자에게 전달하기 위해서는 alertmanager라는 Third-Party App을 사용해야 한다.

1. 설치

https://github.com/prometheus/alertmanager

tar -xvf alertmanager-0.24.0.linux-amd64.tar.gz

2. OS 설정

1) 유저 생성 및 sudoers 추가

sudo useradd -m -s /bin/bash alertmanager
sudo vim /etc/sudoers

useradd 옵션
-m: 홈디렉토리 생성
-s: 사용할 쉘 지정

2) 권한 설정

tar -xvf 
chmod -R 755 ./*
sudo chown -R alertmanager:alertmanager ./alertmanager-0.24.0.linux-amd64

3) Systemd service 등록/시작

현재는 싱글 구조로 테스트 중이나, production 환경에서는 실행시 클러스터 구성 후 --cluster.* 플래그를 추가하여 실행해주어야 한다.

Description=Alert Manager
[Unit]
Description=Alert Manager
Documentation=https://prometheus.io/docs/alerting/latest/alertmanager/
After=network.target

[Service]
User=alertmanager
Restart=on-failure
[Service]
ExecStart=/home/alertmanager/alertmanager-0.24.0.linux-amd64/alertmanager --config.file=/home/alertmanager/alertmanager-0.24.0.linux-amd64/alertmanager.yml

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start alertmanager.service

3. alertmanager.yml 설정

YAML 파일 설정을 통해 prometheus의 알람을 Slack, E-mail, Webhook과 연동할 수 있다.
현재는 Slack, E-mail 연동을 시험했으며, production 환경에선 Webhook도 사용할 예정이다.

 # The API URL to use for Slack notifications.
  [ slack_api_url: "https://hooks.slack.com/services/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" ]
 # [ slack_api_url_file: <filepath> ]
 # The default HTTP client configuration
 # [ http_config: <http_config> ]

 ## Slack integration
 route:
  receiver: 'slack id'
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 3h
  routes:
  - receiver: 'slack id'
    group_wait: 10s
    match_re:
      service: dev

receivers:
 - name: 'slack_receiver_name'
   slack_configs:
   - channel: 'prometheus-alerts'
     text: "summary: {{ .CommonAnnotations.summary }}\ndescription: {{ .CommonAnnotations.description }}"
 

Alertmanager full configuration docs
https://prometheus.io/docs/alerting/latest/configuration

0개의 댓글