Community写作与编辑github.com

zw008/VMware-Monitor

只读的 VMware vCenter/ESXi 监控工具——代码级强制执行的安全保障,零破坏性操作

VMware-Monitor 是什么?

VMware-Monitor 是一个专注于 VMware vCenter 和 ESXi 环境的只读监控技能。它提供 11 个 MCP 工具,涵盖库存查询、健康检查、VM 详细信息、告警和事件扫描等,所有工具均设计为无破坏性操作,代码中完全不包含创建、删除、修改或快照功能。该技能适用于本地小型模型(如 Ollama、Qwen)和云端大型模型(如 Claude、GPT-4o),支持通过 CLI 或 MCP 接口使用。其独特之处在于 `get_alarms` 和 `get_events` 工具会返回 `suggested_actions` 字段,直接给出指向正确配套技能(如 vmware-aiops)的调用建议,帮助 AI 代理简化路由推理。此外,它还支持基于 Slack/Discord webhook 的定期告警和日志扫描守护进程,所有操作均通过 vmware-policy 自动审计,确保安全性和可追溯性。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add zw008/VMware-Monitor

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

VMware 监控(只读)

免责声明:这是一个社区维护的开源项目,与 VMware, Inc. 或 Broadcom Inc. 没有关联、授权或赞助关系。“VMware”和“vSphere”是 Broadcom 的商标。源代码在 github.com/zw008/VMware-Monitor 上公开可审计,采用 MIT 许可证。

只读的 VMware vCenter/ESXi 监控——11 个 MCP 工具,零破坏性代码。

代码级安全性:此技能不包含任何电源、创建、删除、快照或修改操作。它们并非被禁用——而是根本不存在于代码库中。 配套技能:vmware-aiops(VM 生命周期)、vmware-storage(iSCSI/vSAN)、vmware-vks(Tanzu Kubernetes)、vmware-nsx(NSX 网络)、vmware-nsx-security(DFW/防火墙)、vmware-aria(指标/告警/容量)、vmware-avi(AVI/ALB/AKO)、vmware-harden(合规基线)。 | vmware-pilot(工作流编排)| vmware-policy(审计/策略)

此技能的功能

类别能力
库存列出 VM、ESXi 主机、数据存储、集群、网络
健康活跃告警、最近事件(按严重程度/时间筛选)、硬件传感器、主机服务
VM 详情CPU、内存、磁盘、网卡、快照、客户机操作系统、IP
扫描定时告警/日志扫描,支持 Slack/Discord webhook

快速安装

uv tool install vmware-monitor
vmware-monitor doctor

何时使用此技能

  • 列出或搜索 VM、主机、数据存储、集群
  • 检查活跃告警或最近事件
  • 获取特定 VM 的详细信息
  • 设置带有 webhook 告警的定时监控
  • 任何需要安全至上的只读 VMware 查询

告警/事件输出:suggested_actions 字段

get_alarms 和 get_events 的结果包含一个 suggested_actions 列表。 每个项目都是一个即用型提示,指向正确的配套技能和工具:

{
  "alarm_name": "VM CPU Ready High",
  "entity_name": "prod-db-01",
  "suggested_actions": [
    "vmware-aiops: acknowledge_vcenter_alarm(entity_name='prod-db-01', alarm_name='VM CPU Ready High')",
    "vmware-aiops: reset_vcenter_alarm(entity_name='prod-db-01', alarm_name='VM CPU Ready High')"
  ]
}

AI 代理(尤其是较小的本地模型)可以直接读取这些提示,以确定接下来要调用哪个技能和工具,无需自行推理技能路由。

使用配套技能进行:

  • 开机/关机、部署、克隆、迁移 --> vmware-aiops
  • iSCSI、vSAN、数据存储管理 --> vmware-storage
  • Tanzu Kubernetes 集群 --> vmware-vks
  • 负载均衡、AVI/ALB、AKO、Ingress --> vmware-avi

相关技能——技能路由

用户意图推荐技能
只读 vSphere 监控,零风险vmware-monitor ← 此技能
存储:iSCSI、vSAN、数据存储vmware-storage
VM 生命周期、部署、客户机操作vmware-aiops
Tanzu Kubernetes(vSphere 8.x+)vmware-vks
NSX 网络:分段、网关、NATvmware-nsx
NSX 安全:DFW 规则、安全组vmware-nsx-security
Aria Ops:指标、告警、容量规划vmware-aria
带审批的多步骤工作流vmware-pilot
合规基线(CIS / 等保 / PCI-DSS)、漂移检测、LLM 修复建议vmware-harden(uv tool install vmware-harden)
负载均衡器、AVI、ALB、AKO、Ingressvmware-avi(uv tool install vmware-avi)
审计日志查询vmware-policy(vmware-audit CLI)

常见工作流

诊断调查:在运行任何“为什么 X 失败/宕机/异常”的工作流之前,请遵循 references/investigation-protocol.md。它强制执行四个根本原因完整性标准(可证伪性/充分性/必要性/机制)和最多三轮的深化循环。由于 vmware-monitor 是只读的,它作为数据源——执行操作属于配套技能,如 vmware-aiops。

每日健康检查

