Skip to content

Deployment Options#

This section explains different set up and deployment options you may choose to fit your need.

Unryo covers scenarios such as: proxy collectors, multi-tenant deployments, distributed installation and clustered architectures.

Deployment Description
All-In-One Deployment Install the complete platform on a single host machine in your data-center.
Distributed Deployment For larger deployments, you can separate load across multiple hosts, data-centers and public clouds by distribute Unryo component (collectors, databases, portal, analytic engine, ...) across multiple hosts. All Unryo components are managed centrally and efficiently as a single environment. To install an Unryo Component individually, follow the procedure here.
Deploy Collector(s)
Proxy Collector To control communication directions. Unryo supports tunneling of communication between the collectors and the platform. You can get either inbound connections or outbound connections to support your security requirements. More information: vApp Reverse Tunnel and Manual Proxy Host Configuration.
Multi-tenant Databases can be segregated per tenant. Access to data can be restricted as well. Unryo supports several options to centrally manage different tenants.
Clustered architectures You can configure the time-serie databases and event database to run as clusters over multiple nodes.
Linux/Windows Agents If you want to monitor locally your servers and applications running on it, you can install the Unryo agent for Linux or Windows.

All-In-One Deployment#

Unryo comes with an All-In-One easy setup that install the complete platform on a single host machine in your data-center.

Three possible options are:

  • vApp: Follow the procedure here
  • Docker: Follow the procedure here
  • Kubernetes: Follow the procedure [here]../00_Introduction/30_quick_start_onprem.md#kubernetes-helm)

Deploy Collector(s)#

Add a new Collector#

Collectors gather data from your infrastructure and ship data to your Unryo platform. You can install as many as collectors you want.

To deploy a new collector, follow the procedure here:

Install multiple collectors#

For larger installations, you can deploy multiple collectors, for example one collector in every data center. To do it, simply repeat the procedure described here.

For every collector, you will need to specify the variable UNRYO_HOSTNAME in your docker-compose file in the x-common-environment declaration as shown here:

x-common-environment: &commonEnvironment
    UNRYO_BROKER_URL: "https://broker-dev.unryo.com/"
    UNRYO_HOSTNAME: "<ip address of your docker host>"

Customize docker-compose file#

If you already have a docker-compose.yml file ready from the wizard, you can simply modify the services object as you want by adding another component that uses our dockerhub images. Make sure that the new component uses valid tokens, else it won't be able to be recognized by Unryo Connect services.

You can edit things like:

  • Environment variables
  • Container Name
  • Display Name
  • Hostname
  • Port Mapping
  • Volumes Mapping

Installing Linux/Windows Agents#

The Unryo Agent is a lightweight program that is deployed on your hosts (Unix and Windows) for monitoring the OS performance (processor, disk, swap, processes) as well as the applications running on it.

image

Prerequisites#

Privileges:

  • Installing the agent typically requires root or administrator privileges on the host.

Networking:

  • The agent sends metric data to an Unryo Collector at port 8186/tcp. Ensure all your Agents can reach your Unryo Collector using this port (if need be, you can change to another port).
  • The agent retrieves its configurations from the Unryo platform at port 443/tcp. Ensure all your agents can reach your Unryo Portal (which is located in our cloud for SaaS deployments or in your network for on-premise deployments).

These networking requirements are for default architectures; your architecture may be different depending on your security requirements and your networking requirements may be different as a result.

Create an “agent” account#

The first step is to create an "agent" account in your Unryo Portal. Click on the gear icon on the top right of your Unryo Portal, then Settings > Platform Administration > User.

image

Click on the white-on-green "+" button.

image

Fill in the username and password. The username must start with "agent" and the password is up to you. Make sure to keep your password safe.

image

Install the agent on Linux#

Step 1: Get the installer for your platform:

Step 2: Run the installer

  • On a Debian-based Linux: run dpkg -i <path to Debian installer>.
  • On a RPM-based Linux: run rpm -ivh <path to RPM installer>.

