EKS Log Analyzer MCP Server
Amazon EKS 노드 로그 분석을 위한 MCP 서버입니다.
MCP란?
Model Context Protocol (MCP)는 AI 어시스턴트가 외부 도구와 데이터에 접근할 수 있게 해주는 오픈 프로토콜입니다. Claude Desktop, Kiro, Cursor 등 MCP를 지원하는 AI 도구에서 이 서버를 연결하면, AI가 EKS 로그를 직접 분석할 수 있습니다.
목적
EKS 노드 트러블슈팅은 여러 로그 파일을 교차 분석해야 하는 복잡한 작업입니다. 이 MCP 서버는:
- EKS Log Collector로 수집한 tar 파일을 자동 분석
- VPC CNI, kubelet, DNS, Network Policy 등 주요 컴포넌트별 분석 도구 제공
- 트러블슈팅 가이드와 워크플로우를 AI에게 제공하여 체계적인 문제 진단 지원
AI 어시스턴트에게 "이 로그 분석해줘"라고 요청하면, MCP 도구를 활용해 문제를 찾아줍니다.
설치
cd eks-log-mcp
pip install -r requirements.txt
MCP 설정
.kiro/settings/mcp.json 또는 Claude Desktop 설정에 추가:
{
"mcpServers": {
"eks-log-analyzer": {
"command": "python",
"args": ["/path/to/eks-log-mcp/server.py"]
}
}
}
도구 목록 (14개)
| 도구 | 설명 |
|---|---|
extract_eks_logs |
EKS log collector tar 파일 압축 해제 |
list_structure |
로그 디렉토리 구조 표시 |
get_node_info |
노드 기본 정보 (instance-id, region, kernel) |
analyze_vpc_cni |
VPC CNI 로그 분석 (aws-routed-eni, ipamd, CNI 설정) |
analyze_kubelet |
kubelet 로그 및 설정 분석 |
analyze_containerd |
containerd 로그 및 설정 분석 |
analyze_dns |
DNS 4단계 트러블슈팅 |
analyze_node_join |
Node Join/NotReady 문제 분석 |
analyze_networking |
네트워킹 분석 (iptables, conntrack, routes, ebpf) |
analyze_network_policy |
Network Policy eBPF 분석 |
analyze_storage |
스토리지 분석 (mounts, lsblk, fstab) |
analyze_system |
시스템 분석 (ps, netstat, dmesg) |
analyze_pod_logs |
특정 Pod 로그 분석 (kube-proxy, aws-node 등) |
search_logs |
전체 로그에서 패턴 검색 |
트러블슈팅 가이드 (7개 Resources)
MCP Resources로 AI에게 트러블슈팅 지식을 제공합니다:
| 가이드 | URI |
|---|---|
| VPC CNI | eks://guides/vpc-cni |
| DNS | eks://guides/dns |
| Node Join | eks://guides/node-join |
| Kubelet | eks://guides/kubelet |
| Kube-proxy | eks://guides/kube-proxy |
| Containerd | eks://guides/containerd |
| Network Policy | eks://guides/network-policy |
워크플로우 프롬프트 (4개 Prompts)
| 프롬프트 | 설명 |
|---|---|
troubleshoot-vpc-cni |
VPC CNI 문제 분석 워크플로우 |
troubleshoot-dns |
DNS 문제 분석 워크플로우 |
troubleshoot-node-join |
Node Join/NotReady 분석 워크플로우 |
full-diagnosis |
전체 노드 진단 |
사용 예시
# tar 파일 압축 해제
extract_eks_logs(tar_path="eks_i-xxx.tar.gz")
# 노드 정보 확인
get_node_info(log_dir="eks_i-xxx")
# VPC CNI 분석
analyze_vpc_cni(log_dir="eks_i-xxx")
# DNS 트러블슈팅
analyze_dns(log_dir="eks_i-xxx")
# 에러 검색
search_logs(log_dir="eks_i-xxx", pattern="error")
지원하는 로그 구조
eks_i-xxx/
├── kernel/ # dmesg, uname
├── system/ # instance-id, ps, netstat
├── containerd/ # config, logs
├── storage/ # mounts, lsblk
├── var_log/
│ └── aws-routed-eni/ # VPC CNI 로그
├── networking/ # iptables, conntrack, ebpf
├── ipamd/ # ENI, pod 정보 (JSON)
├── kubelet/ # kubelet.log, kubeconfig
└── cni/ # CNI 설정