Use this skill whenever the user needs to operate a Nutanix estate through Prism Central (v4 REST API) — an estate/cluster health overview, cluster & host inventory and utilization, VM lifecycle across AHV and ESXi (list/get/power/create/update/clone/delete/migrate), storage containers, subnets/network, images & categories, data protection / DR (snapshots, recovery points, protection domains, VM protect, failover), alerts & events with alert RCA (analyze_alert), LCM firmware/software upgrades, capacity runway forecasting, and read-only diagnostics/RCA over the whole estate (cluster_health_rca, alert_triage_rca). Always use this skill for "Nutanix", "Prism Central", "AHV", "cluster health", "list VMs", "power on/off a VM", "clone/migrate a VM", "delete a VM", "snapshot", "recovery point", "protection domain", "failover", "why did this alert fire" / "root cause this alert", "LCM upgrade / firmware", "days until storage is full" / "capacity runway", "what's wrong with my cluster" / "diagn
Memory
monitoring-aiops
Try itUse this skill whenever the user needs to operate a network / infrastructure monitoring NOC on SolarWinds Orion (SWIS REST + SWQL), Paessler PRTG (web API), or Zabbix 6.x/7.x (JSON-RPC) — a one-shot NOC overview, canned SWQL answers (nodes down, flapping interfaces, muted, high-CPU nodes, full volumes, unmanaged/scheduled), a validated read-only SWQL passthrough, deduped/rolled-up active alerts, SolarWinds node/interface/volume/application health and top-N, PRTG sensors/devices/groups/history/alarms, Zabbix problems/hosts/host-groups/triggers/events/item-history/maintenances, and guarded writes (acknowledge, mute/unmute, schedule maintenance, unmanage/remanage, remove node, pause/resume sensor, create/delete Zabbix maintenance window). Always use this skill for "SolarWinds", "Orion", "SWQL", "THWACK question", "PRTG", "Paessler", "Zabbix", "Zabbix problem", "Zabbix trigger", "Zabbix maintenance", "NOC overview", "which nodes are down", "flapping interfaces", "interface flap storm", "al
What it does
Use this skill whenever the user needs to operate a network / infrastructure monitoring NOC on SolarWinds Orion (SWIS REST + SWQL), Paessler PRTG (web API), or Zabbix 6.x/7.x (JSON-RPC) — a one-shot NOC overview, canned SWQL answers (nodes down, flapping interfaces, muted, high-CPU nodes, full volumes, unmanaged/scheduled), a validated read-only SWQL passthrough, deduped/rolled-up active alerts, SolarWinds node/interface/volume/application health and top-N, PRTG sensors/devices/groups/history/alarms, Zabbix problems/hosts/host-groups/triggers/events/item-history/maintenances, and guarded writes (acknowledge, mute/unmute, schedule maintenance, unmanage/remanage, remove node, pause/resume sensor, create/delete Zabbix maintenance window). Always use this skill for "SolarWinds", "Orion", "SWQL", "THWACK question", "PRTG", "Paessler", "Zabbix", "Zabbix problem", "Zabbix trigger", "Zabbix maintenance", "NOC overview", "which nodes are down", "flapping interfaces", "interface flap storm", "alert storm", "acknowledge this alert", "worst CPU nodes", "top-N by latency/packet loss", "which volumes are full", "muted alerts report", "unmanaged nodes", "schedule a maintenance window", "unmanage / remanage a node", "pause a PRTG sensor" when the context is monitoring. Do NOT use when the target is something other than a SolarWinds/PRTG/Zabbix monitoring platform (a hypervisor, storage appliance, backup product, Kubernetes cluster, network device config, or OT/industrial equipment) — route those to the appropriate other AIops-tools skill. Governed monitoring operations with a built-in governance harness (audit, policy, token budget, undo, risk-tiers). PRTG's free Freeware edition and an open-source Zabbix appliance are the easiest live checks; SolarWinds is trial-only past 30 days.
The skill document
Monitoring AIops
Disclaimer: Community-maintained open-source project, not affiliated with, endorsed by, or sponsored by SolarWinds, Paessler, Zabbix, or any monitoring vendor. SolarWinds, Orion, SWQL, THWACK, PRTG, Paessler and Zabbix are trademarks of their respective owners. Source at github.com/AIops-tools/Monitoring-AIops under the MIT license.
Governed network / infrastructure monitoring operations — 42 MCP tools
across SolarWinds Orion (SWIS REST + SWQL), Paessler PRTG (web API),
and Zabbix 6.x/7.x (JSON-RPC 2.0),
every one wrapped with the bundled @governed_tool harness: a local unified
audit log under ~/.monitoring-aiops/, policy engine, token/runaway budget
guard, undo-token recording, and risk-tier labelling on the audit trail. One
config can span all NOCs. The Orion password / PRTG API token / Zabbix API token is stored
encrypted (~/.monitoring-aiops/secrets.enc, Fernet + scrypt) — never
plaintext on disk.
Standalone: the governance harness is bundled in the package (
monitoring_aiops.governance) — no external skill-family dependency. PRTG's free Freeware edition and an open-source Zabbix appliance are the easiest live checks; SolarWinds is trial-only past 30 days (largest verification debt — seedocs/VERIFICATION.md).
What This Skill Does
| Group | Platform | Tools | Count | R/W |
|---|---|---|---|---|
| SWQL | SolarWinds | library, canned, query (SELECT-only passthrough) | 3 | read |
| Alerts | all | active_alerts (dedup/rollup), alert_acknowledge | 2 | 1 read, 1 write |
| SolarWinds health | SolarWinds | node/nodes/interface/volume/application status, topn, noc_rollup | 7 | read |
| SolarWinds writes | SolarWinds | list_events/unmanaged/muted | 3 | read |
| SolarWinds | mute/unmute, schedule_maintenance, remanage_node | 4 | write (med) | |
| SolarWinds | unmanage_node, remove_node | 2 | write (high) | |
| PRTG | PRTG | sensors/sensor_details/devices/groups/history/system_status/alarms | 7 | read |
| PRTG writes | PRTG | pause_sensor, resume_sensor, schedule_maintenance_prtg | 3 | write (med) |
| Zabbix | Zabbix | zabbix_problems/hosts/hostgroups/triggers/events/item_history/maintenances | 7 | read |
| Zabbix writes | Zabbix | zabbix_create_maintenance (time-boxed; undo = delete that id) | 1 | write (med) |
| Zabbix | zabbix_delete_maintenance (priorState = full definition) | 1 | write (high) | |
| Undo | all | undo_list, undo_apply | 2 | undo |
The canned SWQL library (swql_library lists them) answers the most-repeated
THWACK questions directly: nodes_down, flapping_interfaces, muted_report,
high_cpu_nodes, volumes_full, unmanaged_scheduled. For anything else,
swql_query is a validated read-only (SELECT-only) SWQL passthrough.
Quick Install
uv tool install monitoring-aiops
monitoring-aiops init # wizard: pick platform (solarwinds/prtg/zabbix) + encrypted secret
monitoring-aiops doctor
When to Use This Skill
- Get a NOC snapshot (
overview/noc_rollup): active/unacked alert counts, down/warning nodes, worst CPU - Answer a repeated SWQL question (
swql_library→swql_canned nodes_down), or run an ad-hoc read-only SWQL SELECT (swql_query) - Triage an alert storm (
active_alertsdedup/rollup collapses flap/down storms), thenalert_acknowledge - SolarWinds health:
node_status,interface_status(top-N by util),volume_status,application_status(SAM),topn(cpu/mem/latency/loss) - PRTG: list
prtg_sensors/prtg_devices/prtg_groups, drill withprtg_sensor_details/prtg_history, checkprtg_alarms/prtg_system_status - Zabbix: triage
zabbix_problems(0-5 severity mapped to levels) /zabbix_triggers, inventoryzabbix_hosts/zabbix_hostgroups, drill withzabbix_item_history(bounded), reviewzabbix_events/zabbix_maintenances - Safely take a node out for maintenance (
schedule_maintenance/unmanage_nodewith dry_run + double-confirm), pause a PRTG sensor (pause_sensor), or create a time-boxed Zabbix maintenance window (zabbix_create_maintenance— undo deletes exactly that window)
Do NOT use when the target is not a SolarWinds/PRTG/Zabbix monitoring platform — route hypervisor, storage, backup, cluster, network-device-config, or OT/industrial work to the appropriate other AIops-tools skill.
Related Skills — Skill Routing
| If the user wants… | Use |
|---|---|
| SolarWinds Orion / SWQL, PRTG, or Zabbix monitoring ops | monitoring-aiops (this skill) |
| A non-monitoring platform (hypervisor, storage, backup, cluster, network config, OT edge) | the appropriate other AIops-tools skill |
| Other monitoring stacks (not SolarWinds/PRTG/Zabbix) | out of scope for this tool |
Common Workflows
No authorization gate: the skill runs the operations you ask for and audits every one; it does not decide whether a write is permitted — that is the agent's judgement or the permissions of the SolarWinds/PRTG/Zabbix account it connects with (a read-only monitoring account makes writes fail at the server). There is no read-only switch, policy file, or approval gate.
MONITORING_AUDIT_APPROVED_BY/MONITORING_AUDIT_RATIONALEare optional audit annotations, recorded when set.
1. The 3 a.m. alert storm — collapse it, then acknowledge what matters
monitoring-aiops doctor→ confirm the NOC platform is actually reachable (a "storm" is sometimes just a poller that lost the target)monitoring-aiops overview→ the one-screen picture: down/warning counts across the configured targetsmonitoring-aiops alert list(MCP:active_alerts) → deduped / rolled-up entries; an interface-flap or node-down storm collapses into one entry with a count instead of a wall of alertsnoc_rollup→ confirm whether the storm has a single upstream cause (one node down taking its children with it) rather than N independent faults- Acknowledge only the rolled-up entry that matters:
monitoring-aiops alert ack(SolarWindsAlertActive.Acknowledge/ PRTGacknowledgealarm/ Zabbixevent.acknowledge) — the prior ack state is captured into priorState, and the ack is double-confirmed - Failure branch: if
doctorfails, do not acknowledge anything — you would be silencing alerts you cannot currently see. Fix credentials withmonitoring-aiops secret setfirst. If you acknowledged the wrong alert,monitoring-aiops undo list→undo applyrestores the prior ack state.
2. "Which nodes are down and what's saturated?" (read-only)
noc_rollup→ down / warning counts plus the worst-CPU nodes in a single call, so you do not page through a dashboardtopn cpu(alsomemory,latency,packetloss) → the worst offenders with the measured numbernode_status→ drill into one node;interface_statusfor a suspected link problem,volume_statusfor a filling disk,application_statusfor an app-layer faultlist_events→ what changed around the time things went badlist_unmanaged→ check whether a "missing" node is simply unmanaged from a previous maintenance window that was never reverted- Failure branch: if a node shows down but is reachable from your shell,
the fault is in polling, not the node — check
list_mutedandlist_unmanagedbefore escalating to the network team.
3. Planned maintenance: suppress noise time-boxed, then restore
node_status/swql_canned nodes_down→ confirm you have the right node and that it is currently healthy (so you can tell the difference afterwards)- Prefer the time-boxed path — it expires on its own:
schedule_maintenance --end ...(SolarWinds),schedule_maintenance_prtg(PRTG), orzabbix_create_maintenance(Zabbix, undo → delete that maintenance id) - If you genuinely need to unmanage instead:
unmanage_node --dry-run, then re-run without--dry-run→ high risk, double confirmation; it records an inverseremanage_nodeundo descriptor - For a single noisy sensor rather than a whole node:
pause_sensor(PRTG, undo →resume_sensor) ormute_alerts(undo →unmute_alerts) - When maintenance ends:
remanage_node/resume_sensor/unmute_alerts, or simplymonitoring-aiops undo applyto replay the recorded inverse - Failure branch: the classic failure here is forgetting to restore —
run
list_unmanagedandlist_mutedat the end of every maintenance window; anything still listed is silently unmonitored. Time-boxed maintenance windows are preferred precisely because they fail safe.
4. Answer a bespoke NOC question with SWQL
monitoring-aiops swql library(MCP:swql_library) → the canned queries, so you do not hand-write what already existsmonitoring-aiops swql canned nodes_down→ run a canned one directly (alsohigh_cpu_nodesand the rest of the library)- Not canned?
monitoring-aiops swql query "SELECT ..."→ the passthrough validates the statement is a read-only SELECT before it runs; anything else is refused - Feed the result into an action — e.g. a node the query surfaced goes into workflow 3 for a maintenance window
- Failure branch: a rejected query is almost always a non-SELECT statement
or a SWQL/SQL dialect slip (SWQL has no
*expansion on some entities). Start from the nearest canned query inswql libraryand modify it rather than writing from scratch. The passthrough will not be talked into a write — writes go through the governed tools, where they are audited.
Governance & Safety
- Every tool is audited to
~/.monitoring-aiops/audit.db(relocatable viaMONITORING_AIOPS_HOME). - Each tool's
risk_levelis carried into the audit row as a descriptive tier (a label, not a gate).MONITORING_AUDIT_APPROVED_BY/MONITORING_AUDIT_RATIONALEare optional audit annotations, recorded when set. - Destructive writes support
--dry-runand double confirmation at the CLI. - Suppression / maintenance writes are time-boxed (require an end time /
duration). Reversible writes record an inverse descriptor (mute→unmute,
unmanage→remanage, pause→resume, zabbix_create_maintenance→delete that
maintenance id).
zabbix_delete_maintenancecaptures the window's full definition into priorState before deleting.
References
references/capabilities.md— full tool + platform + SWQL/API-path referencereferences/cli-reference.md— CLI command referencereferences/setup-guide.md— onboarding, credentials, and connectivity
Related skills
Use this skill whenever the user needs to operate a self-hosted observability stack on Prometheus (HTTP API + PromQL), Alertmanager, Grafana, or Grafana Loki (logs) — a one-shot overview, PromQL instant/range queries, label + series metadata, scrape-target health (up/down + why) and dropped targets, recording/alerting rule health, firing/pending alerts, Alertmanager alerts + silences, Grafana dashboards/datasources/folders, bounded Loki LogQL log reads (labels, query, error-tail), five flagship analyses (firing-alert RCA, target-scrape-health, alert-noise/flap, log-error-burst RCA, log-volume/cardinality) plus an alert->log cross-signal, and guarded writes (create/expire silence, create annotation, update/delete dashboard, reload Prometheus config). Always use this skill for "Prometheus", "PromQL", "Alertmanager", "Grafana", "Loki", "LogQL", "logs", "which targets are down", "scrape failing", "why is this alert firing", "root cause this alert", "firing alerts", "silence this alert", "n
Use this skill whenever the user needs to operate or diagnose a Ceph cluster via its ceph-mgr Dashboard REST API — decode a HEALTH_WARN/ERR state into cause + action (cluster_health), read the cluster status, inspect OSDs (tree/df/perf), placement groups (summary/stuck/scrub), pools (list/usable capacity), RBD images and snapshots, CephFS/MDS and RGW status, monitors/managers, slow ops and capacity forecast — plus governed writes (set cluster flags, reweight/mark-in/mark-out/purge OSDs, trigger scrubs, set pool quota/pg_num/autoscale/size, create/delete pools, create/delete RBD images and snapshots, throttle recovery/backfill). Always use this skill for "ceph health", "what does this HEALTH_WARN mean", "PG_DEGRADED / OSD_NEARFULL / SLOW_OPS / MON_DOWN", "ceph -s", "which OSD is most full", "drain an OSD", "purge an OSD", "stuck PGs", "overdue scrub", "pool usable capacity", "set pool size / quota", "rebalance is too slow / throttle backfill", "RBD image or snapshot", "MDS behind on tri
Use this skill whenever the user needs to operate a network device — read device facts, interfaces (+ counters/IP), BGP/LLDP neighbors (summary and detail), ARP/MAC tables, VLANs, routes, hardware environment (fans/temp/power/CPU/mem), optics, NTP, users, SNMP info, VRFs, and an aggregated device-health summary; run read-only RCA diagnostics on interface health and BGP neighbors; back up a switch/router config, diff a candidate config (dry-run), and merge/replace/rollback config — across Cisco IOS/IOS-XE, Nexus NX-OS, IOS-XR, Arista EOS, and Juniper Junos via NAPALM. An optional NetBox block adds source-of-truth lookups. Always use this skill for "back up switch config", "show bgp neighbors", "diff network config", "push config to router", "show interfaces on the switch", or tasks mentioning "cisco", "arista", "juniper", "nexus", "ios-xr", or "napalm". Do NOT use when the target is not a NAPALM-supported network device (Kubernetes clusters, hypervisor VMs, and cloud consoles are out of
Use this skill whenever the user needs compliance evidence from the audit trails their governed AIops agents already write — mapping AI-agent infra-ops activity to HIPAA §164.312, PCI-DSS v4.0, SOC 2 TSC, or GDPR controls, producing a change-approval report, a gap analysis, an exceptions/anomaly report, or a hash-chain-sealed, tamper-evident evidence bundle. Always use this skill for "compliance evidence", "HIPAA / PCI-DSS / SOC 2 / GDPR evidence", "audit trail report", "coverage for control X", "which controls are we short on / gap analysis", "who approved this change / change-management evidence", "denied or errored ops / anomaly evidence", "seal / sign an evidence bundle", "prove this bundle wasn't altered", or "detect deleted audit rows". Do NOT use to scan or operate infrastructure and do NOT treat it as a GRC platform — it reads the local audit databases the OTHER AIops-tools write and converts them to evidence; for platform operations use those other AIops-tools. Evidence, not c
Use this skill whenever the user needs to operate a managed-endpoint fleet (thin clients, VDI endpoints, centrally-managed devices) — a one-shot fleet health overview, endpoint inventory (list/get), a composite per-endpoint health score (which endpoints are worst?), login & boot sessions, login-storm analysis (detect morning login storms and rank the slowest login/boot contributors), patch/config drift (which endpoints deviate from the fleet baseline), and two guarded writes (assign a config profile, reboot an endpoint). Always use this skill for "endpoint fleet overview", "list managed endpoints", "which endpoints are worst", "endpoint health score", "rank endpoints by risk", "why is login slow this morning", "login storm", "boot time analysis", "patch drift", "config drift", "which endpoints are behind on patches", "assign a profile to an endpoint", or "reboot a thin client" when the context is an endpoint-management fleet. Do NOT use when the target is OT / industrial equipment (Mod