Step 3:: Edit /opt/unryo-agent/etc/vault-client/configuration-vault-client/vault-endpoint.toml

  • This is the only configuration file on the agent, everything else is from the Unryo Monitor Web interface
  • Replace <<<<MY_USERNAME>>>> and <<<<MY_PASSWORD>>>> with the username and password for the Portal user you created at the last step, and replace <<<<MY_PORTAL_URL>>>> with your Portal URL.
  • If you have the base64 command: encode your credentials as follows: echo -n "<username>:<password>" | base64, where <username> and <password> are the username and password for your new Portal user. Otherwise, encode your credentials using the instructions found here. Copy the result and replace <<<<MY_ENCODED64_USER:CREDENTIALS>>>> with it.
  • If you have not and do not intend to set up a valid TLS certificate on your Unryo Portal, uncomment the last line. We do not recommend this.

Step 4: Start the agent:

  • Run systemctl daemon-reload.
  • Run systemctl restart unryo-vault.

Linux Agent Upgrade

  • If the previous version of your agent was prior to 1.0 (release candidate), then you must fully uninstall the previous version (keep the one configuration file) then proceed with a fresh install of the agent. To perform a clean removal of the agent and keep the configuration file for reuse:
  • On RedHat/CentOS/Fedora based distros (rpm manager):
    • cp /opt/unryo-agent/etc/configuration-vault-client/vault-endpoint.toml /tmp/
    • killall -9 unryo-vault-client
    • killall -9 unryo-telegraf
    • rpm -e unryo-agent
    • find /etc |grep -i unryo- |xargs -n 1 rm
    • find /etc |grep -i unryo- |xargs -n 1 rmdir
  • On Debian/Ubunty based distros (dpkg manager):

    • cp /opt/unryo-agent/etc/configuration-vault-client/vault-endpoint.toml /tmp/
    • killall -9 unryo-vault-client
    • killall -9 unryo-telegraf
    • dpkg -r unryo-agent
    • find /etc |grep -i unryo- |xargs -n 1 rm
    • find /etc |grep -i unryo- |xargs -n 1 rmdir
  • If you are upgrading from a previous 1.X or higher release:

  • Depending of your Linux Disto, upgrade the agent normally, example:
    • rpm -U ./Unryo-Agent-Linux-latest.rpm
    • dpkg -i ./Unryo-Agent-Linux-latest.deb
  • Validate that the vault-endpoint.toml configuration file persisted
  • Validate that the unryo-vault and unryo-telegraf services are correctly restarted and running

Install the agent on Windows#

Step 1: Download the ZIP from https://downloads.unryo.com/Unryo-Agent-Windows-latest.zip and extract it.

  • Extracted the ZIP file move the Unryo-Agent folder from the zip into your C:\Program Files.
  • Instructions are in the UNRYO-README.txt inside the zip file, ideal for local or remote installation

Step 2: Edit C:\Program Files\Unryo-Agent\etc\configuration-vault-client\vault-endpoint.conf

  • This is the only configuration file on the agent, everything else is from the Unryo Monitor Web interface
  • When you upgrade the agent, this is the only file you need to keep
  • Replace <<<<MY_USERNAME>>>> and <<<<MY_PASSWORD>>>> with the username and password for the Portal user you created at Step 1, and replace <<<<MY_PORTAL_URL>>>> with your Portal URL.
  • Encode your credentials (<username>:<password>) using the instructions found here. Copy the result and replace <<<<MY_ENCODED64_USER:CREDENTIALS>>>> with it.

Step 3: Start the agent:

This command installs the agent as a Windows service and starts it:

  • Run C:\Program Files\Unryo-Agent\install\install-unryo-telegraf-service.cmd as an administrator.
  • Run C:\Program Files\Unryo-Agent\install\install-unryo-vault-service.cmd as an administrator.
  • From the Windows Task Scheduler, run the task called Unryo Vault service

