Managed Servers
The Managed Servers tab allows for DNS and DHCP VM servers to be created, installed, managed, and monitored from within ProVision.
Managed Servers is handled via two main areas of the GUI: the Managed Servers Tab and in Admin → Admin Settings - Managed Servers sub-tab. Managed servers actions are also available via APIv2 and the command line.
Requirements
Note: Python3, Docker, and Rabbit MQ services are used to support and run Managed Servers. Local customers planning on utilizing managed servers will need to either install these services, or contact support@6connect.com for assistance to accommodate specific network needs.
Required installations are already included for hosted customers.
Overview
ProVision's Managed Servers tab allows for DNS (Knot-based) and DHCP(Kea-based) VMs to be created, managed and monitored from within ProVision, either from the GUI or command line.
Features
Managed Server Features include:
- VM creation, management, and monitoring from within ProVision
- Minimal requirements - Managed Servers only requires Python3 and Docker as dependencies
- OS options include CentOS and Ubuntu
- Supports both remote and manual setups
- Supports both root and non-root installations (for the latter, some root steps may be required)
- Installation and upgrade may be performed either via internet connection or locally:
- Remote internet install/upgrade connects to 6connect's servers to get new versions
- Local installs/upgrades will require users to upload the new version locally into their ProVision instance
- No kernel updates or other system updates are required for local updates - only the Docker container will be updated.
Monitoring Features include:
- DNS Monitoring includes hit count for given period for each host/resource, total hit count, and last access time
- System monitoring Includes CPU load, Disk usage, connection information, swap memory, and virtual memory monitoring.
- Monitoring is available via GUI or API.
- Both "Push" and "Pull" options for statistics data are available
- Heartbeat service independent of Docker to provide monitoring data
Permissions
Managed Servers uses a "6c servers" user group, under which automatic or manual "server users" are created. The "6c servers" user group gives permissions to all 6c server resources.
The "server users" are necessary to allow access and permissions for the managed server(s). When new server is created with an empty user (instead of a user-provided existing user) a random new user is automatically created under that group. Only that server user has permission to update the associated managed server.
Administration
The "Managed Servers" sub-tab under Admin Settings includes modules for global setup of Monitoring Settings, Update Settings, Monitoring Services, and RabbitMQ settings.
These settings provide the "default" values for servers created from the Managed Servers Tab.
After making any settings updates, be sure to click "Save Changes" under the updated module.
For additional details, see Managed Servers Settings.
Managed Servers API
APIv2 endpoints are available for Managed Servers and Managed Server Monitoring.
To view these endpoints from your instance, go to the API Tab → APIv2 Swagger Documentation, then click the Swagger links for the family categories "PVServers" and "Monitoring". For information on using the API, see APIv2.
Managed Servers Flow Chart
Managed Servers - Initial Setup and Installation
Install necessary packages (RabbitMQ, Python 3.6+, Docker), if not already installed with your ProVision instance.
Python 3.6+ and Docker should be installed on the target VM for the managed server in advance, prior to starting the managed server installation.
If an internet connection is established, Docker will be automatically installed by ProVision scripts.
Install RabbitMQ
If RabbitMQ has not already been installed on your ProVision instance / VM, you will need to install it by running the included shell script (Note: Installing RabbitMQ requires internet access.):
1) Run install_rabbitmq.sh.
/usr/bin/sh /path_to_provision/tools/install_rabbitmq_{OS}.sh
Ubuntu RabbitMQ installation script:
CentOS RabbitMQ installation script:
This script is taken from Installing on Debian and Ubuntu — RabbitMQ and may need an update in future.
2) You may verify the installation is working by opening http://your.host:15672
3) Once confirmed working, go to ProVision Admin Settings → Managed Server Settings. Then, enter the RabbitMQ IP, port, username, and password into the RabbitMQ Settings section. When done, click "Save Changes".
Enter Managed Servers Settings
In ProVision, navigate to Admin Settings → Managed Servers and enter or verify settings in the following areas:
1) RabbitMQ Settings
Enter the RabbitMQ IP, port, username, and password into the RabbitMQ Settings section. To verify the settings, click "Test Credentials".
When done, click "Save Changes".
2) Enter Monitoring Settings
Under Monitoring Settings, select the "Default Monitoring API IP", and enter any additional setting options as follows:
- Default Monitoring API IP: The default IP to be used for API calls (heartbeat, activation, etc.) for managed server monitoring and to send API requests, as multiple IPs may be available depending on the Provision set up.
- Note: The Default Monitoring API IP can be set to a default value in this area, but it may also be set individually per managed server as an override.
- Verify CA: Toggle to "on" if you wish to enable the CA check.
- Communication type: Push (when the server pushes data to ProVision) and pull (when ProVision connects to the server and pulls the data). Push is preferred, but Pull-based may be desirable in cases where a firewall would not allow inbound connections to ProVision.
- Monitoring of the system: Toggle to "on" to enable monitoring of system statistics.
- System monitoring interval: How often (in seconds) the system will be checked. The smaller the interval, the more data there will be to store.
- Monitoring of the DNS: Toggle to "on" to enable gathering statistics from the DNS server.
- DNS monitoring interval: How often (in seconds) the DNS server will be monitored. Data will be aggregated for the set period of time and the aggregated results will be sent.
- Raw data retention: The number of minutes to retain raw data. By default, this is set to 1440 minutes (1 day). Raw data requires sizable storage needs.
- Aggregated data retention: The number of days to retain aggregated data.
2) Enter Update Settings
Enter Update settings to use for Managed Servers, starting with API timeout (in milliseconds) and Update Mode.
Fill in the remaining update settings as applicable to the selected update mode:
- Internet Docker Update (Recommended) - This uses a Docker update directly from our docker registry. Internet connection is required for the managed server in order this mode to work.
- When this is chosen, fields to enter tokens for the DNS / DHCP repository will displayed.For assistance obtaining repository tokens, please contact support@6connect.com.
- When this is chosen, fields to enter tokens for the DNS / DHCP repository will displayed.
- ProVision Image Download - If Update Mode is set to "Image Download (Local)", then no internet connection is required from the managed server, but an image file must be manually downloaded from a separate secure site to then upload into ProVision.
Install Python 3 / Additional Services
Setup the necessary services:
python3 /path_to_provision/pvservers/setup/pv_install/setup_services.py
Create Managed Servers
At this point, initial setup is complete and you may begin to create new managed servers in ProVision.
For instructions on creating a new managed server, see Working with Managed Servers.
Working with Managed Servers
For information on creating a new managed server, working with the managed server list, and viewing monitoring, see the following sections:
Additional Information
For Admin-level managed server setting information, see: