Token导航 LogoToken导航

MCP Server · 运维云端

Sample Eks Node Diagnostics MCP

一个用于收集和分析EKS工作节点诊断日志的服务器,支持20多种日志源,包括kubelet、containerd、iptables等,通过SSM自动化实现。

stdio官方级别未说明来源级核验工具 19
日志分析Python云端部署

快速开始

作者 / 组织
aws-samples
提供方
aws-samples
运行时
Python

工具数量

19

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

6

仓库热度

收录来源

1 个

MCP World

选型结论

Sample Eks Node Diagnostics MCP 属于运维云端类 MCP Server,公开资料标注 19 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

运维云端

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

python3 --version

客户端配置示例

{
  "mcpServers": {
    "sample-eks-node-diagnostics-mcp": {
      "command": "python3",
      "args": [
        "--version"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 19 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

EKS节点诊断MCP

⚠️ 概念验证(POC): 这个项目是一个概念验证,应该首先在非生产环境中进行测试。在与生产工作负载一起使用之前,在过渡或开发帐户中进行彻底验证。

AWS DevOps代理的MCP服务器,用于使用SSM Automation从EKS工作节点收集和分析诊断日志。涵盖20多个日志源,包括kubelet、containerd、iptables、CNI config、路由表、dmesg、IPAMD等,这些工件位于节点操作系统上,无法通过Kubernetes API或CloudWatch访问。

想了解内部吗? 看 建筑与设计 深入了解组件的工作原理、数据流、工具设计和安全模型。

______________________________________________________________________

先决条件

1.Node.js(v18.x或更高版本)

macOS(Homebrew):

brew install node

Linux(Ubuntu/Debian):

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

2.AWS CLI v2

macOS:

brew install awscli

Linux:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

3.AWS-CDK-CLI

npm install -g aws-cdk

4.Python 3

大多数系统都预装了它:

python3 --version

5.AWS证书

您需要权限来创建IAM角色、Lambda函数、S3 Bucket、KMS密钥、Cognito用户池和BedrockAgentCore网关。

aws configure
# Or use AWS SSO:
aws sso login --profile your-profile
export AWS_PROFILE=your-profile

6.Worker节点上的crictl(适用于pod级别的tcpdump)

仅适用于 tcpdump_capture 和 podName/podNamespace默认情况下,EKS优化的AMI包括它。

______________________________________________________________________

部署

# Clone the repository
git clone https://github.com/aws-samples/sample-eks-node-diagnostics-mcp.git
cd sample-eks-node-diagnostics-mcp

# Make the script executable
chmod +x deploy.sh

# Deploy (defaults to us-east-1)
./deploy.sh

# Or deploy to a specific region
AWS_REGION=us-west-2 ./deploy.sh

交互式部署流程

部署脚本将引导您完成三个交互式提示:

步骤1——区域选择:

Which AWS regions should be scanned for EKS clusters?

  1) All enabled regions
  2) Current deploy region only (us-east-1)
  3) Enter a specific region

Select [1/2/3] (default: 1):

步骤2——集群选择:

Found 4 EKS cluster(s):

  1) prod-cluster    (us-east-1)
  2) dev-cluster     (us-east-1)
  3) analytics        (us-west-2)
  4) eu-cluster       (eu-west-1)

  a) All clusters

Select clusters (comma-separated numbers, or 'a' for all) [default: a]:

步骤3——节点角色选择:

Found 3 unique node role(s):

  1) arn:aws:iam::123456789012:role/eks-prod-node-role
     └─ eks-prod-node-role  (prod-cluster / us-east-1)
  2) arn:aws:iam::123456789012:role/eks-dev-node-role
     └─ eks-dev-node-role  (dev-cluster / us-east-1)
  3) arn:aws:iam::123456789012:role/eks-eu-node-role
     └─ eks-eu-node-role  (eu-cluster / eu-west-1)

  a) All roles

Select node roles (comma-separated numbers, or 'a' for all) [default: a]:

回退——手动输入ARN:

如果找不到EKS集群或节点角色,则脚本会提示您手动输入角色ARN:

WARNING: No EKS clusters found in the selected region(s).

Would you like to manually enter node role ARN(s)? [y/N]: y
Enter comma-separated role ARNs (e.g. arn:aws:iam::123456789012:role/MyNodeRole):
>

非交互/CI模式

直接提供角色ARN跳过所有提示:

