Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Installing AppFormix for OpenStack


AppFormix provides resource control and visibility for hosts and virtual machines in an OpenStack environment. This topic explains how to install AppFormix for OpenStack. See the AppFormix General Requirements before reading this section.


AppFormix provides resource control and visibility for hosts, containers, and virtual machines in your cloud infrastructure. Figure 1 shows the AppFormix architecture with OpenStack.

Figure 1: AppFormix Architecture with OpenStack
AppFormix Architecture
with OpenStack
  • Agent monitors resource usage on the compute nodes.

  • Controller offers REST APIs to configure the system.

  • DataManager stores data from multiple Agents.

  • Dashboard provides a Web-based user interface.

  • An adapter discovers platform-specific resources and configures the AppFormix Controller.

  • Adapters exist for OpenStack, Kubernetes, and Amazon EC2.

Installing AppFormix

To install AppFormix:

  1. Install Ansible on the AppFormix Controller node. Ansible will install docker and docker-py on the controller.
  2. On the vRouter compute nodes where AppFormix Agent runs verify that python virtualenv is installed.
  3. Enable passwordless login to facilitate AppFormix Controller node with Ansible to install agents on the nodes. Run the same command on the AppFormix Controller node also.
  4. Use the Sample_Inventory file as a template to create a host file.
  5. Verify that all the hosts listed in the inventory file are reachable from the AppFormix Controller.
  6. At the top-level of the distribution, create a directory named group_vars.
  7. Every installation requires an authorized license file and Docker images. In group_vars directory, create a file named all. Add the following:
  8. To install AppFormix certified plugins on the cluster, include the following variables in the group_vars/all file:

    For example:

    For a list of all AppFormix certified plugins 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 plugins parse the API log files of each OpenStack service to collect metrics about API calls and response status codes. To install these plugins, add them to the variable appformix_openstack_log_plugins in group_vars/all, as shown above. Each plugin 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 AppFormix 3.0, all OpenStack log parser plugins 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 plugins defined under appformix_plugins to appformix_openstack_log_plugins. Also, in AppFormix 3.0, all entries in this list have to be specified with a log_file_path value, as described above.

  9. Source the openrc file from the OpenStack controller node (/etc/contrail/openstackrc) to the AppFormix Controller to authenticate the adapter to access admin privileges over the controller services.
  10. Run Ansible with the created inventory file.

Removing a Node from AppFormix

To remove a node from AppFormix:

  1. Edit the inventory file and add appformix_state=absent to each node that you want to remove from AppFormix.
  2. Run Ansible with the edited inventory file. This will remove the node and all its resources from AppFormix.