1. 전체 아키텍처 개요
[Slack 채널]
│
▼
[Flask 기반 Bot Server]
├─ SlackEventsAdapter 처리
├─ PDF 업로드 분석 (LangChain + Chroma VectorDB)
├─ 일반 질문 → LLM 답변 (Ollama)
└─ Prometheus 쿼리 연동 (REST API)
- 슬랙 채널 : 사용자가 질문을 입력하거나 파일을 업로드하는 인터페이스
- Flask 서버 : Slack 이벤트 수신 및 응답 처리
- LangChain + ChromaDB : PDF 문서 기반 질의응답
- Ollama (Mistral 모델) : 문서 기반이 아닌 일반 질문에 대한 자연어 응답
- Prometheus : 실시간 클러스터 메트릭 조회 (예: CPU 사용량)
PDF 문서 업로드 및 Q&A
- 사용자가 슬랙에 PDF 파일 업로드 시 자동 다운로드
- LangChain + Chroma VectorDB에 문서 내용 저장
- 동일 채널 ID 기반으로 DB 폴더를 생성해 context 유지
status = pdf_added_to_database(file_name, channel_id)
- 질문 예시
- "이 문서에서 언급된 Kubernetes 관련 내용 알려줘"
- "DB 장애와 관련된 내용이 있어?"
일반 질문 대응 (RAG fallback)
- 문서가 없는 경우 Ollama(Mistral)를 사용해 일반적인 질문에 응답
llm = Ollama(model="mistral", temperature=0)
answer = llm.invoke("Kubernetes가 뭐야?")
- 모델: mistral
- 예: "Kubernetes란?", "Prometheus와 Grafana의 차이점은?"
Prometheus 실시간 메트릭 조회 기능
- 예: "cpu 사용량 알려줘" 요청 시
- rate(container_cpu_usage_seconds_total[1m]) 쿼리 실행
- Pod 별 CPU 사용량 분석 후 응답
향후 목표 기능 (준비 중)
- Grafana 패널 이미지 렌더링 : /render/d-solo/... API를 통해 PNG 이미지로 응답 예정
- Loki 로그 연동 : "error 로그 보여줘" 시, Promtail → Loki → Slack 응답 구조 구현 중
- 장애 진단 명령어 : "OOMKilled 파드", "디스크 부족 노드" 등 명령어에 Prometheus 쿼리 대응 중
'Kubernetes' 카테고리의 다른 글
FastAPI 애플리케이션을 AKS에 배포하고 Prometheus + Grafana로 모니터링 하기 (0) | 2025.06.09 |
---|---|
Spring Boot 애플리케이션을 Azure AKS에 배포하고 Prometheus + Grafana로 모니터링하기 (3) | 2025.06.05 |
Multi Cluster 환경 구축 : dev / com 클러스터 연동 및 Grafana 통합 시각화 (0) | 2025.04.21 |
AKS 환경에서 Promtail → Loki → Grafana 기반 로그 수집 (0) | 2025.04.14 |
AKS 기반 Promtail-Loki-Grafana 로그 수집 시스템 구축 및 테스트 (0) | 2025.04.10 |