def root_cause_analysis(alert: dict, logs: str, metrics: dict, history: list) -> dict: """장애의 근본 원인을 분석""" # 유사 과거 사례 검색 similar_incidents = search_incident_db(alert["description"]) response = client.messages.create( model="claude-sonnet-4-6", max_tokens=4096, messages=[{"role": "user", "content": f"""장애 근본 원인 분석(RCA)을 수행하세요.## 현재 알림{json.dumps(alert, ensure_ascii=False)}## 관련 로그 (최근 30분){logs}## 시스템 메트릭{json.dumps(metrics, ensure_ascii=False)}## 유사 과거 사례{json.dumps(similar_incidents, ensure_ascii=False)}## 분석 요청1. 근본 원인 (확률 높은 순, 최대 3개)2. 원인별 근거 (로그/메트릭 증거)3. 영향 범위4. 즉시 조치 (긴급 대응)5. 근본적 해결 방안 (재발 방지)6. 과거 유사 사례와의 비교JSON으로 반환하세요."""}] ) return json.loads(response.content[0].text)
3. 자동 장애 대응
자동 복구 워크플로
class AutoRemediationAgent: def __init__(self): self.approved_actions = { "restart_service": {"risk": "low", "auto_approve": True}, "scale_up": {"risk": "low", "auto_approve": True}, "clear_cache": {"risk": "low", "auto_approve": True}, "rollback_deployment": {"risk": "medium", "auto_approve": False}, "failover": {"risk": "high", "auto_approve": False}, } def handle_alert(self, alert: dict): """알림 처리 파이프라인""" # 1. RCA 수행 analysis = root_cause_analysis(alert, get_logs(), get_metrics(), get_history()) # 2. 조치 결정 actions = analysis["recommended_actions"] for action in actions: action_config = self.approved_actions.get(action["type"]) if action_config and action_config["auto_approve"]: # 자동 승인된 조치 → 즉시 실행 self.execute_action(action) self.notify_team(f"자동 조치 실행: {action['type']}") else: # 수동 승인 필요 → 에스컬레이션 self.escalate(action, analysis) # 3. 장애 보고서 생성 report = self.generate_incident_report(alert, analysis, actions) self.send_report(report)
장애 보고서 자동 생성
def generate_incident_report(alert, analysis, actions_taken) -> str: """장애 보고서 자동 생성""" response = client.messages.create( model="claude-sonnet-4-6", max_tokens=4096, messages=[{"role": "user", "content": f"""다음 정보를 바탕으로 장애 보고서를 작성하세요.알림: {json.dumps(alert)}분석 결과: {json.dumps(analysis)}수행된 조치: {json.dumps(actions_taken)}보고서 형식:## 장애 보고서### 1. 개요 (발생 시각, 영향 범위, 심각도)### 2. 타임라인 (발생 → 감지 → 분석 → 조치 → 복구)### 3. 근본 원인### 4. 수행된 조치### 5. 재발 방지 대책### 6. 관련 지표 (MTTD, MTTR)"""}] ) return response.content[0].text
4. 프로덕션 AIOps 체크리스트
단계
항목
설명
1단계
로그 분석 자동화
에러 로그 자동 분류/요약
2단계
장애 보고서 자동 생성
알림 발생 시 보고서 초안 생성
3단계
RCA 자동화
과거 사례 DB + LLM 분석
4단계
런북 자동 실행
저위험 조치 자동 수행
5단계
예측적 분석
패턴 학습으로 장애 예방
참고: 자동 복구는 반드시 저위험 조치부터 단계적으로 도입하세요. 서비스 재시작, 스케일 업 등 안전한 조치부터 시작하고, 롤백이나 페일오버는 사람의 승인을 거치세요.
References
Dang, Y. et al. (2019). "AIOps: Real-World Challenges and Research Innovations." ICSE
Chen, Z. et al. (2024). "LLM-based Log Analysis for Automated Incident Management." arXiv