[Grafana] slack alert 적용

v K_Y v·2023년 6월 21일
0

MONITORING

목록 보기
1/1
post-thumbnail

📌 현재 telegraf + influxDB + grafana의 조합으로 Airflow 메트릭을 모니터링하고 있습니다. 위 환경에서 이상 메트릭 감지 시, slack으로 alert을 보내기 위한 rule 정의 방법을 공유합니다.


Contact points

  • alert을 보내는 목적지를 생성합니다.
  • slack의 경우 token 혹은 Webhook URL로 채널을 지정할 수 있습니다.
  • 커스텀 template을 사용할 경우, Text Body에 템플릿 name을 {{ template "airlfow_template" .}}과 같은 형태로 명시합니다.

Notification policies

  • 이후에 생성할 rule이 어떤 point로 연결되는 지를 설정합니다.
  • 여기서 작성한 labelvalue를 rule 생성 시, 추가합니다.
  • 연결하고자하는 point를 Contact point에서 지정합니다.

New alert rule

Rule type

  • Rule name, Rule type을 지정해줍니다.
  • folder의 경우 지정하지 않을 시 rule 생성이 불가한데 General folder가 리스트에 보이지 않아서 새로운 폴더를 생성해서 지정했습니다.

Create a query to be alerted on

  • A section

    • 메트릭을 influxDB에 저장하고 있기 때문에 source를 influxDB로 지정해줍니다.
    • 각 노드(main, worker) 별로 memory use percent를 가지고 오는 쿼리를 작성해줍니다.
  • B section

    • 각 노드별로 A에서 select한 메트릭 중 max 값을 추출합니다.
  • C section

    • Math를 통해 표현식으로 B 결과를 filtering 합니다.
    • 위 예시는 75% 이상 사용하는 노드가 있는 경우를 식별합니다.
  • Run queries

    • 실행 시, 작성한 조건에 맞는 결과를 조회할 수 있습니다.

    Define alert conditions

  • Condition에 alert을 위한 대상을 지정합니다.

  • Evaluate은 alert의 기준 시간을 설정합니다. 1분 간격으로 측정하며 위에서 설정한 기준이 2분 동안 유지될 시, alert을 보냅니다.

Add details for your alert

  • Summary and annotations에서 슬랙에 보낼 메세지를 지정할 수 있습니다.
  • Custom Labels에 위 Notification policies에서 생성한 policy를 추가합니다.

Message templates

  • 앞선 단계로도 충분하지만 slack에 메세지를 커스텀하고 싶을 경우, 사용할 수 있습니다.
  • 위 예시는 실제 적용한 템플릿은 아니고 간단한 예제입니다.
  • grafana에서 🗂default_template을 제공하고 있으니 템플릿 작성 시, 참고하시면 좋을 것 같습니다.
profile
📌 기억하기 위해 남기는 기록들

0개의 댓글