Advisor 결과 기반 알림 만들기

Advisor 결과 기반 알림 만들기 (Create an alert based on Grafana Advisor results)

Grafana Advisor는 데이터 소스·플러그인·Grafana 인스턴스를 정기 점검해주는 도구예요. 이 가이드에서는 Advisor 점검 결과를 모니터링하고 실패가 감지되면 트리거되는 Grafana 알림을 만드는 방법을 안내합니다. 서비스 계정, Infinity 데이터 소스, 알림 규칙을 차례로 구성해요.

출처: 문서

본문

참고: Grafana Advisor는 데이터 소스, 플러그인, Grafana 인스턴스에 대해 정기 점검을 수행하며, 향후 릴리스에서 더 많은 측면을 다루도록 확장될 예정이에요. 새 점검을 제안하거나 피드백을 주려면 이 폼을 사용하세요.

이 가이드는 Advisor 점검 결과를 모니터링하고 실패가 감지되면 트리거되는 Grafana 알림을 만드는 과정을 안내합니다. 다음 단계를 따르세요:

  1. 서비스 계정과 토큰 만들기
  2. Grafana Infinity 데이터 소스 설정
  3. 알림 규칙 만들기
  4. 알림 규칙 저장하기

1. 서비스 계정과 토큰 만들기 (Create a service account and token)

  1. Grafana에서 Administration → Users and access → Service accounts 로 이동합니다.
  2. Add service account 를 클릭합니다.
  3. 이름을 제공합니다 (예: advisor-alert-service-account).
  4. 적절한 권한을 보장하도록 역할을 Admin 으로 설정합니다.
  5. Create 를 클릭합니다.
  6. 서비스 계정 세부 정보에서 Add service account token 을 클릭합니다.
  7. 토큰 이름을 제공하고 적절한 만료일을 설정합니다.
  8. Generate token 을 클릭합니다.

주의: 토큰 값을 즉시 복사해 안전하게 보관하세요. 다시 볼 수 없어요.

2. Grafana Infinity 데이터 소스 설정 (Set up the Grafana Infinity data source)

참고: 나중에 사용할 JQ 파서를 위해 Infinity 플러그인 v3.3.0 이상을 사용하세요.

  1. Connections → Add new connection 으로 이동합니다.
  2. "Infinity" 를 검색합니다.
  3. 설치되지 않았다면 Install 을 클릭하고 설치가 끝날 때까지 기다립니다.
  4. 플러그인 페이지에서 Add new data source 를 클릭합니다.
  5. 데이터 소스 구성:
    • Name: 설명적인 이름을 부여합니다 (예: Advisor API).
    • Setup Authentication: Auth type 에서 Bearer Token 을 선택합니다. Auth details 섹션에 1단계의 서비스 계정 토큰을 붙여넣고, Allowed hosts 섹션에 Grafana 앱 URL을 적고 Add 버튼을 클릭합니다 (예: https://your-grafana-host.com).
  6. 연결을 확인하려면 Save & test 를 클릭합니다.

3. 알림 규칙 만들기 (Create the alert rule)

  1. Alerting → Alert rules 로 이동합니다.
  2. New alert rule 을 클릭합니다.
  3. 규칙 이름을 제공합니다 (예: Advisor Failures Alert).
  4. 쿼리를 구성합니다:
    • Data source: 3단계에서 만든 Infinity 데이터 소스를 선택합니다.
    • 쿼리 설정 구성:
      • Type: JSON
      • Parser: JQ
      • Source: URL
      • Format: Table
      • Method: GET
      • URL: Advisor 인터페이스에서 가져옵니다:
        1. Grafana에서 Advisor를 방문합니다.
        2. 브라우저 개발자 도구(F12) → Network 탭을 엽니다.
        3. /checks 로 끝나는 요청을 찾습니다.
        4. 전체 URL을 복사합니다 (형식: https://<your_grafana_host>/apis/advisor.grafana.app/v0alpha1/namespaces/<your_namespace>/checks)
  5. 구문 분석 옵션 구성 — Rows/Root (이 JQ 표현식을 붙여넣기):
.items | map({
  type: .metadata.labels["advisor.grafana.app/type"],
  creationTimestamp: .metadata.creationTimestamp,
  failuresCount: (.status.report.failures | length)
}) | group_by(.type) | map(sort_by(.creationTimestamp) | last)

이 JQ 쿼리는 Grafana Advisor 점검 데이터를 처리해 각 점검 유형의 가장 최근 결과를 얻습니다. 각 점검을 type, timestamp, 실패 수를 가진 단순 객체로 변환합니다. 결과는 각 점검 유형(데이터 소스, 플러그인, 설정 등)의 현재 상태를 실패 수와 함께 보여주는 깔끔한 배열이며, 어떤 유형이든 실패 수가 0보다 크면 알림을 보내기에 적합해요.

  1. Columns (다음 세 열 추가):

    • Selector: creationTimestamp, Format: Time
    • Selector: failuresCount, Format: Number
    • Selector: type, Format: String
  2. (선택) 점검 유형으로 필터링 — 특정 점검 유형에 대해서만 알림을 원한다면:

    • Computed columns, Filter, Group by 섹션에서
    • Filter 추가: type == "license" ("license"를 원하는 점검 유형으로 교체)
  3. 알림 조건 설정 — Alert condition: "WHEN Last OF QUERY Is above 0" 을 선택합니다. 어떤 점검 유형이든 실패가 있으면 트리거됩니다.

  4. "Preview alert rule condition" 을 클릭해 쿼리 결과를 확인합니다.

4. 알림 규칙 저장하기 (Save the alert rule)

  1. 선호하는 평가(evaluation, 예: 24시간마다)와 알림 설정을 선택합니다.
  2. Save 를 클릭하고 알림이 트리거되는지 확인합니다.

이제 Advisor 결과를 모니터링하고 실패가 감지되면 알려주는 알림이 구성되었어요!

더 알아보기 (Learn more)