Analyze Amazon EKS node logs collected by the EKS Log Collector script.
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 설정
Tools (14)
extract_eks_logsUnpacks EKS log collector tar files.list_structureDisplays the log directory structure.get_node_infoRetrieves basic node information like instance-id, region, and kernel.analyze_vpc_cniAnalyzes VPC CNI logs including aws-routed-eni, ipamd, and CNI settings.analyze_kubeletAnalyzes kubelet logs and configuration.analyze_containerdAnalyzes containerd logs and configuration.analyze_dnsPerforms 4-stage DNS troubleshooting.analyze_node_joinAnalyzes Node Join or NotReady issues.analyze_networkingAnalyzes networking components like iptables, conntrack, routes, and ebpf.analyze_network_policyAnalyzes Network Policy eBPF configurations.analyze_storageAnalyzes storage components including mounts, lsblk, and fstab.analyze_systemAnalyzes system status using ps, netstat, and dmesg.analyze_pod_logsAnalyzes logs for specific pods like kube-proxy or aws-node.search_logsSearches for specific patterns across all logs.Configuration
{"mcpServers": {"eks-log-analyzer": {"command": "python", "args": ["/path/to/eks-log-mcp/server.py"]}}}