Windows Agent Upgrade

  • Stop the Unryo-Vault task (using Windows Task Scheduler UI)
  • Stop the Unryo-Telegraf service (using Windows Services UI)
  • copy/backup the configuration file C:\Program Files\Unryo-Agent\etc\configuration-vault-client\vault-endpoint.conf
  • delete and replace this folder by the one provided in the agent zip file: C:\Program Files\Unryo-Agent
  • restore your configuration file C:\Program Files\Unryo-Agent\etc\configuration-vault-client\vault-endpoint.conf
  • restart the Unryo-Vault task (using Windows Task Scheduler UI)
  • restart the Unryo-Telegraf service (using Windows Services UI)

Indicate where to send data#

The first thing is to indicate the agent where to send its data.

  • Unryo Agents send data to an Unryo Collector, which then routes it to the Unryo Platform.
  • Unryo offers flexibility depending on your architecture. You can have all your Agents sending data to a central Unryo Collector. Or, if your environment is segmented (for example with distributed sites or multiple customers), you can consider using several Collectors.

Go to "Configuration Management":

image

In the "Metrics" tab, click on the white-on-green "+":

image

Select InfluxDB Listener as your template, your Unryo Collector as the collector to deploy on, and give your configuration file a name and optionally a description. The default contents will work fine. Only edit them if you know what you are doing. Click on "Confirm" at the bottom right when you are done.

image

Then, go to the "Agent" tab and click on the white-on-green "+" to add another configuration file. This time, select Output to Unryo Collector as the template and your new Agent as the agent. Make sure to set urls = ["<your Unryo collector address>"].

image

Start collecting data!#

Your Agent is now actively monitoring your system; by default, it monitors the system's global performance, including the operating system, hardware and application processes. You can see dashboards and alerts (if any) from your Unryo Portal. You can also monitor other technologies by simply activating one of the predefined integrations.

Advanced Unryo Setups#

vApp Reverse Tunnel#

This document describes how to set up a central Unryo All-in-One (AiO) platform that receives data from Unryo vApp collector instance, with communication always being initiated by the AiO platform via a reverse tunnel. This is only relevant to customers that need this specific setup due to networking constraints.

The following diagram illustrates this architecture:

image

Configuration of the Central Unryo Installation (AiO)#

If you are responsible for the Central Unryo Installation (AiO), the following steps are for you; otherwise, you must make sure your Central Unryo Installation Administrator follows these steps and provides you with an authentication key.

Start by creating a new user called reversetunnel on the AiO host. Make its shell be /sbin/nologin. E.g.: adduser -M -r -s /sbin/nologin reversetunnel

Create an ssh key pair you will use to authenticate to the AiO host. Make sure you create the key pair for the reversetunnel user. The public key id_ed25519.pub will be needed when setting up the vApp.

It is a common mistake to create the .ssh directory with the wrong permissions. Make sure it is owned by the reversetunnel user and is not accessible by other users. For example:

mkdir -p /home/reversetunnel/.ssh
chmod go-rwx /home/reversetunnel/.ssh
ssh-keygen -t ed25519 -f /home/reversetunnel/.ssh/id_ed25519
chown -R reversetunnel:reversetunnel /home/reversetunnel

Do not set a password on the key pair when prompted by ssh-keygen.

If you don't have autossh tool on your host, install ssh and autossh on the AiO host.

Make sure you can connect to your vApp with ssh. This step is important because it also allows future ssh connections to recognize and trust your vApp.

su -s /bin/bash reversetunnel
ssh reversetunnel@vapp.customerX.com -p 10000

To have autossh persist after reboot, you must add each autossh command to your rc.local, or a custom service of your choice. Here is an example for one autossh command:

autossh -f -M 0 -o ServerAliveInterval=15 -o ServerAliveCountMax=3 -gN -R 0.0.0.0:4224:localhost:4224 -R 0.0.0.0:8086:localhost:8086 -R 0.0.0.0:9200:localhost:9200 -R 0.0.0.0:8443:localhost:443 reversetunnel@vapp.customerX.com -p 10000

