Advisor 결과 기반 알림 만들기
Advisor 결과 기반 알림 만들기 (Create an alert based on Grafana Advisor results)
Grafana Advisor는 데이터 소스·플러그인·Grafana 인스턴스를 정기 점검해주는 도구예요. 이 가이드에서는 Advisor 점검 결과를 모니터링하고 실패가 감지되면 트리거되는 Grafana 알림을 만드는 방법을 안내합니다. 서비스 계정, Infinity 데이터 소스, 알림 규칙을 차례로 구성해요.
출처: 문서
본문
참고: Grafana Advisor는 데이터 소스, 플러그인, Grafana 인스턴스에 대해 정기 점검을 수행하며, 향후 릴리스에서 더 많은 측면을 다루도록 확장될 예정이에요. 새 점검을 제안하거나 피드백을 주려면 이 폼을 사용하세요.
이 가이드는 Advisor 점검 결과를 모니터링하고 실패가 감지되면 트리거되는 Grafana 알림을 만드는 과정을 안내합니다. 다음 단계를 따르세요:
- 서비스 계정과 토큰 만들기
- Grafana Infinity 데이터 소스 설정
- 알림 규칙 만들기
- 알림 규칙 저장하기
1. 서비스 계정과 토큰 만들기 (Create a service account and token)
- Grafana에서 Administration → Users and access → Service accounts 로 이동합니다.
- Add service account 를 클릭합니다.
- 이름을 제공합니다 (예:
advisor-alert-service-account). - 적절한 권한을 보장하도록 역할을 Admin 으로 설정합니다.
- Create 를 클릭합니다.
- 서비스 계정 세부 정보에서 Add service account token 을 클릭합니다.
- 토큰 이름을 제공하고 적절한 만료일을 설정합니다.
- Generate token 을 클릭합니다.
주의: 토큰 값을 즉시 복사해 안전하게 보관하세요. 다시 볼 수 없어요.
2. Grafana Infinity 데이터 소스 설정 (Set up the Grafana Infinity data source)
참고: 나중에 사용할 JQ 파서를 위해 Infinity 플러그인 v3.3.0 이상을 사용하세요.
- Connections → Add new connection 으로 이동합니다.
- "Infinity" 를 검색합니다.
- 설치되지 않았다면 Install 을 클릭하고 설치가 끝날 때까지 기다립니다.
- 플러그인 페이지에서 Add new data source 를 클릭합니다.
- 데이터 소스 구성:
- Name: 설명적인 이름을 부여합니다 (예:
Advisor API). - Setup Authentication: Auth type 에서 Bearer Token 을 선택합니다. Auth details 섹션에 1단계의 서비스 계정 토큰을 붙여넣고, Allowed hosts 섹션에 Grafana 앱 URL을 적고 Add 버튼을 클릭합니다 (예:
https://your-grafana-host.com).
- Name: 설명적인 이름을 부여합니다 (예:
- 연결을 확인하려면 Save & test 를 클릭합니다.
3. 알림 규칙 만들기 (Create the alert rule)
- Alerting → Alert rules 로 이동합니다.
- New alert rule 을 클릭합니다.
- 규칙 이름을 제공합니다 (예:
Advisor Failures Alert). - 쿼리를 구성합니다:
- Data source: 3단계에서 만든 Infinity 데이터 소스를 선택합니다.
- 쿼리 설정 구성:
- Type: JSON
- Parser: JQ
- Source: URL
- Format: Table
- Method: GET
- URL: Advisor 인터페이스에서 가져옵니다:
- Grafana에서 Advisor를 방문합니다.
- 브라우저 개발자 도구(F12) → Network 탭을 엽니다.
/checks로 끝나는 요청을 찾습니다.- 전체 URL을 복사합니다 (형식:
https://<your_grafana_host>/apis/advisor.grafana.app/v0alpha1/namespaces/<your_namespace>/checks)
- 구문 분석 옵션 구성 — 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보다 크면 알림을 보내기에 적합해요.
-
Columns (다음 세 열 추가):
- Selector:
creationTimestamp, Format: Time - Selector:
failuresCount, Format: Number - Selector:
type, Format: String
- Selector:
-
(선택) 점검 유형으로 필터링 — 특정 점검 유형에 대해서만 알림을 원한다면:
- Computed columns, Filter, Group by 섹션에서
- Filter 추가:
type == "license"("license"를 원하는 점검 유형으로 교체)
-
알림 조건 설정 — Alert condition: "WHEN Last OF QUERY Is above 0" 을 선택합니다. 어떤 점검 유형이든 실패가 있으면 트리거됩니다.
-
"Preview alert rule condition" 을 클릭해 쿼리 결과를 확인합니다.
4. 알림 규칙 저장하기 (Save the alert rule)
- 선호하는 평가(evaluation, 예: 24시간마다)와 알림 설정을 선택합니다.
- Save 를 클릭하고 알림이 트리거되는지 확인합니다.
이제 Advisor 결과를 모니터링하고 실패가 감지되면 알려주는 알림이 구성되었어요!