VMware Monitor について
VMware Monitorは、vCenterとESXiを読み取り専用で監視するサービスです。運用担当者向けに、インベントリと健全性データを関連付けたレポートを提供し、テストでvSphere呼び出しを審査済みリストに照合します。
主な機能
- 01vCenterとESXiのインベントリ検索
- 02アラーム、イベント、ハードウェア健全性の監視
- 03VM、ホスト、データストアの調査レポート
- 04複数vCenterの問題集約
- 05オフラインHTMLレポート
活用シーン
- 01クラスタやvCenterの要対応問題の調査
- 02VMやホストに関するイベントの追跡
- 03データストア容量と関連オブジェクトの確認
MCP 対応
MCP経由でVMwareの検索ツールを公開し、クライアントがインベントリ、健全性情報、調査レポートを取得できます。コードにはvCenterやESXiの状態を変更する操作は含まれません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
VMware Monitor
作者:Wei Zhou、VMware by Broadcom — [email protected] VMware のエンジニアによるコミュニティ主導のプロジェクトであり、公式の VMware 製品ではありません。 VMware の公式開発者ツールについては、developer.broadcom.comをご覧ください。
英語 | 中文
読み取り専用の VMware vCenter/ESXi 監視 — 33 個のツール。このコードベースには破壊的な操作は存在せず、テストによってそれが検証されています。
なぜ独立したリポジトリなのですか? VMware Monitor はVMware-AIopsから完全に独立しています。このコードベースには、電源オフ、削除、作成、再構成、スナップショットの作成/復元/削除、クローン、移行の各機能は存在しません。プロンプトによる制約ではなく、機能そのものがありません。
これを具体的にどう検証していますか?
tests/eval/regression/test_read_only_enforcement.pyは、すべてのソースファイルをastで解析し、パッケージが呼び出す各 vSphere メソッドが、pyVmomi 自身の型メタデータと照合したレビュー済み許可リストに含まれていることを求めます。vim.Taskを返すメソッド、または vCenter で読み取り以外の権限を必要とするメソッドは、理由を人が記録していない限り失敗します。現在、この許可リストには14個のメソッドがあります。この検査が対象とするのは、記述されたコードです。実行時に組み立てられるメソッド名は検出できず、自動実行もされないため、テストスイートを誰かが実行する範囲でのみ有効です。このリポジトリに依存しない保証が必要な場合は、vCenter 組み込みの読み取り専用ロールを持つ専用アカウントをスキルに設定してください(そのロールを超える権限が必要な読み取り操作)。「読み取り専用」で対象とならないもの。 これは vCenter/ESXi に関する主張であり、コードパスによってそれらの状態が変更されることはありません。vCenter では、スキルが開くのは自身のログインセッションと、解放される短時間のクエリーハンドルだけです。一方、ローカルには書き込みを行います。
~/.vmware-monitor/config.yamlと.env(initによる書き込み。.env内の平文パスワードは、読み込み時にb64:形式に書き換えられます)、監査ログ(MCP 呼び出し用の~/.vmware/audit.db、CLI コマンド用の~/.vmware-monitor/audit.log)、~/vmware-health/内の--htmlスナップショット、さらにdaemon startの実行後に限り、daemon.pid、scan.log、および設定済みの webhook への投稿が対象です。全項目については、セットアップガイドをご覧ください。
コンパニオンスキル
| スキル | 対象範囲 | ツール | インストール |
|---|---|---|---|
| vmware-aiops ⭐ エントリーポイント | VM のライフサイクル、デプロイ、ゲスト操作、クラスター | 49 | uv tool install vmware-aiops |
| vmware-storage | データストア、iSCSI、vSAN | 11 | uv tool install vmware-storage |
| vmware-vks | Tanzu 名前空間、TKC クラスターのライフサイクル | 20 | uv tool install vmware-vks |
| vmware-nsx | NSX ネットワーク:セグメント、ゲートウェイ、NAT、IPAM | 33 | uv tool install vmware-nsx-mgmt |
| vmware-nsx-security | DFW マイクロセグメンテーション、セキュリティグループ、Traceflow | 21 | uv tool install vmware-nsx-security |
| vmware-aria | Aria Ops のメトリクス、アラート、キャパシティプランニング | 28 | uv tool install vmware-aria |
| vmware-avi | AVI(NSX ALB)ロードバランシング、Kubernetes 上の AKO | 28 | uv tool install vmware-avi |
| vmware-harden | コンプライアンスベースライン、構成ドリフトの検出(読み取り専用) | 6 | uv tool install vmware-harden |
| vmware-log-insight | syslog の一元検索、集約、アラート | 7 | uv tool install vmware-log-insight |
| vmware-debug | インシデントタイムラインの相関分析、根本原因 | 2 | uv tool install vmware-debug |
| vmware-pilot | 複数ステップのワークフローオーケストレーション、承認ゲート | 13 | uv tool install vmware-pilot |
2.0 へのアップグレード
2.0 では、23 個の MCP ツールの名前が変更され、すべての名前が動詞で始まるようになりました(例:active_sessions → list_active_sessions、active_tasks → list_active_tasks、certificate_status → get_certificate_status)。旧名から新名への完全な対応表は
RELEASE_NOTES.md にあります。その他に変更はなく、ツール、パラメーター、
安全ゲート、CLI コマンドは同じです。エージェントのプロンプト、スクリプト、または ~/.vmware/rules.yaml でツール名を指定している場合は、更新してください。ただし、旧名で記述された拒否ルールは vmware-policy ≥ 1.18 でも引き続き機能します(vmware-audit policy で、名前の変更によって対象範囲が広がったルールを確認できます)。また、vmware-pilot ≥ 1.13 は保存済みワークフロー内の旧名を変換します。
2.0 より前のバージョンをインストールした環境で同じ rules.yaml を共有している場合は、その環境にも vmware-policy ≥ 1.18.2 を適用してください。このバージョンでは各ルールを旧名と新名の両方に照合するため、1 つのファイルを両方の環境で使えます。
⚡ クイック調査レポート
運用担当者が実際に知りたいことに答える、独自の視点に基づく読み取り専用レポートが5種類あります。それぞれがサーバー側で集約・関連付けを行い、重要度の高い結果(生のインベントリではありません)を返します。すべてのレポートは、--html を指定すると自己完結型のオフライン HTML スナップショットも生成します(外部アセットは使用せず、データがマシンの外に出ることもありません。詳細はネイティブの <details> セクションに折りたたまれ、JavaScript は一切使用しません)。
| 質問 | コマンド | 関連付ける情報 |
|---|---|---|
| すべてのクラスタで「緊急事態は発生していますか?」 | vmware-monitor summary | 各クラスタのホスト+VM の電源状態+リアルタイムの CPU/メモリ+アラーム → 重要度順の上位 N 件の問題+クラスタごとのステータス |
| すべての vCenter で「今すぐ対応が必要なことは何ですか?」 | vmware-monitor attention | 設定済みのすべての vCenter を統合した、全体で重要度順の問題リスト。接続できないターゲットも適切に処理されます |
| 「この VM の周辺では何が起きていますか?」 | vmware-monitor investigate vm <name> | VM の状態+実行先ホスト+クラスタ+関連データストア+スナップショット+アラーム+パフォーマンス+統合されたイベントタイムライン |
| 「このホストの周辺では何が起きていますか?」 | vmware-monitor investigate host <name> | ホストの状態+クラスタ+実行中の VM+マウント済みデータストア+アラーム+パフォーマンス+関連付けられたタイムライン |
| 「このデータストアの周辺では何が起きていますか?」 | vmware-monitor investigate datastore <name> | 容量/空き容量+マウントしているホスト+格納先となっている VM+アラーム+関連付けられたタイムライン |
# Triage the estate, then drill into whatever it flags:
vmware-monitor attention # what needs attention now, all vCenters
vmware-monitor summary --top 5 # is anything on fire, one vCenter
vmware-monitor investigate vm web-01 --hours 72 # everything around a VM, 72h event window
vmware-monitor investigate vm web-01 --html # → offline snapshot in ~/vmware-health/
不明なオブジェクト名を指定すると、オブジェクトの一覧表示方法を明示する案内付きエラーが返されます。MCP 経由では、これらは get_cluster_health_summary、get_cross_vcenter_attention、investigate_vm、investigate_host、investigate_datastore ツールとして利用できます。モデルがこれらを呼び出し、集約結果を運用上の言葉で説明します。すべてのフラグについては、references/cli-reference.md を参照してください。
クイックインストール(推奨)
Claude Code、Cursor、Codex、Gemini CLI、Trae、および30以上の AI エージェントで動作します。
# Via Skills.sh
npx skills add vmware-skills/VMware-Monitor
# Via ClawHub
clawhub install @zw008/vmware-monitor
PyPI からインストール(GitHub へのアクセス不要)
# Install via uv (recommended)
uv tool install vmware-monitor
# Or via pip
pip install vmware-monitor
# China mainland mirror (faster)
pip install vmware-monitor -i https://pypi.tuna.tsinghua.edu.cn/simple
オフライン/エアギャップ環境へのインストール(ソースから)
このプロジェクトでは最新の PEP 517 ビルドシステム(hatchling)を使用しているため、設計上 setup.py はありません。これは想定どおりであり、ファイルが欠落しているわけではありません。ソースをクローンして、ERROR: File "setup.py" or "setup.cfg" not found ... editable mode currently requires a setuptools-based build というエラーが発生した場合、お使いの pip は 21.3 より古く、setuptools 以外のバックエンドでは 編集可能(-e)インストールを実行できません。編集可能モードは開発者向けの利便機能であり、ツールの実行には不要です。次のいずれかを実行してください。
# From the source tree — a normal (non-editable) install builds a wheel:
pip install . # NOT pip install -e .
# ...or upgrade pip first, and editable works too:
pip install --upgrade pip && pip install -e .
完全なエアギャップ環境のホストでは、ネットワークに接続されたマシン上で wheel をビルドしてコピーしてください。インストール先ではネットワークが不要になります。
# On a connected machine, collect this package + its dependencies as wheels:
pip wheel . -w dist # → dist/*.whl (or: uv build, for just this package)
# Copy dist/ to the air-gapped host, then install offline:
pip install --no-index --find-links dist vmware-monitor
機能(読み取り専用)
アーキテクチャ
User (Natural Language)
↓
AI CLI Tool (Claude Code / Gemini / Codex / Aider / Continue / Trae / Kimi)
↓ Reads SKILL.md / AGENTS.md / rules
↓
vmware-monitor CLI (read-only)
↓ pyVmomi (vSphere SOAP API)
↓
vCenter Server ──→ ESXi Clusters ──→ VMs
or
ESXi Standalone ──→ VMs
バージョン互換性
| vSphere/VCF バージョン | サポート | 備考 |
|---|---|---|
| VCF 9.1/vSphere 9.1 | ✅ 完全対応 | 2026-05-12 リリース。pyVmomi <10.0 は SOAP 経由で解決・接続します。 |
| VCF 9.0/vSphere 9.0 | ✅ 完全対応 | pyVmomi 8.0.3 以降は vSphere 9 SOAP API に接続します。 |
| 8.0/8.0U1-U3 | ✅ 完全対応 | pyVmomi 8.0.3 以降 |
| 7.0/7.0U1-U3 | ✅ 完全対応 | すべての読み取り専用 API をサポート |
| 6.7 | ✅ 互換性あり | 下位互換性あり、テスト済み |
| 6.5 | ✅ 互換性あり | 下位互換性あり、テスト済み |
Broadcom 公式リファレンス
- SDK:https://developer.broadcom.com/sdks — VCF Python SDK(VCF 9 以降に推奨。pyVmomi と vSAN SDK を同梱)、vSphere Automation SDK for Python
- REST API:https://developer.broadcom.com/xapis — vSphere Automation API、VCF API
- CLI ツール:https://developer.broadcom.com/tools — PowerCLI 9.1、ESXCLI、OVF Tool
1. インベントリ
| 機能 | vCenter | ESXi | 詳細 |
|---|---|---|---|
| VM の一覧表示 | ✅ | ✅ | 名前、電源状態、CPU、メモリ、ゲスト OS、IP、folder_path(vCenter インベントリフォルダー。例:/Datacenters/Production/Web Tier)。MCP の list_virtual_machines は、フォルダーツリーを大文字と小文字を区別せずに検索する folder_filter に対応しています |
| ホストの一覧表示 | ✅ | ⚠️ 自ホストのみ | CPU コア数、メモリ、ESXi バージョン、VM 数、稼働時間 |
| データストアの一覧表示 | ✅ | ✅ | 容量、空き容量/使用量、タイプ(VMFS/NFS)、使用率 |
| クラスターの一覧表示 | ✅ | ❌ | ホスト数、DRS/HA の状態 |
| ネットワークの一覧表示 | ✅ | ✅ | ネットワーク名、関連付けられた VM 数、アクセス可能性 — CLI inventory networks、MCP list_all_networks |
2. ヘルスと監視
| 機能 | vCenter | ESXi | 詳細 |
|---|---|---|---|
| アクティブなアラーム | ✅ | ✅ | 重大度、アラーム名、エンティティ、タイムスタンプ |
| イベント/ログのクエリ | ✅ | ✅ | 時間範囲、重大度によるフィルター。50 種類以上のイベントタイプ |
| ハードウェアセンサー | ✅ | ✅ | センサーごとの type(温度/電圧/ファンなど)、測定値、単位、ヘルスの status(緑/黄/赤) — CLI health sensors、MCP get_host_sensors |
| ホストサービス | ✅ | ✅ | hostd、vpxa の実行中/停止状態 — CLI health services、MCP get_host_services |
| アカウントアクセス | ✅ | ✅ | サーバーが使用するアカウント、およびそのアカウントがルートフォルダー上で各ツールの権限を持っているかどうか — CLI access-info、MCP get_access_info |
監視対象のイベントタイプ:
| カテゴリ | イベント |
|---|---|
| VM の障害 | VmFailedToPowerOnEvent、VmDiskFailedEvent、VmFailoverFailed |
| ホストの問題 | HostConnectionLostEvent、HostShutdownEvent、HostIpChangedEvent |
| ストレージ | DatastoreCapacityIncreasedEvent、SCSI の高レイテンシー |
| HA/DRS | DasHostFailedEvent、DrsVmMigratedEvent、DrsSoftRuleViolationEvent |
| 認証 | UserLoginSessionEvent、BadUsernameSessionEvent |
3. VM 情報とスナップショット一覧(読み取り専用)
| 機能 | 詳細 |
|---|---|
| VM 情報 | 名前、電源状態、ゲスト OS、CPU、メモリ、IP、VMware Tools、ディスク、NIC、folder_path |
| スナップショット一覧 | 既存のスナップショットを名前と作成時刻とともに一覧表示します(作成/復元/削除はできません)— CLI vm snapshot-list、MCP ツール list_vm_snapshots |
| バックアップウィンドウ | vCenter のタスク履歴から、バックアップが VM のスナップショットを開いたままにしていた時間を確認できます — CLI snapshots backup-window、MCP ツール get_vm_backup_snapshot_history。バックアップジョブの時間の下限値であり、公式な所要時間ではありません |
4. スケジュールスキャンと通知
| 機能 | 詳細 |
|---|---|
| デーモン | APScheduler ベースで、間隔を設定可能(デフォルトは 15 分) |
| 複数ターゲットのスキャン | 設定済みのすべての vCenter/ESXi ターゲットを順番にスキャンします |
| スキャン対象 | 各サイクルで、トリガーされたアラーム、直近の lookback_hours 時間分の vCenter イベント、ESXi ホストログ hostd、vmkernel、vpxa の新しい行を確認します |
| ホストログ | 増分読み込みを行います。各行はデーモンの実行ごとに 1 回だけ報告されます(デーモンを再起動すると、各ログの末尾 500 行を 1 回再読み込みします)。ログがローテーションされた場合、またはサイクル間に 500 行を超える新しい行が追加された場合は、スキャンされなかった行を示す info 行が追加されます。ホストログの読み込みには Global.Diagnostics 権限が必要ですが、vCenter の Read-Only ロールには含まれていません。読み込めないログは理由を示す info 行となり、何も通知せず「問題なし」とすることはありません |
| ログ分析 | ホストログの行のうち、error、fail、critical、panic、lost access、cannot、timeout、refused、corrupt に一致するものを検出します。critical/panic/corrupt を含む行は critical、それ以外は warning です |
| 構造化ログ | ~/.vmware-monitor/scan.log に JSONL 形式で出力します。info 行を含むすべての問題を記録します |
| Webhook | Slack、Discord、または任意の HTTP エンドポイントに対応します。すべての critical な問題と、すべてのアラーム/イベントの warning を受信します。ホストログの warning はスキャンログにのみ記録し、info 行は送信しません |
| サイクル概要 | サイクルごとに 1 行をデーモンのログ出力に記録します。検出事項(Webhook に送信された件数を含む)、読み込み不能なホストログ、スキャンされなかった行があるログ、失敗したパスを示します。いずれかのパスが失敗した場合、またはターゲットに接続できなかった場合は Scan INCOMPLETE と表示し、「問題なし」とは表示しません |
| デーモン管理 | daemon start/stop/status、PID ファイル、正常なシャットダウン |
5. 安全機能
| 機能 | 詳細 |
|---|---|
| コードレベルの分離 | 独立したリポジトリです。コードベースに破壊的な関数は存在せず、すべての vSphere 呼び出しに対する AST 許可リストゲートで確認しています(tests/eval/regression/test_read_only_enforcement.py) |
| 監査証跡 | MCP ツールの呼び出しと vCenter に接続するすべての CLI コマンドを ~/.vmware/audit.db(SQLite、vmware-policy 経由)に記録します。CLI クエリも ~/.vmware-monitor/audit.log(JSONL)に追記します |
| パスワード保護 | .env ファイルの読み込み時に権限を確認します(600 でない場合は警告します) |
| 自己署名 SSL 証明書への対応 | verify_ssl: false は、隔離されたラボ環境で自己署名証明書を使用する ESXi に限って使用してください。本番環境では CA 署名証明書を使用してください |
| プロンプトインジェクション対策 | vSphere のイベントメッセージとホストログを切り詰めてサニタイズし、境界マーカーで囲みます |
| Webhook のデータ範囲 | デフォルトでは無効です。設定した場合、デーモンは指定した URL にのみ、すべての critical な問題(アラーム、イベント、critical/panic/corrupt に一致する ESXi ログ行、接続できなかったターゲット)と、すべてのアラーム/イベントの warning を送信します。ホストログの warning はスキャンログにのみ記録し、info 行は送信しません。各問題にはエンティティ名とメッセージが含まれます。メッセージはサニタイズ済みのアラーム、イベント、または ESXi ログのテキスト、あるいは接続エラーで、ホスト名、IP アドレス、ユーザー名を含む場合があります。スキルの設定や .env に含まれる認証情報は送信されません |
| 本番環境での推奨事項 | AI エージェントはコンテキストを誤って解釈し、意図しない破壊的操作を実行する可能性があります。実際に、AI 駆動のツールが本番データベースや環境全体を削除した事例が報告されています。VMware-Monitor は、自身のコードからこの種のリスクを排除しています。破壊的なコードパスは存在せず、許可リストゲートにより、追加された場合はビルドが失敗します。このコードベースに依存しない防御策として、読み取り専用の vCenter アカウントを併用してください。VMware-AIops は開発/ラボ環境でのみ使用してください |
意図的に含まれていないもの
このリポジトリには、次の操作は存在しません。
- ❌ VM の電源オン/オフ、リセット、一時停止
- ❌ VM の作成、削除、再構成
- ❌ スナップショットの作成、復元、削除
- ❌ VM のクローン作成または移行
- ❌
_double_confirm、_show_state_preview、_validate_vm_params
これらの操作には、完全版の VMware-AIops リポジトリを使用してください。
ローカルモデルや小規模モデルで実行していますか?skills/vmware-monitor/references/agent-guardrails.md をご覧ください。
よくあるワークフロー
日次ヘルスチェック
- アラームを確認します:
vmware-monitor health alarms --target prod-vcenter - 最近のイベントを確認します:
vmware-monitor health events --hours 24 --severity warning - ホストを一覧表示します:
vmware-monitor inventory hosts— 接続状態とメモリ使用量を確認します
特定のオブジェクトを調査する(詳細調査)
1 回の呼び出しで、オブジェクトと周辺のインフラストラクチャおよび最近の履歴を関連付けて確認できます。上記の ⚡ クイック調査レポート をご覧ください。
- トリアージから開始します:
vmware-monitor attention(すべての vCenter)またはvmware-monitor summary(1 つ) - 検出された項目を詳しく調べます:
vmware-monitor investigate vm <name>(またはhost/datastore) --hours 72でイベントの対象期間を広げ、--htmlで共有します(オフラインスナップショット)- 名前がわからない場合 → オブジェクトの一覧表示方法が説明されたエラーが表示されます(
inventory vms/hosts、list_all_datastores)
継続的なモニタリングの設定
~/.vmware-monitor/config.yamlで Webhook を設定します- デーモンを起動します:
vmware-monitor daemon start - デーモンは 15 分ごとにスキャンし、Slack/Discord にアラートを送信します
トラブルシューティング
Alarms が空を返すのに、vCenter にはアラームが表示される
get_alarms ツールは、ルートフォルダー階層のトリガー済みアラームをクエリします。アラームによってはエンティティ固有のため、代わりにイベントを確認してください:vmware-monitor health events --hours 1 --severity info。
「Connection refused」エラー
vmware-monitor doctorを実行して診断しますconfig.yamlで対象のホスト名/IP アドレスとポート(443)を確認します- 自己署名証明書の場合:CA を信頼してください。
verify_ssl: falseの設定は、隔離されたラボホストでのみ使用してください
Events が多すぎる結果を返す
重大度フィルターを使用します:--severity warning(デフォルト)で情報レベルのイベントを除外できます。--hours 4 を使用して時間範囲を絞り込みます。
VM 情報に「guest_os: unknown」と表示される
ゲスト内に VMware Tools がインストールされていないか、実行されていません。ゲスト OS の検出、IP アドレス、ゲストファミリー情報を取得するには、VMware Tools をインストールして起動してください。
Doctor は成功するのに、コマンドがタイムアウトで失敗する
vCenter に高い負荷がかかっている可能性があります。vCenter ではなく、特定の ESXi ホストを直接対象にするか、config.yaml で接続タイムアウトを延長してください。
doctor が「no vSphere role」と報告する、またはすべてのコマンドが「session is not authenticated」で失敗する
アカウントはログインしますが、vSphere ロールが割り当てられていないため、vCenter はセッションを付与しません(AIops#47)。vCenter のルートフォルダーでロール(読み取り専用以上)を割り当ててください:Administration > Access Control > Global Permissions。パスワードを変更しても解決しません。vmware-monitor doctor はこのケースを名前で報告し、attention はその対象を未読としてカウントします(全体の状態は少なくとも WARN)。
対応 AI プラットフォーム
| プラットフォーム | ステータス | 設定ファイル | AI モデル |
|---|---|---|---|
| Claude Code | ✅ ネイティブスキル | skills/vmware-monitor/SKILL.md | Anthropic Claude |
| Gemini CLI | ✅ コンテキストファイル + MCP | skills/vmware-monitor/SKILL.md | Google Gemini |
| OpenAI Codex CLI | ✅ スキル + AGENTS.md | skills/vmware-monitor/SKILL.md | OpenAI GPT |
| Aider | ✅ 規約 | skills/vmware-monitor/SKILL.md | 任意(クラウド + ローカル) |
| Continue CLI | ✅ ルール | skills/vmware-monitor/SKILL.md | 任意(クラウド + ローカル) |
| Trae IDE | ✅ ルール | skills/vmware-monitor/SKILL.md | Claude/DeepSeek/GPT-4o |
| Kimi Code CLI | ✅ スキル | skills/vmware-monitor/SKILL.md | Moonshot Kimi |
| MCP サーバー | ✅ MCP プロトコル | vmware_monitor/mcp_server/ | 任意の MCP クライアント |
| Python CLI | ✅ スタンドアロン | N/A | N/A |
プラットフォームの比較
| 機能 | Claude Code | Gemini CLI | Codex CLI | Aider | Continue | Trae IDE | Kimi CLI |
|---|---|---|---|---|---|---|---|
| クラウド AI | Anthropic | OpenAI | 任意 | 任意 | 複数 | Moonshot | |
| ローカルモデル | — | — | — | Ollama | Ollama | — | — |
| スキルシステム | SKILL.md | コンテキストファイル | SKILL.md | — | ルール | ルール | SKILL.md |
| MCP サポート | ネイティブ | ネイティブ | スキル経由 | サードパーティ | ネイティブ | — | — |
| 無料プラン | — | 60 req/min | — | セルフホスト可能 | セルフホスト可能 | — | — |
MCP サーバーの連携
vmware-monitor MCP サーバーは、MCP 互換のエージェントまたはツールならどれでも利用できます。すぐに使える設定テンプレートは examples/mcp-configs/ にあります。33 個のツールはすべて読み取り専用で、上記の許可リストゲートによって適用されます。
| エージェント / ツール | ローカルモデルのサポート | 設定テンプレート | 連携ガイド |
|---|---|---|---|
| Xiaoguai (小怪) | ✅ セルフホスト可能、任意の LLM | MCP の設定 | ガイド |
| Goose | ✅ Ollama、LM Studio | goose.json | ガイド |
| LocalCowork | ✅ 完全オフライン | localcowork.json | ガイド |
| mcp-agent | ✅ Ollama、vLLM | mcp-agent.yaml | ガイド |
| VS Code Copilot | — | vscode-copilot.json | ガイド |
| Cursor | — | cursor.json | — |
| Continue | ✅ Ollama | continue.yaml | ガイド |
| Claude Code | — | claude-code.json | — |
Xiaoguai (小怪) — 同じメンテナーが開発する、セルフホスト可能で監査を重視したエージェントプラットフォームです(Rust、単一バイナリ + 組み込み SQLite)。読み取り専用の vmware-monitor MCP サーバーをツールボックスの 1 つとして実行します。MCP のクライアントであると同時に MCP サーバーでもあるため、HMAC チェーン監査ログは、このスキルの読み取り専用設計と自然に組み合わさります。すべてのクエリが記録され、このコードには状態を変更するコードパスがありません。詳しくは MCP 連携ガイドをご覧ください。
完全なローカル運用(クラウド API は不要):
# Aider + Ollama + vmware-monitor (via SKILL.md)
aider --conventions skills/vmware-monitor/SKILL.md --model ollama/qwen2.5-coder:32b
# Any MCP agent + local model + vmware-monitor MCP server
# See examples/mcp-configs/ for your agent's config format
インストール
ステップ 0:前提条件
# Python 3.10+ required
python3 --version
# Node.js 18+ required for Gemini CLI and Codex CLI
node --version
ステップ 1:クローンして Python バックエンドをインストール
git clone https://github.com/vmware-skills/VMware-Monitor.git
cd VMware-Monitor
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
ステップ 2:設定
mkdir -p ~/.vmware-monitor
cp config.example.yaml ~/.vmware-monitor/config.yaml
# Edit config.yaml with your vCenter/ESXi targets
.env ファイルでパスワードを設定します(推奨):
cp .env.example ~/.vmware-monitor/.env
chmod 600 ~/.vmware-monitor/.env
# Edit and fill in your passwords
セキュリティに関する注意:パスワードがシェルの履歴に残るのを避けるため、コマンドラインの
exportではなく.envファイルを使用してください。config.yamlに保存されるのはホスト名、ポート、.envファイルへの参照のみで、パスワードやトークンは含まれません。すべてのシークレットは.envにのみ保存されます(chmod 600)。Webhook 通知はデフォルトで無効になっています。有効にした場合、ペイロードはユーザーが設定した URL にのみ送信され、設定から認証情報が含まれることはありません。ただし、vSphere 独自のアラーム、イベント、ログのテキストは含まれるため、ホスト名、IP アドレス、ユーザー名が含まれる場合があります。vCenter 組み込みの読み取り専用ロールを持つ専用サービスアカウントの使用をおすすめします。
パスワード環境変数の命名規則:
VMWARE_{TARGET_NAME_UPPER}_PASSWORD
# Replace hyphens with underscores, UPPERCASE
# Example: target "home-esxi" → VMWARE_HOME_ESXI_PASSWORD
# Example: target "prod-vcenter" → VMWARE_PROD_VCENTER_PASSWORD
ステップ 3:AI ツールを接続する
以下から 1 つ以上選択します:
オプション A:Claude Code
方法 1:Skills.sh または ClawHub(推奨)
どちらのインストーラーも、Claude Code のスキルディレクトリにスキルをインストールします:
npx skills add vmware-skills/VMware-Monitor
# or
clawhub install @zw008/vmware-monitor
方法 2:スキルを手動でインストールする
git clone https://github.com/vmware-skills/VMware-Monitor.git
cd VMware-Monitor
# Copy the skill into Claude Code's personal skills directory
mkdir -p ~/.claude/skills/vmware-monitor
cp -r skills/vmware-monitor/. ~/.claude/skills/vmware-monitor/
ツールにアクセスするには(スキルのコンテキストだけでなく)、MCP サーバーも登録してください:
claude mcp add vmware-monitor -- vmware-monitor mcp
Claude Code を再起動してから、以下を実行します:
> Show me all VMs on esxi-lab.example.com
オプション B:Gemini CLI
# Install Gemini CLI
npm install -g @google/gemini-cli
# Load the skill as project context (Gemini CLI reads GEMINI.md on startup)
cp skills/vmware-monitor/SKILL.md ./GEMINI.md
ツールにアクセスするには(コンテキストだけでなく)、MCP サーバーを ~/.gemini/settings.json に登録してください:
{
"mcpServers": {
"vmware-monitor": {
"command": "vmware-monitor",
"args": ["mcp"],
"env": { "VMWARE_MONITOR_CONFIG": "~/.vmware-monitor/config.yaml" }
}
}
}
その後、Gemini CLI を起動します:
gemini
> Show me all VMs on my ESXi host
オプション C:OpenAI Codex CLI
# Install Codex CLI
npm i -g @openai/codex
# Or on macOS:
# brew install --cask codex
# Copy skill to Codex skills directory
mkdir -p ~/.codex/skills/vmware-monitor
cp skills/vmware-monitor/SKILL.md ~/.codex/skills/vmware-monitor/SKILL.md
# Copy AGENTS.md to project root
cp skills/vmware-monitor/SKILL.md ./AGENTS.md
その後、Codex CLI を起動します:
codex --enable skills
> List all VMs on my ESXi
オプション D:Aider(ローカルモデルに対応)
# Install Aider
pip install aider-chat
# Install Ollama for local models (optional)
# macOS:
brew install ollama
ollama pull qwen2.5-coder:32b
# Run with cloud API
aider --conventions skills/vmware-monitor/SKILL.md
# Or with local model via Ollama
aider --conventions skills/vmware-monitor/SKILL.md \
--model ollama/qwen2.5-coder:32b
オプション E:Continue CLI(ローカルモデルに対応)
# Install Continue CLI
npm i -g @continuedev/cli
# Copy rules file
mkdir -p .continue/rules
cp skills/vmware-monitor/SKILL.md .continue/rules/vmware-monitor.md
ローカルモデル用に ~/.continue/config.yaml を設定します:
models:
- name: local-coder
provider: ollama
model: qwen2.5-coder:32b
その後:
cn
> Check ESXi health and alarms
オプション F:Trae IDE
ルールファイルをプロジェクトの .trae/rules/ ディレクトリにコピーします:
mkdir -p .trae/rules
cp skills/vmware-monitor/SKILL.md .trae/rules/project_rules.md
Trae IDE の Builder Mode は、起動時に .trae/rules/ 内の Markdown ファイルを読み込みます。
注:Trae IDE に Claude Code 拡張機能をインストールして、
.claude/skills/形式をそのまま使用することもできます。
オプション G:Kimi Code CLI
# Copy skill file to Kimi skills directory
mkdir -p ~/.kimi/skills/vmware-monitor
cp skills/vmware-monitor/SKILL.md ~/.kimi/skills/vmware-monitor/SKILL.md
オプション H:MCP サーバー(Glama/Claude Desktop)
MCP サーバーは、Model Context Protocol を介して、VMware の読み取り専用監視機能をツールとして提供します。MCP 対応クライアント(Claude Desktop、Cursor など)で使用できます。
uv tool install vmware-monitor の実行後、1 つのコマンドで MCP サーバーを起動できます(v1.5.15 以降):
# Recommended — single command, no network re-resolve
vmware-monitor mcp
# With a custom config path
VMWARE_MONITOR_CONFIG=/path/to/config.yaml vmware-monitor mcp
Claude Desktop の設定(claude_desktop_config.json):
{
"mcpServers": {
"vmware-monitor": {
"command": "vmware-monitor",
"args": ["mcp"],
"env": {
"VMWARE_MONITOR_CONFIG": "/path/to/config.yaml"
}
}
}
}
代替方法:uvx(インストール不要)またはレガシーエントリーポイント
# Run without installing (requires PyPI access each launch)
uvx --from vmware-monitor vmware-monitor mcp
# Legacy entry point (still works, kept for backward compatibility)
vmware-monitor-mcp
企業の TLS プロキシ経由で接続していますか? uvx は
invalid peer certificate: UnknownIssuerエラーで失敗する場合があります。 上記の推奨形式vmware-monitor mcpを使用するか(ネットワーク接続不要)、UV_NATIVE_TLS=trueを設定してください。
オプション I:スタンドアロン CLI(AI 不要)
# Already installed in Step 1
source .venv/bin/activate
vmware-monitor inventory vms --target home-esxi
vmware-monitor health alarms --target home-esxi
vmware-monitor vm info my-vm --target home-esxi
更新/アップグレード
インストール済みですか?ご利用のチャンネルのインストールコマンドを再実行すると、最新バージョンを取得できます:
| インストールチャンネル | 更新コマンド |
|---|---|
| ClawHub | clawhub install @zw008/vmware-monitor |
| Skills.sh | npx skills add vmware-skills/VMware-Monitor |
| Git clone | cd VMware-Monitor && git pull origin main && uv pip install -e . |
| uv | uv tool install vmware-monitor --force |
現在のバージョンを確認するには:vmware-monitor --version
中国のクラウドモデル
中国のユーザーで、国内のクラウド API を利用したい場合や、海外サービスへのアクセスが制限されている場合に向けた情報です。
DeepSeek
export DEEPSEEK_API_KEY="your-key"
aider --conventions skills/vmware-monitor/SKILL.md \
--model deepseek/deepseek-coder
Qwen(Alibaba Cloud)
export DASHSCOPE_API_KEY="your-key"
aider --conventions skills/vmware-monitor/SKILL.md \
--model qwen/qwen-coder-plus
ローカルモデル(Aider + Ollama)
完全なオフライン運用が可能です。クラウド API もインターネット接続も不要で、プライバシーを完全に保護できます。
brew install ollama
ollama pull qwen2.5-coder:32b
ollama serve
aider --conventions skills/vmware-monitor/SKILL.md \
--model ollama/qwen2.5-coder:32b
CLI リファレンス
# Diagnostics
vmware-monitor doctor # Check environment, config, connectivity
vmware-monitor doctor --skip-auth # Skip vSphere auth check (faster)
vmware-monitor access-info [--tool <mcp-tool>] [--target <name>] # Account in use + privileges per tool
# MCP Config Generator
vmware-monitor mcp-config generate --agent goose # Generate config for Goose
vmware-monitor mcp-config generate --agent claude-code # Generate config for Claude Code
vmware-monitor mcp-config list # List all supported agents
# Inventory
vmware-monitor inventory vms [--target <name>]
vmware-monitor inventory vms --limit 10 --sort-by memory_mb # Top 10 VMs by memory
vmware-monitor inventory vms --power-state poweredOn # Only powered-on VMs
vmware-monitor inventory vms --sort-by folder_path # Group VMs by inventory folder
# All `inventory vms` results include a `folder_path` field (e.g. `/Datacenters/Production/Web Tier`).
# MCP tool `list_virtual_machines` additionally supports `folder_filter="Production"` for case-insensitive folder-tree search.
vmware-monitor inventory hosts [--target <name>]
vmware-monitor inventory datastores [--target <name>]
vmware-monitor inventory clusters [--target <name>]
# Health
vmware-monitor health alarms [--target <name>]
vmware-monitor health events [--hours 24] [--severity warning]
# VM Info (read-only)
vmware-monitor vm info <vm-name>
vmware-monitor vm snapshot-list <vm-name>
# Scanning & Daemon
vmware-monitor scan now [--target <name>]
vmware-monitor daemon start
vmware-monitor daemon stop
vmware-monitor daemon status
設定
すべてのオプションについては、config.example.yaml を参照してください。
| セクション | キー | デフォルト | 説明 |
|---|---|---|---|
| targets | name | — | わかりやすい名前 |
| targets | host | — | vCenter/ESXi のホスト名または IP アドレス |
| targets | type | vcenter | vcenter または esxi |
| targets | port | 443 | 接続ポート |
| targets | verify_ssl | true | ターゲットの TLS 証明書を検証します(自己署名証明書を使用するラボホストの場合のみ false に設定してください) |
| scanner | interval_minutes | 15 | スキャン頻度 |
| scanner | severity_threshold | warning | 最小重大度:critical/warning/info |
| scanner | lookback_hours | 1 | 遡ってスキャンする時間 |
| notify | log_file | ~/.vmware-monitor/scan.log | JSONL ログ出力 |
| notify | webhook_url | — | Webhook エンドポイント(Slack、Discord など) |
プロジェクト構成
VMware-Monitor/
├── skills/ # Skills index (npx skills add)
│ └── vmware-monitor/
│ ├── SKILL.md
│ └── references/ # Detailed docs loaded on-demand
├── vmware_monitor/ # Python backend (read-only only)
│ ├── config.py # YAML + .env config
│ ├── connection.py # Multi-target pyVmomi
│ ├── cli.py # Typer CLI (read-only commands only)
│ ├── ops/
│ │ ├── inventory.py # VMs, hosts, datastores, clusters
│ │ ├── health.py # Alarms, events, sensors
│ │ └── vm_info.py # VM info, snapshot list (read-only)
│ ├── scanner/ # Log scanning daemon
│ ├── notify/ # Notifications (JSONL + webhook)
│ └── mcp_server/ # MCP server (read-only tools only)
├── examples/mcp-configs/ # MCP client config templates
├── tests/ # Test suite
├── smithery.yaml # Smithery marketplace config
├── RELEASE_NOTES.md
├── config.example.yaml
└── pyproject.toml
関連プロジェクト
| スキル | 対象範囲 | ツール | インストール |
|---|---|---|---|
| vmware-monitor | 読み取り専用の監視、アラーム、イベント | 27 | uv tool install vmware-monitor |
| vmware-aiops | VM のライフサイクル、デプロイ、ゲスト操作、クラスター | 49 | uv tool install vmware-aiops |
| vmware-storage | データストア、iSCSI、vSAN | 11 | uv tool install vmware-storage |
| vmware-vks | Tanzu Namespaces、TKC クラスターのライフサイクル | 20 | uv tool install vmware-vks |
トラブルシューティングとコントリビューション
エラーや問題が発生した場合は、エラーメッセージ、ログ、またはスクリーンショットを [email protected] までお送りください。コントリビューションを歓迎します!
リモートアクセス(HTTPS)とツールの制限
デフォルトでは、vmware-monitor mcp は stdio で 1 つのローカルクライアントと通信し、すべてのツールを提供します。次の 2 つのオプションで変更できます
(vmware-policy ≥ 1.21.0)。
HTTPS で提供すると、ほかのマシン上のクライアントが接続できます。すべての呼び出し元にベアラートークンが必要です。
vmware-audit token create alice # prints the token once; give it to alice
vmware-audit token list # names only
vmware-audit token revoke alice # refused from its next request, no restart
vmware-monitor mcp --transport https --host 0.0.0.0 --port 8443 \
--cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \
--public-name mcp.example.com
クライアントを接続します(ここでは Claude Code を使用しています。ストリーム可能な HTTP とカスタムヘッダーに対応する MCP クライアントであれば、どれでも使用できます)。
claude mcp add --transport http vmware-monitor https://mcp.example.com:8443/mcp \
--header "Authorization: Bearer $VMWARE_MCP_TOKEN"
{
"mcpServers": {
"vmware-monitor": {
"type": "http",
"url": "https://mcp.example.com:8443/mcp",
"headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
}
}
}
- トークンがないとサーバーは起動せず、
--public-nameで指定した値以外の Host/Origin は拒否されます。また、バインド前に、認証されていないリクエストが 401 を返すことを確認します。クライアントがこれらの名前を信頼できる証明書を使用してください。 - 同じマシン上の TLS 終端リバースプロキシの背後に配置する場合は、
--transport http --host 127.0.0.1 --public-name mcp.example.comを使用し、Authorizationヘッダーを転送してください。 - 別のマシン上のロードバランサーまたはゲートウェイの背後に配置する場合は、
--transport httpsのままにします(自己署名証明書でもかまいません)。ロードバランサーがHostとして送信するホスト名を--public-nameに指定し、Authorizationを転送するように設定してください。 ヘルスプローブには、トークン不要で{"status": "ok"}のみを返すGET /healthzを使用できます (vmware-policy ≥ 1.23.0)。 - 各リクエストに
traceparentまたはX-Request-IDを指定すると、監査ログの行に保存されます。その後、vmware-audit log --correlation-id IDで 1 つのプラットフォームリクエストに関係する呼び出しを検索できます。 - 監査ログでは、呼び出し元ごとに
token:<name>と記録されます。呼び出しは並行して実行され、ターゲットごとに最大VMWARE_MCP_POOL_SIZE個(デフォルトは 2)のセッションを使用します。各セッションはターゲットへのログインであり、呼び出しはセッションが空くまで最大 300 秒待機します。 - エンドポイントにアクセスできる人は誰でも、このサーバーのアカウントを使って操作できます。 トークンは呼び出し元を識別しますが、プラットフォーム上の権限を付与するものではありません。権限レベルごとにエンドポイントを 1 つ実行してください。
- 1 つのエンドポイントで複数のユーザーやロールを使う場合:
vmware-audit roles enableを 1 回実行し、各トークンにロールを割り当てます(vmware-audit token create NAME --role reader、またはツールとターゲットを指定したroles.yaml内のロールを使用します。vmware-policy ≥ 1.24.0)。ロールによって、このエンドポイントでトークンが呼び出せるものを制限できますが、アカウントが持つ権限を超える権限は付与できません。vmware-policy の README の「ネットワーク経由の呼び出し元のロール」を参照してください。
ツールの制限: このサーバーのすべてのツールは読み取り専用のため、--expose read を指定してもここでは何も変わりません。このオプションは書き込み可能なスキルのためにあります。最小権限は、サーバーが使用するアカウントによって決まります。
詳細については、skills/vmware-monitor/references/setup-guide.md(「MCP を HTTPS で提供する」、「提供するツールの制限」)を参照してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。