Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?


Contrail Insights Installation for Containerized OpenStack (OpenStack Kolla, Red Hat OpenStack Platform 13)

On a containerized OpenStack setup, Contrail Insights monitorsOpenStack resources as well as the containers in which the OpenStack services are deployed. This topic provides the steps to deploy Contrail Insights when OpenStack services are running inside Docker containers, without a container orchestration engine. For a setup in which OpenStack is running in containers orchestrated by Kubernetes (OpenStack Helm), see Contrail Insights Installation for OpenStack Helm.


Figure 1: Contrail Insights and Containerized OpenStack (OpenStack Kolla, Red Hat OpenStack Platform 13)Contrail Insights and Containerized OpenStack (OpenStack Kolla, Red Hat OpenStack Platform 13)
  • Contrail Insights Agent monitors resource usage on OpenStack compute nodes.

  • Contrail Insights Platform offers REST APIs to configure the system.

  • Contrail Insights DataManager stores data from multiple Agents.

  • Contrail Insights Dashboard provides a Web-based user interface.

  • OpenStack Adapter discovers virtual machines (VMs) running on the OpenStack cluster.

  • Contrail Insights Agent discovers Docker containers on which OpenStack services are running.


  • For each host, on which Contrail Insights Platform is installed, see Contrail Insights General Requirements for hardware and software requirements. For a list of Contrail Insights Agent supported platforms, see Contrail Insights Agent Requirements.

  • API access to OpenStack services. Contrail Insights reads information about the OpenStack cluster through the APIs exposed by the various OpenStack services. The user credentials provided during configuration must provide sufficient permission for read-only API calls. Further, Contrail Insights Platform must be able to open a connection to the host and port on which the API server runs.

  • Note:

    Upgrade notice: Starting with Contrail Insights 3.2.6, the requirement for a license file is removed. If you are installing a version earlier than 3.2.6, a license is required prior to installation.

    You can obtain a license key from Provide the following information in your request:


  • One IP address for the Platform host.

  • Platform host must have IP connectivity to reach compute nodes.

  • Platform host requires Internet connectivity during installation.

  • Control plane services are distributed as Docker images that are retrieved from a registry hosted by Contrail Insights. Optionally, the Docker images may be downloaded and served from a local registry.

  • Dashboard client (in browser) must have IP connectivity to Platform host.


The installation includes the following workflow:

  1. Initial setup.

  2. Prerequisites for Agent installation.

  3. Configuring OpenStack.

  4. Contrail Insights Installation.

  5. Optional Configuration.

Initial Setup

To complete the initial setup:

  1. Install Ansible and other required packages on the appformix_controller node:


    For RHEL, the following iptables rule is needed to access port 9000:

  2. Install libvirt on the compute nodes using the following command:

    This installs the KVM (Kernel-based Virtual Machine) and associated packages for collecting data from virtual machines running on the compute nodes.

  3. Install Python virtualenv on the vRouter compute nodes where Contrail Insights Agent runs:

  4. Set up passwordless SSH between the Contrail Insights Platform node and the OpenStack cluster nodes. Run the following commands to generate and copy the SSH public keys to all the nodes:

Prerequisites for Agent Installation

Contrail Insights uses the libvirt library to collect data from virtual machines running on an OpenStack compute node. Run the following command on all OpenStack computes to install the library:

Configure OpenStack

Contrail Insights reads information about all projects configured in your OpenStack cluster. The software requires administrator privilege. We recommend you create a new administrator account for Contrail Insights. If you do not create a new administrator account, then you must provide the username and password of an existing administrator account during the configuration of Contrail Insights.

To create an administrator account for Contrail Insights, perform the following steps in the OpenStack Horizon dashboard:

  1. Create a user account and name it appformix.

  2. Select a new project for the user account.

  3. Select role as admin.

Install Contrail Insights

To install Contrail Insights:

  1. Download the Contrail Insights installation packages from software downloads to the Contrail Insights Platform node. Get the following files:

    If you are installing a version earlier than 3.2.6, copy the Contrail Insights license file to the Contrail Insights Platform node.

  2. Unzip contrail-insights-<version>.tar.gz. This package contains all the Ansible playbooks required to install Contrail Insights.


    The remaining steps should be executed from within the contrail-insights-<version>/ directory. Although the product name changed from "AppFormix" to "Contrail Insights," the UI and internal command paths continue to show AppFormix and will reflect the new name at a later date.

  3. Using sample_inventory as a template, create an inventory file for the installation. List the OpenStack compute nodes in the compute section and the Contrail Insights Platform node in the appformix_controller section. List the node running the OpenStack controller services in the openstack_controller section.

  4. Ensure that all of the hosts mentioned in the inventory file are reachable from the Contrail Insights Platform.

  5. Create a directory called group_vars. Create a file named all inside this directory with configuration variables required by Contrail Insights.

    If you are installing a version earlier than 3.2.6, include the path to the Contrail Insights license file in group_vars/all:

    To enable network device monitoring in the cluster, include the following in the group_vars/all file:

  6. Source the openrc file from the OpenStack controller node (/etc/contrail/openstackrc) to the Contrail Insights Platform node where the playbooks are going to be executed. The file should look like the following:

  7. Run Ansible with the created inventory file.

    The playbook should run to completion without any errors.

  8. Log in to the Contrail Insights Dashboard:

    In the Auth Service dialog box, two options are provided:


    Log in with OpenStack credentials.


    Log in with Contrail Insights credentials available at /opt/appformix/etc/appformix_token.rst on the Contrail Insights Platform node.

Optional Configuration

To install Contrail Insights certified plug-ins on the cluster, include the following variables in the group_vars/all file:


For a list of all Contrail Insights certified plug-ins that can be installed, look for the entries starting with plugin_info in the file roles/appformix_defaults/defaults/main.yml.

The OpenStack log parser plug-ins parse the API log files of each OpenStack service to collect metrics about API calls and response status codes. To install these plug-ins, add them to the variable appformix_openstack_log_plugins in group_vars/all, as shown in the example above. Each plug-in entry in this list requires a parameter called log_file_path to be specified. This parameter should be set to the complete path to the service's API log file on the OpenStack Controller node(s). Multiple comma-separated paths may be specified.

To identify the right log file to be specified in log_file_path, look for entries like the following, containing a client IP address, REST call type, and response status code:

Default locations for these files are listed in the variable appformix_openstack_log_factory_plugins in roles/appformix_defaults/defaults/main.yml.

In containerized OpenStack environments, log files are generated inside the containers running the OpenStack services. However, they have to be available on the OpenStack controller host for the Contrail Insights plug-ins to be able to read them. The path specified in log_file_path should be the location of the file on the OpenStack Controller host.


In Contrail Insights version 3.0, all OpenStack log parser plug-ins have to be specified in the variable appformix_openstack_log_plugins. When upgrading from an older version to 3.0, make sure to move all OpenStack log parser plug-ins defined under appformix_plugins to appformix_openstack_log_plugins. Also, in Contrail Insights 3.0, all entries in this list have to be specified with a log_file_path value, as described above.

Remove a Node from Contrail Insights

To remove a node from Contrail Insights:

  1. Edit the inventory file and add appformix_state=absent to each node that you want to remove from Contrail Insights.

  2. Run Ansible with the edited inventory file.

    This removes the node and all its resources from Contrail Insights.