# Via environment variable
EKS_NODE_ROLE_ARNS="arn:aws:iam::123456789012:role/MyNodeRole" ./deploy.sh

# Or as a positional argument
./deploy.sh EksNodeLogMcpStack arn:aws:iam::123456789012:role/MyNodeRole

# Multiple roles (comma-separated)
EKS_NODE_ROLE_ARNS="arn:aws:iam::123456789012:role/Role1,arn:aws:iam::123456789012:role/Role2" ./deploy.sh

部署什么

资源目的
S3存储桶(KMS加密)存储收集的日志包
S3 Bucket(SOP)存储41个Runbook,通过CDK自动部署
Lambda(SSM自动化)处理所有19个MCP工具调用
Lambda(解压缩)自动提取上传的存档
Lambda(发现索引器)预索引错误以实现快速检索
SSM自动化角色在EC2实例上运行日志收集
Cognito用户池MCP网关的OAuth2身份验证
BedrockAgentCore网关MCP协议端点
KMS密钥加密所有静态数据

______________________________________________________________________

部署后:EKS节点IAM设置

什么是自动

如果您在交互式部署流程中选择了节点角色(或通过 EKS_NODE_ROLE_ARNS),CDK堆栈会自动授予:

  • S3存储桶策略: s3:PutObject, s3:GetBucketPolicyStatus, s3:GetBucketAcl 在原木桶上
  • KMS密钥策略: kms:GenerateDataKey, kms:Encrypt, kms:Decrypt 关于加密密钥(kms:Decrypt 需要S3多部分上传大于~8 MiB的文件)

这些角色不需要手动设置S3或KMS。

如果在部署期间没有提供节点角色,则堆栈将回退到帐户范围的策略(帐户中的任何主体都可以上传)。这限制较少,但仍然有效。

你可能还需要什么

CDK堆栈唯一没有附加的是SSM代理管理的策略。EKS优化的AMI默认包括SSM代理,但IAM角色需要以下策略:

# Only needed if not already attached
aws iam attach-role-policy \
  --role-name  \
  --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

部署后添加节点角色

如果稍后添加新的EKS集群,请重新运行部署脚本——它将检测新的节点角色并自动更新S3存储桶和KMS密钥策略。

或者,直接传递新角色:

EKS_NODE_ROLE_ARNS="arn:aws:iam::123456789012:role/ExistingRole,arn:aws:iam::123456789012:role/NewRole" ./deploy.sh

每个集群的检查表

  • \[\]部署期间选择了节点角色(或通过重新部署添加)
  • \[\]节点角色具有 AmazonSSMManagedInstanceCore 管理策略(用于SSM代理)
  • \[\]SSM代理正在节点上运行(EKS优化AMI上的默认设置)
  • \[ \] AWSSupport-CollectEKSInstanceLogs 目标区域中存在SSM文档

______________________________________________________________________

DevOps代理中的配置

部署后,脚本输出MCP服务器配置所需的所有值:

设置值
MCP服务器URLhttps://.gateway.bedrock-agentcore..amazonaws.com/mcp
OAuth客户端ID输出中的Cognito客户端ID
OAuth客户端密码输出中的Cognito客户端密码
令牌URLhttps://-.auth..amazoncognito.com/oauth2/token
范围ssm-automation-gateway-id/gateway:read

值也保存到 mcp-config.txt 以供参考。

______________________________________________________________________

代理技能

A预制 代理技能 包含在 skills/ 教AWS DevOps Agent如何有效地使用此MCP服务器。该技能将调查工作流程、抗幻觉护栏和所有41个runbook程序加载到代理的上下文中,从而补充了运行时 list_sops/get_sop 工具。

技能拉链大小内容
188K21个工具工作流程,41个运行本,VPC CNI抗幻觉规则,存储护栏

上传技能

  1. 导航至 技能 您的页面 代理空间运营商Web应用程序
  2. 点击 添加技能 → 上传技巧
  3. 上传 skills/eks-node-diagnostics.zip
  4. 将代理类型设置为 通用的 (所有代理类型)
  5. 点击 上传

有关更多详细信息,请参阅 AWS DevOps代理技能文档.

技能vs SOP:调查开始时的技能负荷(前期方法和陷阱)。SOP通过以下方式按需获取 get_sop (详细的分步程序)。两者结合使用可获得最佳效果。

______________________________________________________________________

运作原理

