Architecture
The 'Script Control Center' solution consists of two main components working together to enable custom monitoring in VMware Aria Operations.
High-Level Components
1. Management Pack (Adapter)
The Management Pack is the component installed directly in VMware Aria Operations. Its primary responsibilities are:
- Configuration Management: Providing a UI for administrators to define script paths, arguments, target endpoints, and execution intervals.
- Execution Triggering: Sending periodic requests (during each collection cycle) to the Script Execution Agent to trigger script runs.
- Data Ingestion: Receiving and parsing the results from the Agent, then mapping them to Aria Operations objects and metrics.
- Object Modeling: Creating and managing the lifecycle of
Custom Script ExecutionandScript Endpointobjects.
2. Script Execution Agent
The Script Execution Agent is a lightweight service that runs on a Linux virtual machine (acting as a worker node). It provides:
- REST API: A secure interface (HTTP/HTTPS) for the Management Pack to communicate with.
- Task Scheduler: A built-in engine that manages the execution of scripts, including queuing, concurrency control, and retention of historical results.
- Script Engine: Executes scripts (Bash, Python, PowerShell, etc.) located in a dedicated
/scriptsdirectory. - Parsers: Built-in support for parsing standard outputs such as Nagios plugins and Prometheus metrics.
- Persistence: An internal SQLite database to track task statuses and results.
Communication Workflow
The interaction between components follows a structured flow during each Aria Operations collection cycle (typically every 5 minutes):
- Trigger: Aria Operations triggers the Adapter Instance collection.
- Request: The Adapter sends a
POST /api/v1/executerequest to the Agent's API. This request includes:- Script name and type (Nagios/Prometheus).
- Arguments (including dynamic target endpoints).
- Environment variables.
- Scheduling: The Agent schedules the task and immediately returns a Task ID to the Adapter.
- Polling/Results: The Adapter polls the Agent using
GET /api/v1/scripts/resultto fetch the execution outcome. - Execution: Meanwhile, the Agent's scheduler runs the script on the worker node for each defined target endpoint.
- Data Processing: The Adapter receives the JSON response containing status, metrics, and properties for each endpoint.
- Ingestion: Metrics are saved in the Aria Operations database, where they become available for dashboards, alerts, and reports.
Logical Object Model
The Management Pack creates a hierarchical structure of objects in Aria Operations:
- Adapter Instance: The root object representing the connection to a specific Agent.
- Custom Script Execution: Represents a specific script configuration. It tracks the overall status of the execution.
- Script Endpoint: Child objects created for each target endpoint defined in the configuration. These objects hold the actual metrics (e.g.,
metric_value,status, etc.) parsed from the script output.
Security
- API Authentication: All communication from the Adapter to the Agent is protected by a mandatory API Token (shared secret).
- TLS Encryption: The Agent supports HTTPS to encrypt data in transit.
- Execution Sandboxing: Scripts run on a dedicated worker VM, isolating them from the Aria Operations core infrastructure.
