알림

최종 수정: 2026. 1. 16.

알림

알림을 설정하고 관리하는 방법을 안내합니다.


개요

알림 기능을 통해 시스템 이상 상황을 즉시 감지하고 적절한 조치를 취할 수 있습니다.

알림 유형

유형 설명
메트릭 알림 메트릭 임계값 기반 알림
로그 알림 로그 패턴 기반 알림
트레이스 알림 지연시간, 에러 기반 알림
이상 탐지 자동 이상 패턴 감지

알림 접근

  1. 좌측 메뉴에서 Alerts 클릭
  2. 알림 관리 화면이 표시됩니다

화면 구성

  • Alert Rules: 알림 규칙 목록
  • Triggered Alerts: 발생한 알림 목록
  • Notification Channels: 알림 채널 설정

알림 규칙 생성

Step 1: 새 규칙 생성

  1. + New Alert Rule 클릭
  2. 규칙 이름 입력 (예: "High CPU Usage")

Step 2: 쿼리 작성

메트릭 알림:

avg(system_cpu_utilization{k8s_cluster_name="production"}) > 80

로그 알림:

severity_text:ERROR AND k8s.namespace.name:production

Step 3: 조건 설정

설정 설명
Threshold 임계값 (예: > 80)
Duration 지속 시간 (예: 5분)
Evaluation Interval 평가 주기 (예: 1분)

Step 4: 알림 채널 선택

발생한 알림을 전송할 채널 선택:

  • Slack
  • Email

Step 5: 저장

Save 클릭하여 규칙 활성화


알림 채널 설정

Slack

  1. Notification Channels > + Add Channel
  2. Type: Slack 선택
  3. Webhook URL 입력
  4. 테스트 후 저장

Slack Webhook 생성:

  1. Slack 앱 관리 페이지 접근
  2. Incoming Webhooks 활성화
  3. 채널 선택 후 Webhook URL 복사

Email

  1. Type: Email 선택
  2. Recipients 입력 (쉼표로 구분)
  3. SMTP 설정 확인
  4. 저장

알림 규칙 예시

인프라 알림

CPU 사용률 높음:

avg by (k8s_node_name) (system_cpu_utilization) > 80
  • 지속 시간: 5분
  • 심각도: Warning

메모리 사용률 높음:

avg by (k8s_node_name) (system_memory_utilization) > 85
  • 지속 시간: 5분
  • 심각도: Critical

디스크 사용률 높음:

(1 - (system_filesystem_usage{state="free"} / system_filesystem_usage{state="total"})) * 100 > 90
  • 지속 시간: 10분
  • 심각도: Critical

노드 NotReady:

kube_node_status_condition{condition="Ready", status="true"} == 0
  • 지속 시간: 2분
  • 심각도: Critical

애플리케이션 알림

에러율 높음:

sum(rate(http_server_errors_total[5m])) / sum(rate(http_server_request_total[5m])) * 100 > 5
  • 지속 시간: 3분
  • 심각도: Critical

P99 지연시간 높음:

histogram_quantile(0.99, sum(rate(http_server_request_duration_seconds_bucket[5m])) by (le, service_name)) > 1
  • 지속 시간: 5분
  • 심각도: Warning

요청률 급감:

sum(rate(http_server_request_total[5m])) < 10
  • 지속 시간: 5분
  • 심각도: Warning

Kubernetes 알림

파드 재시작 많음:

increase(kube_pod_container_status_restarts_total[1h]) > 3
  • 지속 시간: 즉시
  • 심각도: Warning

파드 Pending:

kube_pod_status_phase{phase="Pending"} > 0
  • 지속 시간: 5분
  • 심각도: Warning

디플로이먼트 레플리카 부족:

kube_deployment_status_replicas_available < kube_deployment_spec_replicas
  • 지속 시간: 5분
  • 심각도: Critical

로그 알림

에러 로그 급증:

조건: severity_text:ERROR
임계값: 5분 내 100개 이상

특정 에러 패턴:

조건: body contains "OutOfMemory"
임계값: 1개 이상

알림 상태

상태 설명
OK 정상 상태
Pending 조건 충족, 지속 시간 미달
Firing 알림 발생
Resolved 알림 해결됨

알림 라이프사이클


알림 그룹화

라벨 기반 그룹화

동일한 알림을 그룹화하여 노이즈 감소:

group_by:
  - k8s_cluster_name
  - k8s_namespace_name

그룹 대기 시간

동일 그룹의 알림을 묶어서 전송:

  • Group Wait: 30초 (첫 알림 후 대기)
  • Group Interval: 5분 (이후 알림 간격)

알림 억제

Silencing

특정 기간 동안 알림 무음:

  1. Silences > + New Silence
  2. 매칭 조건 설정:
    alertname = "HighCPU"
    k8s_cluster_name = "development"
  3. 시작/종료 시간 설정
  4. 사유 입력
  5. Create 클릭

자동 억제

유지보수 기간 동안 알림 억제:

  • 정기 배포 시간
  • 예정된 다운타임

알림 히스토리

발생 알림 확인

Triggered Alerts 탭에서:

  • 현재 발생 중인 알림
  • 과거 알림 이력
  • 알림별 상세 정보

필터링

  • Status: Firing, Resolved
  • Severity: Critical, Warning, Info
  • Time Range: 시간 범위

문제 해결

알림이 발생하지 않음

  1. 규칙 상태 확인 (활성화 여부)
  2. 쿼리가 올바른지 확인
  3. 임계값 설정 확인
  4. 평가 주기 확인

알림이 전송되지 않음

  1. 알림 채널 설정 확인
  2. 테스트 메시지 전송
  3. 채널 연결 상태 확인
  4. 네트워크 설정 확인

알림 노이즈 많음

  1. 임계값 조정
  2. 지속 시간 늘리기
  3. 그룹화 설정
  4. Silencing 활용

모범 사례

알림 설계 원칙

  1. 실행 가능한 알림: 조치가 필요한 경우만 알림
  2. 적절한 임계값: 너무 민감하거나 둔감하지 않게
  3. 명확한 설명: 알림 내용이 명확하도록
  4. 적절한 심각도: Critical, Warning 구분

권장 설정

항목 권장 값
지속 시간 (인프라) 5-10분
지속 시간 (애플리케이션) 2-5분
평가 주기 1분
그룹 대기 30초-1분

다음 단계

  • 대시보드 - 알림 대시보드 생성
  • 메트릭 - 알림 쿼리 작성
  • 로그 - 로그 기반 알림