Community寫作與編輯github.com

zw008/VMware-Monitor

VMware vCenter/ESXi 唯讀監控 — 程式碼層級強制安全,零破壞性操作

VMware-Monitor 是什麼?

這是一個專為 AI Agent(如 Claude Code、Cursor、Codex)設計的 VMware 唯讀監控技能。它提供 11 個 MCP 工具和完整的 CLI 命令列介面,用於安全查詢 vCenter/ESXi 環境,包含庫存清單、健康狀態、VM 詳細資訊、硬體感測器和服務狀態。技能核心特色是「程式碼層級強制唯讀」— 程式碼中完全不存在任何建立、修改、刪除或快照操作,確保零風險。輸出格式特別為小型本地模型(如 Ollama、Qwen)優化,每個查詢僅需約 2K tokens,同時也支援雲端模型(如 Claude、GPT-4o)的 MCP 結構化 JSON 輸入輸出。它整合了 Webhook 警報(Slack/Discord)和排程掃描,並與 vmware-aiops、vmware-storage 等配套技能無縫協作,實現診斷後的操作執行。

相容平台✓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 Monitor(唯讀)

免責聲明:這是一個社群維護的開源專案,與 VMware, Inc. 或 Broadcom Inc. 無任何關聯、背書或贊助關係。「VMware」與「vSphere」為 Broadcom 的商標。原始碼以 MIT 授權公開於 github.com/zw008/VMware-Monitor 供稽核。

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、記憶體、磁碟、NIC、快照、客體 OS、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 Agent(尤其是較小的本地模型)可以直接讀取這些提示,決定下一步要呼叫哪個技能和工具,無需自行推理技能路由。

使用配套技能處理:

  • 開關電源、部署、複製、遷移 --> 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 tokens
雲端模型(Claude、GPT-4o)任一MCP 提供結構化 JSON 輸入/輸出
自動化管線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_infoVM 詳細資訊(CPU、記憶體、磁碟、NIC、快照)
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

故障排除

Alarms 回傳空值,但 vCenter 顯示有警示

get_alarms 工具查詢的是根資料夾層級的觸發警示。部分警示是實體特定的 — 請改為檢查事件:get_events --hours 1 --severity info。

「連線被拒」錯誤

  1. 執行 vmware-monitor doctor 進行診斷
  2. 確認 config.yaml 中的目標主機名稱/IP 及連接埠 (443)
  3. 若使用自簽憑證:設定 disableSslCertValidation: true

Events 回傳過多結果

使用嚴重性過濾:--severity warning(預設值)會過濾掉 info 層級的事件。使用 --hours 4 縮小時間範圍。

VM info 顯示「guest_os: unknown」

VMware Tools 未安裝或未在客體中執行。請安裝/啟動 VMware Tools 以取得客體 OS 偵測、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

相關技能