Prometheus Alerting with AlertManager

문혜리·2022년 6월 29일
0

인턴

목록 보기
5/9

Prometheus의 알람은 크게 2가지 부분으로 나눌 수 있다.

  • 알람 규칙을 정의하는 Alerting Rule
  • 생성된 알람을 3자에 전달해주는 Alertmanager

Alerting Rule의 정의

Prometheus의 공식 문서에 따르면,
알림 규칙은 PromQL을 기반으로 알람 조건을 정의하고, 외부 서비스에 FIRING된 알람들을 전달한다.

Alerting Rule은 PromQL 혹은 Recording Rule을 통해 쿼리된 시계열에 대해 알람 조건을 지정한다. 만약 조건을 충족하는 경우 해당 시계열에 대해서, ALERTS라는 시계열에 저장되는 알람 세트를 생성해낸다.

Prometheus를 활용한 Alerting 절차:

  1. Alert Manager 셋업
  2. AlertManager과 Prometheus가 연결될 수 있도록 Prometheus에 config 파일을 작성
  3. Prometheus server configuration에서 alert rules 정의
  4. 메일이나 슬랙 등 alert mechanism을 AlertManager에서 작성

참고 링크:
https://medium.com/devops-dudes/prometheus-alerting-with-alertmanager-e1bbba8e6a8e

Prometheus Alerting Rule 상세

https://gurumee92.tistory.com/268

[keywords]

alert - 필수요소

record가 Recording Rule이 생성하는 메트릭의 이름을 나타낸 것처럼,
alert는 alerting Rule이 만들어내는 알람 세트의 이름

expr - 필수요소

  • 알람 조건을 작성하는 곳
  • PromQL 또는 Recording Rule로 작성할 수 있음

for

  • PENDING 상태에서 FIRING 상태로 넘어가는 시간을 말함
  • for: 1m -> 알람 발생 이전에 보류 기간이 1분인 것!
  • for 기간이 지나면 Prometheus는 Alertmanager

    위는 Alerting rule 예시인데 위의 expr을 보면 초당 4xx 상태 코드 개수가 5개보다 높으면 알람 세트를 생성하게 되어있음.
    (그외 다른 레이블들도 참고해보자!)

이 알람 세트는 ALERTS로 쿼리할 수 있다고 함,
ALERTS를 쿼리해서 보면 alertname이 아까 알람세트의 이름으로 지정한대로 나와있는 것을 볼 수 있음 (아래 사진)

참고로 아래처럼 사용자가 레이블을 추가할 수 있음

https://github.com/dcos/prometheus-alert-rules

주로 참고한 메인 블로그:
https://gurumee92.tistory.com/268

추가적으로 참고해볼만한 사이트:
1번은 지금 가설의 근본임, 전 글에서도 언급함.
1. https://blog.naver.com/alice_k106/221910045964
2. https://gurumee92.tistory.com/268
3. https://www.elastic.co/guide/en/machine-learning/current/ml-configuring-alerts.html
4. https://blog.container-solutions.com/prometheus-operator-beginners-guide
5. https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
6. https://iamabhishek-dubey.medium.com/alertmanager-integration-in-prometheus-197e03bfabdf
7. https://blog.outsider.ne.kr/1254

0개의 댓글