判断:告警告诉你 vCenter 已确定的问题,事件告诉你发生的情况。它们会存在分歧——没有告警的事件爆发通常表明指标阈值校准错误,而不是“一切正常”。两者都要读取。

  1. 检查告警 --> vmware-monitor health alarms --target prod-vcenter — 重点关注红色严重级别且超过 1 小时的告警(瞬态告警会自动清除)
  2. 查看最近事件 --> vmware-monitor health events --hours 24 --severity warning — 查找来自同一实体的重复事件(单个事件是噪音;一小时内 50 个事件则是一种模式)
  3. 列出主机 --> vmware-monitor inventory hosts — 标记已断开连接、意外处于维护模式或内存使用率超过 90% 的主机
  4. 如果连接失败 --> 运行 vmware-monitor doctor 以诊断配置/网络问题

调查特定 VM

  1. 查找 VM --> vmware-monitor inventory vms --power-state poweredOff
  2. 获取详细信息 --> vmware-monitor vm info problem-vm
  3. 检查相关事件 --> vmware-monitor health events --hours 48
  4. 如果未找到 VM --> 使用 vmware-monitor inventory vms --limit 100 验证 VM 名称,或使用 --target <other-vcenter> 检查目标

设置持续监控

  1. 在 ~/.vmware-monitor/config.yaml 中配置 webhook
  2. 启动守护进程 --> vmware-monitor daemon start
  3. 守护进程每 15 分钟扫描一次,并通过 Slack/Discord 发送告警

使用模式

场景推荐原因
本地/小型模型(Ollama、Qwen)CLI约 2K tokens vs MCP 约 8K
云端模型(Claude、GPT-4o)任意MCP 提供结构化 JSON I/O
自动化管道MCP类型安全参数、结构化输出

MCP 工具(11 个——全部只读)

工具描述
list_virtual_machines列出 VM,支持过滤(电源状态、排序、限制、folder_filter 用于不区分大小写的文件夹树搜索);每个 VM 包含 folder_path
list_esxi_hostsESXi 主机,包含 CPU、内存、版本、运行时间
list_all_datastores数据存储,包含容量、可用空间、类型
list_all_clusters集群,包含主机数量、DRS/HA 状态
list_all_networks网络,包含连接的 VM 数量和可访问性
get_alarms所有活跃/触发的告警——包含 suggested_actions 修复提示
get_events最近事件,按严重程度和时间过滤——包含 suggested_actions 提示
get_host_sensors每个主机的硬件传感器状态(温度/电压/风扇),带绿色/黄色/红色健康指示
get_host_services主机服务状态(运行状态和启动策略),可选按主机过滤
vm_info详细的 VM 信息(CPU、内存、磁盘、网卡、快照)
vm_list_snapshots一个 VM 的快照列表,包含嵌套层次结构(只读)

所有工具都是只读的。没有任何工具可以修改、创建或删除任何资源。

CLI 快速参考

vmware-monitor inventory vms [--target <t>] [--limit 20] [--power-state poweredOn]
vmware-monitor inventory hosts [--target <t>]
vmware-monitor inventory datastores [--target <t>]
vmware-monitor inventory clusters [--target <t>]
vmware-monitor inventory networks [--target <t>]
vmware-monitor health alarms [--target <t>]
vmware-monitor health events [--hours 24] [--severity warning]
vmware-monitor health sensors [--target <t>]
vmware-monitor health services [--host <esxi>] [--target <t>]
vmware-monitor vm info <vm-name> [--target <t>]
vmware-monitor scan now [--target <t>]
vmware-monitor daemon start|stop|status
vmware-monitor doctor [--skip-auth]

完整 CLI 参考:参见 references/cli-reference.md

故障排除

告警返回为空,但 vCenter 显示有告警

get_alarms 工具在根文件夹级别查询触发的告警。某些告警是特定于实体的——尝试改为检查事件:get_events --hours 1 --severity info。

“Connection refused”错误

  1. 运行 vmware-monitor doctor 进行诊断
  2. 验证 config.yaml 中的目标主机名/IP 和端口(443)
  3. 对于自签名证书:设置 disableSslCertValidation: true

事件返回结果太多

使用严重程度过滤器:--severity warning(默认)会过滤掉信息级别的事件。使用 --hours 4 缩小时间范围。

VM 信息显示“guest_os: unknown”

VMware Tools 未安装或未在客户机中运行。安装/启动 VMware Tools 以获取客户机操作系统检测、IP 地址和客户机系列信息。

Doctor 通过,但命令因超时而失败

vCenter 可能负载过高。尝试直接针对特定 ESXi 主机而非 vCenter,或者在 config.yaml 中增加连接超时时间。

设置

uv tool install vmware-monitor
mkdir -p ~/.vmware-monitor
cp config.example.yaml ~/.vmware-monitor/config.yaml
cp .env.example ~/.vmware-monitor/.env
chmod 600 ~/.vmware-monitor/.env
# 编辑 ~/.vmware-monitor/config.yaml(目标)和 .env(密码)

所有工具都通过 vmware-policy 自动审计。审计日志:vmware-audit log --last 20

完整设置指南、安全细节和 AI 平台兼容性:参见 references/setup-guide.md

审计与安全

所有操作都通过 vmware-policy(@vmware_tool 装饰器)自动审计:

  • 每个工具调用记录到 ~/.vmware/audit.db(SQLite,框架无关)
  • 策略规则通过 ~/.vmware/rules.yaml 强制执行(拒绝规则、维护窗口、风险级别)
  • 风险分类:每个工具标记为低/中/高/严重
  • 查看最近操作:vmware-audit log --last 20
  • 查看被拒绝的操作:vmware-audit log --status denied

vmware-policy 作为依赖项自动安装——无需手动设置。

许可证

MIT — github.com/zw008/VMware-Monitor

相关技能