vmware-aria 1.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vmware_aria-1.3.0/.gitignore +19 -0
- vmware_aria-1.3.0/Dockerfile +13 -0
- vmware_aria-1.3.0/PKG-INFO +165 -0
- vmware_aria-1.3.0/README-CN.md +137 -0
- vmware_aria-1.3.0/README.md +145 -0
- vmware_aria-1.3.0/RELEASE_NOTES.md +55 -0
- vmware_aria-1.3.0/config.example.yaml +23 -0
- vmware_aria-1.3.0/docker-compose.yml +8 -0
- vmware_aria-1.3.0/examples/mcp-configs/claude-code.json +10 -0
- vmware_aria-1.3.0/examples/mcp-configs/cursor.json +11 -0
- vmware_aria-1.3.0/examples/mcp-configs/goose.json +11 -0
- vmware_aria-1.3.0/mcp_server/__init__.py +0 -0
- vmware_aria-1.3.0/mcp_server/__main__.py +5 -0
- vmware_aria-1.3.0/mcp_server/server.py +441 -0
- vmware_aria-1.3.0/pyproject.toml +38 -0
- vmware_aria-1.3.0/server.json +21 -0
- vmware_aria-1.3.0/skills/vmware-aria/SKILL.md +224 -0
- vmware_aria-1.3.0/skills/vmware-aria/references/capabilities.md +94 -0
- vmware_aria-1.3.0/skills/vmware-aria/references/cli-reference.md +299 -0
- vmware_aria-1.3.0/skills/vmware-aria/references/setup-guide.md +237 -0
- vmware_aria-1.3.0/tests/__init__.py +0 -0
- vmware_aria-1.3.0/tests/test_config.py +200 -0
- vmware_aria-1.3.0/vmware_aria/__init__.py +3 -0
- vmware_aria-1.3.0/vmware_aria/cli.py +479 -0
- vmware_aria-1.3.0/vmware_aria/config.py +123 -0
- vmware_aria-1.3.0/vmware_aria/connection.py +195 -0
- vmware_aria-1.3.0/vmware_aria/doctor.py +142 -0
- vmware_aria-1.3.0/vmware_aria/notify/__init__.py +0 -0
- vmware_aria-1.3.0/vmware_aria/notify/audit.py +91 -0
- vmware_aria-1.3.0/vmware_aria/ops/__init__.py +0 -0
- vmware_aria-1.3.0/vmware_aria/ops/alerts.py +294 -0
- vmware_aria-1.3.0/vmware_aria/ops/anomaly.py +115 -0
- vmware_aria-1.3.0/vmware_aria/ops/capacity.py +184 -0
- vmware_aria-1.3.0/vmware_aria/ops/health.py +108 -0
- vmware_aria-1.3.0/vmware_aria/ops/resources.py +283 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vmware-aria
|
|
3
|
+
Version: 1.3.0
|
|
4
|
+
Summary: VMware Aria Operations (vRealize Operations) monitoring, alerting, and capacity planning
|
|
5
|
+
Author: zw008
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Keywords: ai-ops,aria,capacity,mcp,monitoring,vmware,vrealize,vrops
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Topic :: System :: Monitoring
|
|
12
|
+
Requires-Python: >=3.10
|
|
13
|
+
Requires-Dist: httpx<1.0,>=0.27
|
|
14
|
+
Requires-Dist: mcp[cli]<2.0,>=1.0
|
|
15
|
+
Requires-Dist: python-dotenv<2.0,>=1.0
|
|
16
|
+
Requires-Dist: pyyaml<7.0,>=6.0
|
|
17
|
+
Requires-Dist: rich<15.0,>=13.0
|
|
18
|
+
Requires-Dist: typer<1.0,>=0.12
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# VMware Aria Operations MCP Skill
|
|
22
|
+
|
|
23
|
+
AI-assisted monitoring and capacity planning for VMware Aria Operations (vRealize Operations) via the Model Context Protocol (MCP).
|
|
24
|
+
|
|
25
|
+
[](https://www.python.org/downloads/)
|
|
26
|
+
[](https://opensource.org/licenses/MIT)
|
|
27
|
+
|
|
28
|
+
## Overview
|
|
29
|
+
|
|
30
|
+
`vmware-aria` exposes 18 MCP tools for interacting with Aria Operations through natural language AI agents (Claude Code, Cursor, Goose, etc.):
|
|
31
|
+
|
|
32
|
+
| Category | Tools | Type |
|
|
33
|
+
|----------|-------|------|
|
|
34
|
+
| **Resources** | list, get, metrics, health badge, top consumers | Read-only (5) |
|
|
35
|
+
| **Alerts** | list, get, acknowledge, cancel, definitions | Read + 2 Write (5) |
|
|
36
|
+
| **Capacity** | overview, remaining, time-remaining, rightsizing | Read-only (4) |
|
|
37
|
+
| **Anomaly** | list anomalies, risk badge | Read-only (2) |
|
|
38
|
+
| **Health** | platform health, collector groups | Read-only (2) |
|
|
39
|
+
|
|
40
|
+
**Total**: 18 tools — 16 read-only, 2 write (acknowledge/cancel alerts)
|
|
41
|
+
|
|
42
|
+
## Quick Start
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Install
|
|
46
|
+
uv tool install vmware-aria
|
|
47
|
+
|
|
48
|
+
# Configure
|
|
49
|
+
mkdir -p ~/.vmware-aria
|
|
50
|
+
cat > ~/.vmware-aria/config.yaml << 'EOF'
|
|
51
|
+
targets:
|
|
52
|
+
prod:
|
|
53
|
+
host: aria-ops.example.com
|
|
54
|
+
username: admin
|
|
55
|
+
port: 443
|
|
56
|
+
verify_ssl: true
|
|
57
|
+
auth_source: LOCAL
|
|
58
|
+
default_target: prod
|
|
59
|
+
EOF
|
|
60
|
+
|
|
61
|
+
# Set password (never in config.yaml)
|
|
62
|
+
echo "VMWARE_ARIA_PROD_PASSWORD=your_password" > ~/.vmware-aria/.env
|
|
63
|
+
chmod 600 ~/.vmware-aria/.env
|
|
64
|
+
|
|
65
|
+
# Verify setup
|
|
66
|
+
vmware-aria doctor
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## CLI Examples
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# List top CPU consumers
|
|
73
|
+
vmware-aria resource top --metric cpu|usage_average --top 10
|
|
74
|
+
|
|
75
|
+
# Check active CRITICAL alerts
|
|
76
|
+
vmware-aria alert list --criticality CRITICAL
|
|
77
|
+
|
|
78
|
+
# Acknowledge an alert
|
|
79
|
+
vmware-aria alert acknowledge <alert-id>
|
|
80
|
+
|
|
81
|
+
# Fetch 4-hour CPU + memory metrics for a VM
|
|
82
|
+
vmware-aria resource metrics <vm-id> --metrics cpu|usage_average,mem|usage_average --hours 4
|
|
83
|
+
|
|
84
|
+
# Check cluster capacity
|
|
85
|
+
vmware-aria capacity remaining <cluster-id>
|
|
86
|
+
vmware-aria capacity time-remaining <cluster-id>
|
|
87
|
+
|
|
88
|
+
# Find rightsizing opportunities
|
|
89
|
+
vmware-aria capacity rightsizing
|
|
90
|
+
|
|
91
|
+
# Check Aria platform health
|
|
92
|
+
vmware-aria health status
|
|
93
|
+
vmware-aria health collectors
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## MCP Setup (Claude Code)
|
|
97
|
+
|
|
98
|
+
Add to `~/.claude.json`:
|
|
99
|
+
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"mcpServers": {
|
|
103
|
+
"vmware-aria": {
|
|
104
|
+
"command": "vmware-aria-mcp",
|
|
105
|
+
"env": {
|
|
106
|
+
"VMWARE_ARIA_CONFIG": "~/.vmware-aria/config.yaml"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Then use natural language:
|
|
114
|
+
- *"Show me the top 10 CPU consumers right now"*
|
|
115
|
+
- *"List all CRITICAL alerts and acknowledge them"*
|
|
116
|
+
- *"How long until the prod cluster runs out of memory?"*
|
|
117
|
+
- *"Which VMs are over-provisioned? Show rightsizing recommendations"*
|
|
118
|
+
- *"Are there any anomalies on vm-web-01?"*
|
|
119
|
+
|
|
120
|
+
## Authentication
|
|
121
|
+
|
|
122
|
+
Aria Operations uses **OpsToken** authentication:
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
POST /suite-api/api/auth/token/acquire
|
|
126
|
+
{"username": "admin", "password": "...", "authSource": "LOCAL"}
|
|
127
|
+
→ {"token": "abc123", "validity": 1800000}
|
|
128
|
+
|
|
129
|
+
Subsequent requests: Authorization: OpsToken abc123
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Tokens are valid for 30 minutes and automatically refreshed 60 seconds before expiry.
|
|
133
|
+
|
|
134
|
+
## Architecture
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
User (natural language)
|
|
138
|
+
↓
|
|
139
|
+
AI Agent (Claude Code / Goose / Cursor)
|
|
140
|
+
↓ [reads SKILL.md]
|
|
141
|
+
vmware-aria MCP server (stdio transport)
|
|
142
|
+
↓ [HTTPS + OpsToken]
|
|
143
|
+
Aria Operations Suite API
|
|
144
|
+
↓
|
|
145
|
+
VMs / Hosts / Clusters / Alerts / Capacity
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Companion Skills
|
|
149
|
+
|
|
150
|
+
| Skill | Purpose |
|
|
151
|
+
|-------|---------|
|
|
152
|
+
| [vmware-aiops](https://github.com/zw008/VMware-AIops) | VM lifecycle: create, clone, snapshot, power |
|
|
153
|
+
| [vmware-nsx](https://github.com/zw008/VMware-NSX) | NSX networking: segments, gateways, NAT, routing |
|
|
154
|
+
| [vmware-monitor](https://github.com/zw008/VMware-Monitor) | Read-only vSphere inventory and events |
|
|
155
|
+
|
|
156
|
+
## Security
|
|
157
|
+
|
|
158
|
+
- Passwords loaded from env vars or `.env` file, never from `config.yaml`
|
|
159
|
+
- Write operations (acknowledge/cancel alert) audit-logged to `~/.vmware-aria/audit.log`
|
|
160
|
+
- API responses sanitized (control chars stripped, 500-char limit) to prevent prompt injection
|
|
161
|
+
- Supports self-signed certificates (`verify_ssl: false`) for lab environments
|
|
162
|
+
|
|
163
|
+
## License
|
|
164
|
+
|
|
165
|
+
MIT — see [LICENSE](LICENSE)
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# VMware Aria Operations MCP Skill
|
|
2
|
+
|
|
3
|
+
通过 Model Context Protocol (MCP) 为 VMware Aria Operations(原 vRealize Operations)提供 AI 辅助的监控与容量规划能力。
|
|
4
|
+
|
|
5
|
+
## 概述
|
|
6
|
+
|
|
7
|
+
`vmware-aria` 提供 18 个 MCP 工具,支持通过自然语言 AI Agent(Claude Code、Cursor、Goose 等)与 Aria Operations 交互:
|
|
8
|
+
|
|
9
|
+
| 类别 | 工具 | 类型 |
|
|
10
|
+
|------|------|------|
|
|
11
|
+
| **资源** | 列表、详情、指标、健康评分、高消耗排名 | 只读 (5) |
|
|
12
|
+
| **告警** | 列表、详情、确认、取消、告警定义 | 读+2写 (5) |
|
|
13
|
+
| **容量** | 概览、剩余容量、时间预测、虚拟机调整 | 只读 (4) |
|
|
14
|
+
| **异常** | 异常列表、风险评分 | 只读 (2) |
|
|
15
|
+
| **健康** | 平台健康、采集器状态 | 只读 (2) |
|
|
16
|
+
|
|
17
|
+
**共 18 个工具** — 16 只读、2 写操作(确认/取消告警)
|
|
18
|
+
|
|
19
|
+
## 快速开始
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# 安装
|
|
23
|
+
uv tool install vmware-aria
|
|
24
|
+
|
|
25
|
+
# 配置
|
|
26
|
+
mkdir -p ~/.vmware-aria
|
|
27
|
+
cat > ~/.vmware-aria/config.yaml << 'EOF'
|
|
28
|
+
targets:
|
|
29
|
+
prod:
|
|
30
|
+
host: aria-ops.example.com
|
|
31
|
+
username: admin
|
|
32
|
+
port: 443
|
|
33
|
+
verify_ssl: true
|
|
34
|
+
auth_source: LOCAL
|
|
35
|
+
default_target: prod
|
|
36
|
+
EOF
|
|
37
|
+
|
|
38
|
+
# 设置密码(绝不存入 config.yaml)
|
|
39
|
+
echo "VMWARE_ARIA_PROD_PASSWORD=your_password" > ~/.vmware-aria/.env
|
|
40
|
+
chmod 600 ~/.vmware-aria/.env
|
|
41
|
+
|
|
42
|
+
# 验证配置
|
|
43
|
+
vmware-aria doctor
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 常用 CLI 示例
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# 查看 CPU 消耗排名前 10 的虚拟机
|
|
50
|
+
vmware-aria resource top --metric cpu|usage_average --top 10
|
|
51
|
+
|
|
52
|
+
# 查看所有严重告警
|
|
53
|
+
vmware-aria alert list --criticality CRITICAL
|
|
54
|
+
|
|
55
|
+
# 确认告警
|
|
56
|
+
vmware-aria alert acknowledge <alert-id>
|
|
57
|
+
|
|
58
|
+
# 查询虚拟机 CPU 和内存指标(最近 4 小时)
|
|
59
|
+
vmware-aria resource metrics <vm-id> --metrics cpu|usage_average,mem|usage_average --hours 4
|
|
60
|
+
|
|
61
|
+
# 集群容量规划
|
|
62
|
+
vmware-aria capacity remaining <cluster-id>
|
|
63
|
+
vmware-aria capacity time-remaining <cluster-id>
|
|
64
|
+
|
|
65
|
+
# 查找虚拟机资源调整建议
|
|
66
|
+
vmware-aria capacity rightsizing
|
|
67
|
+
|
|
68
|
+
# Aria 平台自身健康检查
|
|
69
|
+
vmware-aria health status
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## MCP 配置(Claude Code)
|
|
73
|
+
|
|
74
|
+
在 `~/.claude.json` 中添加:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"mcpServers": {
|
|
79
|
+
"vmware-aria": {
|
|
80
|
+
"command": "vmware-aria-mcp",
|
|
81
|
+
"env": {
|
|
82
|
+
"VMWARE_ARIA_CONFIG": "~/.vmware-aria/config.yaml"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
然后即可使用自然语言:
|
|
90
|
+
- *"显示当前 CPU 占用最高的 10 台虚拟机"*
|
|
91
|
+
- *"列出所有严重告警并逐一确认"*
|
|
92
|
+
- *"生产集群的内存还够用多少天?"*
|
|
93
|
+
- *"哪些虚拟机资源配置过多?给出调整建议"*
|
|
94
|
+
- *"vm-web-01 上有没有异常检测结果?"*
|
|
95
|
+
|
|
96
|
+
## 认证机制
|
|
97
|
+
|
|
98
|
+
Aria Operations 使用 **OpsToken** 认证:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
POST /suite-api/api/auth/token/acquire
|
|
102
|
+
Body: {"username": "admin", "password": "...", "authSource": "LOCAL"}
|
|
103
|
+
响应: {"token": "abc123", "validity": 1800000}
|
|
104
|
+
|
|
105
|
+
后续请求 Header: Authorization: OpsToken abc123
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Token 有效期 30 分钟,到期前 60 秒自动刷新。
|
|
109
|
+
|
|
110
|
+
## 密码命名规则
|
|
111
|
+
|
|
112
|
+
| 目标名 | 环境变量 |
|
|
113
|
+
|--------|---------|
|
|
114
|
+
| `prod` | `VMWARE_ARIA_PROD_PASSWORD` |
|
|
115
|
+
| `aria-lab` | `VMWARE_ARIA_ARIA_LAB_PASSWORD` |
|
|
116
|
+
| `staging-01` | `VMWARE_ARIA_STAGING_01_PASSWORD` |
|
|
117
|
+
|
|
118
|
+
规则:`VMWARE_ARIA_<TARGET大写>_PASSWORD`,连字符转为下划线。
|
|
119
|
+
|
|
120
|
+
## 配套 Skill
|
|
121
|
+
|
|
122
|
+
| Skill | 用途 |
|
|
123
|
+
|-------|------|
|
|
124
|
+
| [vmware-aiops](https://github.com/zw008/VMware-AIops) | 虚拟机生命周期:创建、克隆、快照、开关机 |
|
|
125
|
+
| [vmware-nsx](https://github.com/zw008/VMware-NSX) | NSX 网络:Segment、网关、NAT、路由 |
|
|
126
|
+
| [vmware-monitor](https://github.com/zw008/VMware-Monitor) | vSphere 只读库存和事件查询 |
|
|
127
|
+
|
|
128
|
+
## 安全性
|
|
129
|
+
|
|
130
|
+
- 密码仅从环境变量或 `.env` 文件加载,不存入 `config.yaml`
|
|
131
|
+
- 写操作(确认/取消告警)记录审计日志至 `~/.vmware-aria/audit.log`
|
|
132
|
+
- API 响应经过净化处理(去除控制字符,截断至 500 字符),防止提示注入攻击
|
|
133
|
+
- 支持自签名证书(`verify_ssl: false`),适用于实验环境
|
|
134
|
+
|
|
135
|
+
## 许可证
|
|
136
|
+
|
|
137
|
+
MIT
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# VMware Aria Operations MCP Skill
|
|
2
|
+
|
|
3
|
+
AI-assisted monitoring and capacity planning for VMware Aria Operations (vRealize Operations) via the Model Context Protocol (MCP).
|
|
4
|
+
|
|
5
|
+
[](https://www.python.org/downloads/)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
`vmware-aria` exposes 18 MCP tools for interacting with Aria Operations through natural language AI agents (Claude Code, Cursor, Goose, etc.):
|
|
11
|
+
|
|
12
|
+
| Category | Tools | Type |
|
|
13
|
+
|----------|-------|------|
|
|
14
|
+
| **Resources** | list, get, metrics, health badge, top consumers | Read-only (5) |
|
|
15
|
+
| **Alerts** | list, get, acknowledge, cancel, definitions | Read + 2 Write (5) |
|
|
16
|
+
| **Capacity** | overview, remaining, time-remaining, rightsizing | Read-only (4) |
|
|
17
|
+
| **Anomaly** | list anomalies, risk badge | Read-only (2) |
|
|
18
|
+
| **Health** | platform health, collector groups | Read-only (2) |
|
|
19
|
+
|
|
20
|
+
**Total**: 18 tools — 16 read-only, 2 write (acknowledge/cancel alerts)
|
|
21
|
+
|
|
22
|
+
## Quick Start
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Install
|
|
26
|
+
uv tool install vmware-aria
|
|
27
|
+
|
|
28
|
+
# Configure
|
|
29
|
+
mkdir -p ~/.vmware-aria
|
|
30
|
+
cat > ~/.vmware-aria/config.yaml << 'EOF'
|
|
31
|
+
targets:
|
|
32
|
+
prod:
|
|
33
|
+
host: aria-ops.example.com
|
|
34
|
+
username: admin
|
|
35
|
+
port: 443
|
|
36
|
+
verify_ssl: true
|
|
37
|
+
auth_source: LOCAL
|
|
38
|
+
default_target: prod
|
|
39
|
+
EOF
|
|
40
|
+
|
|
41
|
+
# Set password (never in config.yaml)
|
|
42
|
+
echo "VMWARE_ARIA_PROD_PASSWORD=your_password" > ~/.vmware-aria/.env
|
|
43
|
+
chmod 600 ~/.vmware-aria/.env
|
|
44
|
+
|
|
45
|
+
# Verify setup
|
|
46
|
+
vmware-aria doctor
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## CLI Examples
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# List top CPU consumers
|
|
53
|
+
vmware-aria resource top --metric cpu|usage_average --top 10
|
|
54
|
+
|
|
55
|
+
# Check active CRITICAL alerts
|
|
56
|
+
vmware-aria alert list --criticality CRITICAL
|
|
57
|
+
|
|
58
|
+
# Acknowledge an alert
|
|
59
|
+
vmware-aria alert acknowledge <alert-id>
|
|
60
|
+
|
|
61
|
+
# Fetch 4-hour CPU + memory metrics for a VM
|
|
62
|
+
vmware-aria resource metrics <vm-id> --metrics cpu|usage_average,mem|usage_average --hours 4
|
|
63
|
+
|
|
64
|
+
# Check cluster capacity
|
|
65
|
+
vmware-aria capacity remaining <cluster-id>
|
|
66
|
+
vmware-aria capacity time-remaining <cluster-id>
|
|
67
|
+
|
|
68
|
+
# Find rightsizing opportunities
|
|
69
|
+
vmware-aria capacity rightsizing
|
|
70
|
+
|
|
71
|
+
# Check Aria platform health
|
|
72
|
+
vmware-aria health status
|
|
73
|
+
vmware-aria health collectors
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## MCP Setup (Claude Code)
|
|
77
|
+
|
|
78
|
+
Add to `~/.claude.json`:
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"mcpServers": {
|
|
83
|
+
"vmware-aria": {
|
|
84
|
+
"command": "vmware-aria-mcp",
|
|
85
|
+
"env": {
|
|
86
|
+
"VMWARE_ARIA_CONFIG": "~/.vmware-aria/config.yaml"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Then use natural language:
|
|
94
|
+
- *"Show me the top 10 CPU consumers right now"*
|
|
95
|
+
- *"List all CRITICAL alerts and acknowledge them"*
|
|
96
|
+
- *"How long until the prod cluster runs out of memory?"*
|
|
97
|
+
- *"Which VMs are over-provisioned? Show rightsizing recommendations"*
|
|
98
|
+
- *"Are there any anomalies on vm-web-01?"*
|
|
99
|
+
|
|
100
|
+
## Authentication
|
|
101
|
+
|
|
102
|
+
Aria Operations uses **OpsToken** authentication:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
POST /suite-api/api/auth/token/acquire
|
|
106
|
+
{"username": "admin", "password": "...", "authSource": "LOCAL"}
|
|
107
|
+
→ {"token": "abc123", "validity": 1800000}
|
|
108
|
+
|
|
109
|
+
Subsequent requests: Authorization: OpsToken abc123
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Tokens are valid for 30 minutes and automatically refreshed 60 seconds before expiry.
|
|
113
|
+
|
|
114
|
+
## Architecture
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
User (natural language)
|
|
118
|
+
↓
|
|
119
|
+
AI Agent (Claude Code / Goose / Cursor)
|
|
120
|
+
↓ [reads SKILL.md]
|
|
121
|
+
vmware-aria MCP server (stdio transport)
|
|
122
|
+
↓ [HTTPS + OpsToken]
|
|
123
|
+
Aria Operations Suite API
|
|
124
|
+
↓
|
|
125
|
+
VMs / Hosts / Clusters / Alerts / Capacity
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Companion Skills
|
|
129
|
+
|
|
130
|
+
| Skill | Purpose |
|
|
131
|
+
|-------|---------|
|
|
132
|
+
| [vmware-aiops](https://github.com/zw008/VMware-AIops) | VM lifecycle: create, clone, snapshot, power |
|
|
133
|
+
| [vmware-nsx](https://github.com/zw008/VMware-NSX) | NSX networking: segments, gateways, NAT, routing |
|
|
134
|
+
| [vmware-monitor](https://github.com/zw008/VMware-Monitor) | Read-only vSphere inventory and events |
|
|
135
|
+
|
|
136
|
+
## Security
|
|
137
|
+
|
|
138
|
+
- Passwords loaded from env vars or `.env` file, never from `config.yaml`
|
|
139
|
+
- Write operations (acknowledge/cancel alert) audit-logged to `~/.vmware-aria/audit.log`
|
|
140
|
+
- API responses sanitized (control chars stripped, 500-char limit) to prevent prompt injection
|
|
141
|
+
- Supports self-signed certificates (`verify_ssl: false`) for lab environments
|
|
142
|
+
|
|
143
|
+
## License
|
|
144
|
+
|
|
145
|
+
MIT — see [LICENSE](LICENSE)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Release Notes
|
|
2
|
+
|
|
3
|
+
## v1.3.0 (2026-03-27)
|
|
4
|
+
|
|
5
|
+
Initial release of `vmware-aria` — VMware Aria Operations AI monitoring skill.
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
**Resource Monitoring (5 tools)**
|
|
10
|
+
- `list_resources` — List VMs, hosts, clusters, datastores by resource kind with health badge
|
|
11
|
+
- `get_resource` — Full resource details including health, risk, and efficiency badge scores
|
|
12
|
+
- `get_resource_metrics` — Time-series metric stats with configurable window and rollup type
|
|
13
|
+
- `get_resource_health` — Health badge score (0–100) with color and description
|
|
14
|
+
- `get_top_consumers` — Rank VMs or hosts by CPU, memory, disk, or network usage
|
|
15
|
+
|
|
16
|
+
**Alert Management (5 tools)**
|
|
17
|
+
- `list_alerts` — Active or all alerts with criticality and resource scope filtering
|
|
18
|
+
- `get_alert` — Full alert details: symptom list, recommendations, timeline
|
|
19
|
+
- `acknowledge_alert` — Mark alert as acknowledged (write, audit-logged)
|
|
20
|
+
- `cancel_alert` — Dismiss an active alert (write, audit-logged)
|
|
21
|
+
- `list_alert_definitions` — Browse alert definition templates
|
|
22
|
+
|
|
23
|
+
**Capacity Planning (4 tools)**
|
|
24
|
+
- `get_capacity_overview` — Cluster capacity recommendations
|
|
25
|
+
- `get_remaining_capacity` — Remaining CPU, memory, disk headroom
|
|
26
|
+
- `get_time_remaining` — Days until capacity dimensions are exhausted
|
|
27
|
+
- `list_rightsizing_recommendations` — Over/under-provisioned VM recommendations
|
|
28
|
+
|
|
29
|
+
**Anomaly Detection (2 tools)**
|
|
30
|
+
- `list_anomalies` — ML-detected metric anomalies, per-resource or global
|
|
31
|
+
- `get_resource_riskbadge` — Risk score with contributing causes
|
|
32
|
+
|
|
33
|
+
**Platform Health (2 tools)**
|
|
34
|
+
- `get_aria_health` — All Aria internal service states
|
|
35
|
+
- `list_collector_groups` — Remote collector agent status
|
|
36
|
+
|
|
37
|
+
### Authentication
|
|
38
|
+
- OpsToken authentication: `POST /suite-api/api/auth/token/acquire`
|
|
39
|
+
- Auto-refresh: token refreshed 60s before 30-minute expiry
|
|
40
|
+
- Supports LOCAL, LDAP, and AD authentication sources
|
|
41
|
+
|
|
42
|
+
### Security
|
|
43
|
+
- Passwords loaded from env vars / `.env` file only
|
|
44
|
+
- All API text sanitized (control chars stripped, 500-char max)
|
|
45
|
+
- Write operations (acknowledge/cancel) audit-logged to `~/.vmware-aria/audit.log`
|
|
46
|
+
|
|
47
|
+
### CLI
|
|
48
|
+
- Full CLI with 5 command groups: `resource`, `alert`, `capacity`, `anomaly`, `health`
|
|
49
|
+
- `vmware-aria doctor` — pre-flight diagnostics for config, network, auth, MCP import
|
|
50
|
+
- Rich table output for list commands, JSON output for detail commands
|
|
51
|
+
|
|
52
|
+
### Compatibility
|
|
53
|
+
- Python 3.10+
|
|
54
|
+
- Aria Operations 8.x (vRealize Operations 8.x)
|
|
55
|
+
- Suite API v2 (`/suite-api/api/`)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# VMware Aria Operations Configuration
|
|
2
|
+
# Copy to ~/.vmware-aria/config.yaml and edit
|
|
3
|
+
|
|
4
|
+
targets:
|
|
5
|
+
prod:
|
|
6
|
+
host: aria-ops.example.com
|
|
7
|
+
username: admin
|
|
8
|
+
port: 443
|
|
9
|
+
verify_ssl: true
|
|
10
|
+
auth_source: LOCAL # LOCAL | LDAP | AD
|
|
11
|
+
lab:
|
|
12
|
+
host: 10.0.0.100
|
|
13
|
+
username: admin
|
|
14
|
+
port: 443
|
|
15
|
+
verify_ssl: false
|
|
16
|
+
auth_source: LOCAL
|
|
17
|
+
|
|
18
|
+
default_target: prod
|
|
19
|
+
|
|
20
|
+
# Passwords are loaded from environment variables:
|
|
21
|
+
# VMWARE_ARIA_PROD_PASSWORD=xxx
|
|
22
|
+
# VMWARE_ARIA_LAB_PASSWORD=xxx
|
|
23
|
+
# Or from ~/.vmware-aria/.env file
|
|
File without changes
|