该服务器使MCP兼容代理能够从EKS工作节点收集完整的诊断包,对严重性分类的错误进行预索引,在不截断的情况下流式传输多GB日志文件,跨日志源关联事件,运行实时tcpdump捕获,比较节点,并遵循结构化的运行手册——所有这些都是通过分为5层的19个MCP工具完成的。

有关架构、数据流、工具设计、跨区域机制、安全模型和抗幻觉设计的详细演练,请参阅:

建筑与设计→

MCP工具(快速参考)

层级工具目的
1--核心collect, status, validate, errors, read日志收集、发现、流式传输
2--分析search, correlate, artifact, summarize, history深入调查、关联、总结
3--集群cluster_health, compare_nodes, batch_collect, batch_status, network_diagnostics多节点操作
4--捕获tcpdump_capture, tcpdump_analyze实时数据包捕获和分析
5-SOPlist_sops, get_sop41本结构化的小册子

代理工作流

collect → status (poll) → validate → errors → search → correlate → read → summarize

Runbook库(41 SOP)

类别覆盖范围
A--节点生命周期OOM/NotReady、证书、引导、时钟偏斜、连接失败
B-Kubelet配置错误、驱逐、PLEG
C--容器运行时映像拉取、沙箱创建、覆盖FS/索引节点
D--网络VPC CNI、kube-proxy、conntrack、MTU、DNS、ENA、pod到pod
E--存储EBS CSI、EFS装载
F-调度CPU/内存、最大Pod数、污染/容忍度
G--资源压力磁盘压力、OOMKill、PID压力
H-IAM/安全节点角色、IRSA/Pod标识、IMDS
I——升级版本偏差
J-基础设施ENA/实例限制、EBS瞬态、AZ停机
K--工作负载问题终止Pod卡住、探测器故障、CrashLoopBackOff、容器故障、CSI插件
Z--包罗万象一般故障排除

______________________________________________________________________

使用示例

基础调查

Node i-0abc123def in us-west-2 went NotReady around 3am. Collect its logs
and correlate what happened in the 5 minutes before it went down.

集群范围分类

We have a 200-node cluster and something is off. Do a dry run batch collection
first — show me which nodes you'd sample. Then collect from the unhealthy ones.

实时数据包捕获

Pods on node i-0abc123def can't reach the API server. Run a 2-minute tcpdump
filtered on port 443, then analyze — show me RST counts and retransmissions.

吊舱液位捕捉

DNS lookups are timing out. CoreDNS pod coredns-5d78c9869d-abc12 is on node
i-0abc123def in kube-system. Capture UDP port 53 from inside the pod for 60s.

SOP指导

I don't know what's wrong — just investigate. List the available SOPs, run a
general triage, and follow whichever runbook matches.

______________________________________________________________________

云形成输出

输出描述
GatewayIdAgentCore网关ID
GatewayUrlMCP服务器URL
CognitoUserPoolIdCognito用户池ID
CognitoClientIdOAuth客户端ID
OAuthExchangeUrlOAuth令牌URL
OAuthScopeOAuth作用域
LogsBucketNameS3原木桶
SOPBucketNameS3 Runbook桶
SSMAutomationRoleArnSSM自动化角色ARN
EncryptionKeyArnKMS密钥ARN

______________________________________________________________________

故障排除

症状原因修复
collect 返回“找不到文档”SSM文档不在目标区域使用支持的区域或通道 region 明确
上传步骤失败节点角色缺少S3/KMS权限添加 EksNodeLogMcpS3Upload 内联策略
status 返回错误的区域区域元数据未持久化通过 region 明确
自动检测超时异常区域实例通过 region 明确
errors 返回空结果索引器尚未运行等待几秒钟 validate,或使用 search

______________________________________________________________________

清理

cdk destroy
S3铲斗具有 removalPolicy: RETAIN。如果需要,在堆栈销毁后手动删除。

______________________________________________________________________

许可证

本项目根据麻省理工学院无署名(MIT-0)许可证获得许可。看 许可证 文件。

工具与能力

工具数量

19

资源数量

0

提示词数量

0

能力标签

EKS诊断Python本地部署日志分析AWS工具容器运维自动化工具

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 工具数量 19 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Sample Eks Node Diagnostics MCP

MCP World · 本页

19stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Sample Eks Node Diagnostics MCP 怎么安装?

公开资料给出的安装命令是 python3 --version,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Sample Eks Node Diagnostics MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Sample Eks Node Diagnostics MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Sample Eks Node Diagnostics MCP 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Sample Eks Node Diagnostics MCP 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP