OpenTSDB 알림
OpenTSDB 알림 (OpenTSDB alerting)
OpenTSDB 데이터로 알림을 만들려면 Grafana Alerting을 OpenTSDB와 함께 사용할 수 있어요. 이를 통해 시계열 데이터를 기반으로 메트릭을 모니터링하고, 이상 징후를 감지하며, 특정 조건이 충족될 때 알림을 받을 수 있죠. Grafana Alerting에 대한 일반 정보는 Grafana Alerting 문서를 참고하세요.
출처: 문서
본문
시작하기 전에
- Grafana에 OpenTSDB 데이터 소스가 구성되어 있어야 해요. Configure the OpenTSDB data source를 참고하세요.
- 알림 규칙을 만들 권한이 있어야 해요.
- 모니터링하려는 메트릭에 대한 이해가 있어야 해요.
지원되는 기능
OpenTSDB 알림은 시계열 데이터를 반환하는 표준 메트릭 쿼리와 함께 동작해요:
| Query type | Alerting support | Notes |
|---|---|---|
| Metrics with aggregation | Yes | 알림에 권장 |
| Metrics with downsampling | Yes | 적절한 간격 사용 |
| Metrics with rate calculation | Yes | 카운터 메트릭에 유용 |
| Metrics with filters/tags | Yes | 특정 호스트나 서비스로 필터링 |
알림 규칙 만들기
- Alerting > Alert rules로 이동해요.
- New alert rule을 클릭해요.
- 알림 규칙 이름을 입력해요.
- OpenTSDB 데이터 소스를 선택해요.
- 쿼리를 작성해요:
- 모니터링할 메트릭을 선택해요.
- 적절한 집계기(예:
avg,sum,max)를 선택해요. - 특정 리소스를 대상으로 태그 필터를 추가해요.
- 평가 빈도와 맞는 간격의 다운샘플링(downsampling)을 활성화해요.
- 알림 조건을 구성해요 (예: 값이 임계값을 초과할 때).
- 평가 간격과 pending 기간을 설정해요.
- 알림과 라벨을 구성해요.
- Save rule을 클릭해요.
자세한 절차는 "Create a Grafana-managed alert rule" 문서를 참고하세요.
예제 알림 쿼리
높은 CPU 사용량 알림 — CPU 사용량을 모니터링하고 90%를 초과하면 알림:
| Field | Value |
|---|---|
| Metric | sys.cpu.user |
| Aggregator | avg |
| Tags | host=* |
| Downsample Interval | 1m |
| Downsample Aggregator | avg |
조건: 평균이 90보다 클 때.
낮은 디스크 공간 알림 — 사용 가능한 디스크 공간을 모니터링하고 임계값 아래로 떨어지면 알림:
| Field | Value |
|---|---|
| Metric | sys.disk.free |
| Aggregator | min |
| Tags | host=* , mount=/ |
| Downsample Interval | 5m |
| Downsample Aggregator | min |
조건: 최솟값이 10737418240(10GB, 바이트 단위)보다 작을 때.
높은 네트워크 트래픽 알림 — 수신된 네트워크 바이트를 모니터링하고 높은 트래픽 시 알림:
| Field | Value |
|---|---|
| Metric | net.bytes.received |
| Aggregator | sum |
| Tags | host=webserver01 |
| Rate | enabled |
| Counter | enabled |
| Downsample Interval | 1m |
| Downsample Aggregator | avg |
조건: 합이 104857600(100 MB/s, 바이트 단위)보다 클 때.
오류 수 급증 알림 — 애플리케이션 오류 수 모니터링:
| Field | Value |
|---|---|
| Metric | app.errors.count |
| Aggregator | sum |
| Tags | service=api , env=production |
| Downsample Interval | 5m |
| Downsample Aggregator | sum |
조건: 합이 100보다 클 때.
제한 사항
템플릿 변수 미지원: 알림 쿼리에는 템플릿 변수를 포함할 수 없어요. Grafana는 대시보드 컨텍스트 없이 백엔드에서 알림 규칙을 평가하므로 $hostname이나 $environment 같은 변수는 해석되지 않아요. 대시보드 쿼리가 템플릿 변수를 쓴다면 하드코딩된 값의 별도 쿼리를 만들어요.
쿼리 복잡성: 태그가 많은 복잡한 쿼리나 긴 시간 범위는 타임아웃되거나 평가에 실패할 수 있어요. 알림용 쿼리를 단순화하려면:
- 가능하면 와일드카드 대신 특정 태그 필터를 사용해요.
- 적절한 간격의 다운샘플링을 활성화해요.
- 평가 시간 범위를 줄여요.
OpenTSDB 2.4 동작: OpenTSDB 2.4를 알림에 쓸 때 Grafana는 arrays=true 파라미터로 쿼리를 실행해요. 이로 인해 OpenTSDB가 키-값 맵 대신 배열의 배열(array of arrays)로 데이터 포인트를 반환하는데, Grafana가 이 데이터를 자동으로 적절한 형식으로 변환해요.
모범 사례
- 특정 태그 필터 사용: 관련 리소스에 집중하고 쿼리 성능을 높이기 위해 태그 필터를 추가해요.
- 다운샘플 간격을 평가와 일치: 다운샘플 간격을 알림 평가 간격과 같거나 약간 작게 설정해요.
- 먼저 쿼리 테스트: 알림을 만들기 전에 Explore에서 쿼리가 예상 결과를 반환하는지 확인해요.
- 현실적인 임계값 설정: 오탐을 피하기 위해 알림 임계값을 과거 데이터 패턴에 기반해 정해요.
- 의미 있는 이름 사용: 알림 규칙에 모니터링 대상을 나타내는 설명적인 이름을 붙여요.
- 다운샘플링 활성화: 데이터 양을 줄이고 안정성을 높이기 위해 알림 쿼리에서 항상 다운샘플링을 활성화해요.
- 카운터 리셋 고려: 카운터 메트릭은 Counter 옵션을 활성화하고 리셋을 올바르게 처리하도록 적절한 max 값을 설정해요.
다음 단계
- Build queries로 알림을 만들기 전에 메트릭을 탐색해요.
- 알림이 예상대로 발동하지 않으면 Troubleshoot issues를 참고하세요.