Edit your AiO's docker-compose.yml file such that UNRYO_HOSTNAME is set to your AiO host's FQDN in the x-common-environment section. Important: Using a real FQDN (and not IP) in your UNRYO_HOSTNAME is mandatory when using reverse-tunnel

Run docker-compose up -d on your AiO.

Your configuration is completed. Now, to configure your Collector vApp(s) with reverse tunnel listening, follow the steps here.

Collector vApp configuration#

Important information - It is mandatory to select "Collector" in the vApp Unryo Installation Type. - Configure the vApp with static IP, Gateway and DNS. - Configure the vApp using the Unryo Token and Vault Token provided by your Unryo Administrator

Fill out the three fields in the screenshot below to configure your vApp to accept connections from the AiO platform and create reverse tunnels.

image

Manual Proxy Host Configuration#

Manual Proxy Host Configuration for Linux

Step 1: Install sshd on the proxy host. Make sure "GatewayPorts" and "AllowTcpForwarding" are set to "yes" in /etc/ssh/sshd_config.

Step 2: - We strongly recommend setting up a firewall or access list or other security mechanism for the port sshd listens on.

  • Example to add at your server startup and present a secured port other than 22 (without impacting your normal ssh port):
    SRC="ip_of_my_unryo_central_server"
    RTPORT="the_tcp_port_i_will_securely_expose_to_my_unryo_central_server"

    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -s ${SRC} -p tcp --dport ${RTPORT} -j REDIRECT --to 22
    iptables -t nat -A OUTPUT -s ${SRC} -p tcp --dport ${RTPORT} -j REDIRECT --to 22

Step 3: Create a new user called "reversetunnel" on both the proxy and AIO hosts. Make its shell be /sbin/nologin. - E.g.: adduser -M -r -s /sbin/nologin reversetunnel - Install ssh and autossh on the AIO host. - On the AIO host, create an ssh key pair you will use to authenticate to the proxy host. Make sure you create the key pair for the reversetunnel user. Copy the public key to /home/reversetunnel/.ssh/authorized_keys on the proxy. - It is a common mistake to create the .ssh directory with the wrong permissions. Make sure it is owned by the reversetunnel user and is not accessible by other users. For example: mkdir -p /home/reversetunnel/.ssh chmod go-rwx /home/reversetunnel/.ssh ssh-keygen -t ed25519 -f /home/reversetunnel/.ssh/id_ed25519 chown -R reversetunnel:reversetunnel /home/reversetunnel - Do not set a password on the key pair when prompted by ssh-keygen. - Also note that you may need to run restorecon -R /home/reversetunnel on your proxy host if you are using SELinux.

Step 4: Edit your proxy's docker-compose.yml. For both telegraf and fluentd, add the following section: yaml extra_hosts: - <Central_Unryo_FQDN>:<proxy_host_IP> - Run docker-compose up -d on your proxy.

Installation completed on the proxy server

Manual Setup of the tunnel initiator on your Central Unryo

  • Manually connect from the AIO to the proxy once, such that ssh will later recognize the proxy host. This will test connectivity, and let you accept the host certificate. su -s /bin/bash reversetunnel ssh reversetunnel@proxy-host -p 11000
  • Type yes when asked whether you recognize the host fingerprint. It is a good idea to actually check that it is the same as on your proxy host. You can find it in one of the /etc/ssh/*.pub files.
  • Create a new service that will run autossh as follows. Make sure the task gets started and restarted automatically, and that it is run by the reversetunnel user.

autossh -f -M 0 -o "ServerAliveInterval=15" -o "ServerAliveCountMax=3" -gN -R 0.0.0.0:4224:localhost:4224 -R 0.0.0.0:8086:localhost:8086 -R 0.0.0.0:8443:localhost:443 -R 0.0.0.0:9200:localhost:9200 -p 11000 reversetunnel@proxy-host

  • Make sure that your AIO's docker-compose.yml file UNRYO_HOSTNAME is set to your AIO host's FQDN in the x-common-environment section.
  • If changes are present in your docker-compose file, run docker-compose up -d on your AIO.