#DevOps

SRE 업무에 AI 녹여내기 — 2편: Alert Adviser로 장애 원인 분석 자동화

SRE 업무에 AI 녹여내기 — 2편: Alert Adviser로 장애 원인 분석 자동화
01

Summary

장애 발생 즉시 AI가 로그 분석 끝내준다? SRE팀의 ‘Alert Adviser’ 제작기

Grafana MCP와 Slack 봇을 결합해 사람이 리포트만 검증하고 대응하는 장애 대응 자동화 여정

여기어때 SRE팀에서 AI를 활용해 장애 원인 분석과 전파 과정을 혁신한 사례를 공유합니다. Grafana 알림이 울림과 동시에 AI가 직접 로그와 메트릭을 추적해 1차 원인을 분석하고 대응 가이드를 생성하며, 잘못된 정보 전달을 막기 위해 철저한 규칙 기반 검증 시스템을 갖췄습니다. 실시간 장애 대응 수준을 한 차원 높여줄 SRE 관점의 AI 활용 꿀팁을 확인해 보세요.

  • 01Slack Socket Mode와 단일 EC2 아키텍처 기반의 가볍고 강력한 분석 봇 구현
  • 02Grafana MCP 설정을 통해 복잡한 연동 코드 없이 AI가 직접 27종의 조회 도구를 활용하도록 구성
  • 03수치 데이터 검증 정규식과 추정 어투 필터링을 백엔드에 적용하여 AI 오판 가능성을 구조적으로 제어
  • 04문서 정제 및 연관성 오판 문제를 유발하던 RAG 대신 정량적 관측 데이터 위주의 정확한 분석으로 선회
  • 05장애의 근본 원인을 넘어 사용자 화면 영향 범위까지 역추적하는 Alert Bridge로 협업 모델 확장

RECOMMENDATION

수동 온콜 모니터링과 잦은 오경보로 MTTR 단축에 어려움을 겪고 있거나, AI의 환각 현상을 제어하며 신뢰도 높은 SRE 자동화 도구를 도입하려는 개발 및 인프라 조직에 강력히 추천합니다.

The Problem

Grafana 알림 발생 시 온콜 담당자가 수동으로 대시보드와 로그를 분석해야 해 장애 원인 파악 및 해결(MTTR)에 많은 시간이 소요되었으며, QA나 SRE 등 연관 부서와의 실시간 맥락 공유가 어려웠습니다.

The Solution

Slack Socket Mode와 Go 기반 백엔드를 구축하고, Grafana MCP를 연동하여 AI가 직접 Mimir, Loki, Tempo 지표를 조회해 원인을 분석하는 'Alert Adviser'를 개발하였으며, 백엔드 코드 단에서 AI 분석의 근거 등급 검증 및 변경성 권한 차단 등의 통제 장치를 도입했습니다.

The Result

실전 원인 분석 20건 중 일치 14건, 부분 일치 4건의 성과를 거두었으며, 관측 데이터 기반의 분석 한계를 명확히 식별하여 미확인 영역을 구분하고, 사용자 화면 영향도를 파악할 수 있는 Alert Bridge로 협업 효율을 개선했습니다.

Trade-off

사내 Confluence 문서를 임베딩한 자체 RAG 시스템은 데이터 정제의 부담 및 무관한 문서 유입으로 인한 AI 분석 품질 저하 문제로 도입을 포기하고 최종 제외했습니다.

03

Key Concepts

Concept · 01

MCP (Model Context Protocol)

AI가 외부 도구를 표준화된 방식으로 호출할 수 있도록 정의한 규약으로, 복잡한 API 연동 코드 작성 없이도 AI가 필요한 데이터를 직접 찾아 활용하게 돕습니다.

  • Grafana MCP를 활용해 설정 파일 한 줄만으로 AI에 Mimir, Loki, Tempo 조회 도구를 연결함
  • 조회 전용 27종 도구만 화이트리스트로 노출하여 AI의 무단 클러스터 제어 가능성을 차단함
Concept · 02

MTTR (Mean Time To Resolution)

장애가 발생한 시점부터 정상 상태로 복구될 때까지 소요된 평균 시간을 나타내는 주요 SRE 지표입니다.

  • Grafana의 Firing 상태에서 Resolved 상태까지의 시각을 활용해 MTTR을 자동 집계함
  • AI의 1차 관측 분석 리포트 제공을 통해 온콜 담당자의 데이터 조사 프로세스를 단축하여 MTTR을 대폭 개선하고자 함
Concept · 03

정규식을 통한 근거 검증

AI의 분석 신뢰성을 확보하기 위해 생성된 텍스트 응답 속에 명확한 수치나 실측 데이터가 있는지, 그리고 모호한 추정 표현이 들어있는지를 코드 레벨에서 정량적으로 판별하는 기법입니다.

  • 백엔드 Go 코드에서 단위가 포함된 실측 수치를 매칭하는 정규식을 수행함
  • '추정', '가능성' 등 모호한 어휘 감지 시 분석 결과 등급을 자동으로 하향 조정하도록 설계함