ControlUp Architecture & Security Concepts
This document describes the ControlUp suite architecture, including different deployment topologies scenarios, a description of all major components and their communications model, data stored in the relevant ControlUp data stores, and data protection mechanisms.
ControlUp supports various topologies based on customer requirements and security policies. Below we will describe the two major topologies used by ControlUp customers.
ControlUp Hybrid Cloud Mode
ControlUp Hybrid Cloud mode is enabled by default if your network has Internet connectivity. In this mode, the ControlUp backend components are hosted on our secured Amazon Web Services Cloud servers. The ControlUp Real-Time Console and Monitor run inside your enterprise network.
The following drawing is a high-level overview of ControlUp's architecture when working in Hybrid Cloud mode:
ControlUp On-Premises Mode
ControlUp On-Premises mode enables organizations to install the ControlUp back-end components on their on-premise data center. In this mode, both the ControlUp back-end components and the ControlUp Console and monitor runs inside your enterprise's network.
For details, see ControlUp Architecture - On-Premises.
Here are the various software components that are part of the ControlUp architecture.
Customer Network Components
ControlUp Console is the main component used by sysadmins for real-time management and monitoring of their virtual infrastructure, physical and virtual servers, VDI, and RDS environments, as well as monitoring physical endpoints and applications.
The console distributes the ControlUp Agents to the managed computers/VMs and exposes the UI which enables admins to configure Hypervisor connections, CVAD sites, Citrix ADC Appliances, AWS regions, and Monitor services.
The console maintains communication with the relevant managed computers/VMs, Hypervisors, CVAD sites, Citrix ADC appliances, and AWS regions and displays real-time performance data to the sysadmin. The console also communicates with the ControlUp backend servers for various operations.
ControlUp Monitor Service
The ControlUp Monitor service is a key component in any ControlUp deployment. The Monitor Service carries out these major functionalities:
- Incidents reporting and alerting.
- Historical data uploads.
- Gateway to Insights and Solve.
Once installed and started, the ControlUp Monitor logs into your ControlUp organization and connects to your managed computers/VMs, Hypervisors, CVAD sites, Citrix ADC appliances, and AWS regions. The Monitor starts receiving system information and performance updates from your organization, just like an additional ControlUp Console instance. The primary difference between a ControlUp Monitor Service and a Console is the fact that the Monitor runs as a Windows service, requiring no user interaction and allowing for continuous monitoring of your resources, ensuring continuous coverage for incident alerting and reporting capabilities among others.
The ControlUp Monitor Service also uploads the historical data that is used for generating reports and analytics displayed in ControlUp Insights. For more information regarding the architecture and security measures for ControlUp Insights, please refer to the “ControlUp Insights – Security Measures and Procedures ” document.
ControlUp Data Collector
A software component that collects performance and configuration information from the Hypervisor management web service, the CVAD sites, the Citrix ADC appliances, and the AWS regions via remote API calls. By default, each ControlUp Monitor Service is configured as a data collector which pulls data directly from the connected hypervisors (ESXi, AHV, Hyper-V, or Citrix Hypervisor), CVAD brokers, and Citrix ADC Connector
In a production deployment it is recommended to configure a dedicated data collector which acts as a proxy for all other ControlUp consoles and Monitor services:
Configuring a dedicated data collector is a best practice for increased performance. For more performance recommendation, see this article.
The ControlUp Data Collector communicates with the configured vCenter server via the SDK web service, the default communication channel is based on the SSL protocol (e.g. https://vcenter.fqdn//sdk). By default, data collection occurs every 20 seconds and a read-only account is sufficient to pull all configuration and performance data, in order to enable VM Power Management, go to the Virtual Machine/Interaction category and enable the following: ⧫Power Off ⧫Power On ⧫Reset.
The ControlUp Data Collector communicates with the configured Citrix Hypervisor via port 80 (by default) and also communicates directly with each Citrix Hypervisor pool member to pull the real-time performance metrics via the RRD API. By default, data collection occurs every 20 seconds and a read-only account is sufficient to pull all configuration and performance data, in order to enable VM Power Management, upgrade the user role to ‘VM Operators’.
The ControlUp Data Collector communicates with the configured CVAD Broker via port 80 (by default) to pull configuration and performance data. During the initial connection, the data collector discovers all CVAD Brokers and saves them in the Broker's Failover List to enable data collection in case the first CVAD Broker is not available. The data collector utilizes both the PowerShell and OData APIs to pull relevant data in Delivery Groups, Brokers, VDA’s, User Sessions, and Published Applications.
The Read-Only Administrator right to all farms that will be managed is sufficient for monitoring purposes. If you want to be able to use the built-in CVAD management features like enabling maintenance mode for example, then this account will require the following permissions:
- Edit Application Group Properties
- Edit Application Properties (Application Group)
- Edit Delivery Group Properties
- Edit Machine Catalog Properties
The ControlUp Data Collector communicates with AWS's .Net SDK over HTTPS.
The Data collection intervals are as follows:
Metadata (computer name, state, etc.) – 20-second intervals.
"Cloudwatch" data – depending on whether the instance has detailed monitoring or not (as defined on the AWS instance itself). Detailed monitored instances - 1-minute intervals.
Non-Detailed monitored instances - 5-minute intervals.
Citrix ADC Connector
The ControlUp Data Collector communicates with the Citrix ADC appliance over HTTP or HTTPS, depending on the user’s preference over API. The data collections intervals - Depend on the size of Citrix ADC deployment and are configurable.
The ControlUp agent is a software component that collects performance information on the managed computer/VM and sends it to the ControlUp Console or to the ControlUp Monitor instances which are currently running in the network and are connected to the managed computer. The ControlUp agent also executes the management actions performed by the users running the ControlUp Console.
For further information, refer to the following article .
Cloud-Based Backend Components
ControlUp Cloud Servers
ControlUp Cloud Servers reside in the Amazon Web Services cloud (US and Ireland datacenters) and provide login, licensing, central configuration, and database services for all ControlUp Consoles and Monitor service instances running on the customer network.
All data uploaded to ControlUp Insights is loaded from Amazon S3 into Redshift, a petabyte-scale SQL data warehouse service that runs on highly optimized and fully managed AWS compute and storage resources
ControlUp Insights Cloud Servers
ControlUp Insights offers a web portal (https://insights.controlup.com ) that allows authorized users to display, save, export, and share reports based on the uploaded data. The web portal is hosted by Amazon Web Services using the EC2 service.
ControlUp Data Stores
Here are the various data stores being used in a ControlUp deployment.
ControlUp In-RAM Database
A proprietary database is used by each ControlUp Console / Monitor service instance to store all real-time performance and configuration data gathered by the data collection agents. This database is a volatile database, which exists only when the console/monitor executable is running. The Security Policy within the Console allows for proper role-based maintenance of the various features within the Console. The in-RAM data retention policy allows up to 100 historical transactions per counter.
ControlUp Configuration Database
The ControlUp central configuration is hosted on a Lightweight Directory Services database. The location of the database depends on the chosen ControlUp topology:
The configuration database for hybrid-cloud is stored on the ControlUp Servers running in the AWS cloud.
The configuration database includes all persistent configuration objects that are part of the ControlUp organization, including the following objects (not all items are listed here):
Distribution settings defaults
- Check Ping
- Check Prerequisites
- Default Port
- Temporary / Permanent Mode
- Keep-Connected Interval
Hypervisor Connection settings
XD Connection settings
Cloud connection settings
Citrix ADC connection settings
Managed Computer / VM Information
- Install Mode (temporary / permanent)
- CPU Count
- Domain Role (Workstation / Member Server / etc)
- Highest session count (Max value of the ‘session’ counter)
- OS Caption
- OS Service Pack
- Physical (MAC) Address (used for Wake-On-Lan)
- System Type (x86 / x64 / etc)
- Total RAM
- Domain DNS
- ControlUp Port
- Netbios Name
- Last Connection Error
All entries configured by the user
- NT Account Name
- NT Account SID
- NT Account Name
- NT Account SID
- Stress settings configured by the user
RDP Connection Properties
- Authentication Level
- Connect to console
- Device Redirection Configuration
- SmartSize settings
- Connect to console
- Start Full Screen
- Start Program on connection
AD Connections (metadata only)
Generic ControlUp configuration settings
User credentials are never stored in the configuration database.
All data objects in the configuration database are encrypted using the Rijndael algorithm (AES) with a per-customer random 128-bit encryption key. In the Hybrid Cloud mode, the encryption key is stored on the ControlUp Cloud servers and protected using DPAPI. In the On-Premises mode, the data is encrypted for obfuscation purposes only, the key is stored locally, along with a secret hardcoded string.
All data objects are encrypted locally, at the Console/Monitor instances, before being transmitted over the network to the relevant web services/database.
ControlUp Incidents Database
The ControlUp Incidents database is hosted on a Microsoft SQL database.
ControlUp Hybrid Cloud Mode – In this mode the Incidents database is stored on the ControlUp's AWS RDS instance
ControlUp On-Premises Mode – In this mode the Incidents database is stored on a Microsoft SQL server running on the customer network
Incident Triggers are definitions of significant events that should be recorded by ControlUp for later analysis. Each trigger includes a list of conditions that specify when the incident will be recorded and which follow-up actions will be performed at that time.
The Incidents database contains all historical incidents that were reported by the ControlUp consoles and Monitor services based on the customer triggers definitions. The information stored in the Incidents database can be viewed via the ControlUp Incidents Pane.
Sensitive Incidents related data such as host and computer names, IP addresses, account names, event message data, and process command lines are encrypted using Rijndael algorithm (AES) with a per-customer random encryption key. In the Hybrid Cloud mode, the encryption key is stored on the ControlUp Cloud servers and protected using DPAPI. In the On-Premises mode, the data is encrypted for obfuscation purposes only, the key is stored locally, along with a secret hardcoded string.
All incidents are encrypted locally, at the Console/Monitor instances, before being transmitted over the network to the relevant web services/database.
ControlUp Local Cache
Configuration Cache files are stored on the computer running the ControlUp Console and the ControlUp Monitor service, in the Application Data directory under the user’s profile (e.g. %UserProfile%\AppData\Roaming\ControlUp). By default, NTFS restricts access to the file to allow only the user himself and members of the local Administrators group.
If the files are copied and used by a different user, the encrypted data cannot be decrypted and the user will have to re-enter all passwords. Other configuration data will be available.