.. _fleio-collector: =============== Fleio collector =============== .. warning:: .. deprecated:: 2023.09.1 Fleio collector is deprecated and will be removed in the future. **fleio-collector** is an Openstack notifications forwarder based on oslo.messaging. The role of the fleio-collector service is to aggregate notifications from OpenStack services and regions and to centralize them for Fleio in a single RabbitMQ queue. You will need or want to use the fleio-collector service in one of the following scenarios: #. **You have multiple OpenStack regions.** In this case, the only way to deploy Fleio is with the fleio-collector. #. **You want to create an extra security isolation layer.** The OpenStack notifications are passed to the internal RabbitMQ service which runs in the internal OpenStack subnet. You may install Fleio on an OpenStack controller and have access to the internal RabbitMQ or you may run just the fleio-collector on a controller and forward notification messages to a RabbitMQ to another server, outside of the internal OpenStack network. Installing ---------- **fleio-collector** should be installed in each Openstack region on a server with access to the messaging broker's network. In this example we will use the RabbitMQ messaging broker. A user and password are required, with access to the exchanges and topics used by the Openstack services to send notifications, which can be created using the **rabbitmqctl** command line tool. .. code-block:: bash rabbitmqctl add_user fleio TYPEPASSWORD After creating the user, install the fleio-collector service. Ubuntu 16.04 ~~~~~~~~~~~~ .. code-block:: bash apt-get install curl software-properties-common apt-transport-https curl https://repos.fleio.com/public.key | apt-key add - add-apt-repository "deb [arch=amd64] https://repos.fleio.com/ubuntu xenial main" apt-get install fleio-collector Ubuntu 18.04 ~~~~~~~~~~~~ .. code-block:: bash apt-get install curl software-properties-common apt-transport-https curl https://repos.fleio.com/public.key | apt-key add - add-apt-repository "deb [arch=amd64] https://repos.fleio.com/ubuntu bionic main" apt-get install fleio-collector systemctl enable fleio-collector systemctl start fleio-collector Ubuntu 20.04 ~~~~~~~~~~~~ .. code-block:: bash apt-get install curl software-properties-common apt-transport-https curl https://repos.fleio.com/public.key | apt-key add - add-apt-repository "deb [arch=amd64] https://repos.fleio.com/ubuntu focal main" apt-get install fleio-collector systemctl enable fleio-collector systemctl start fleio-collector Ubuntu 22.04 ~~~~~~~~~~~~ .. code-block:: bash apt-get install curl software-properties-common apt-transport-https curl https://repos.fleio.com/public.key | apt-key add - add-apt-repository "deb [arch=amd64] https://repos.fleio.com/ubuntu jammy main" apt-get install fleio-collector systemctl enable fleio-collector systemctl start fleio-collector Centos 7 ~~~~~~~~ .. code-block:: bash yum install https://repos.fleio.com/rhel/7/fleio-collector-0.2-2.el7.x86_64.rpm yum install fleio-collector systemctl enable fleio-collector systemctl start fleio-collector Centos 8 ~~~~~~~~ .. code-block:: bash yum install https://repos.fleio.com/rhel/8/fleio-collector-0.2-2.el8.x86_64.rpm yum install fleio-collector systemctl enable fleio-collector systemctl start fleio-collector Configuring ----------- The fleio-collector default configuration file is located at: */etc/fleio/fleio_collector.conf* This file is parsed using the oslo.config package. The default options are available and commented. If you wish to change a setting, simply uncomment the line (remove the '#' from the beginning of the line). **The [DEFAULT] section** **region =** In the [DEFAULT] section, the important configuration is the **region**. The region should equal the name of the region this collector is installed in (gathering messages from). The region setting is very important because it allows Fleio to know exactly what region each resource is located in when receiving notifications. **control_exchange =** The name of the exchange the collector will use/create when listening for notifications. The default name is **fleio** **The [listener] section** The **listener** section contains configuration options for the collector's notifications listener. **messaging_urls =** The **messaging_urls** are URLs used by the collector to connect and listen for notifications on the Openstack messaging broker. We can add as many *messaging_urls* as we need. For example, if we have multiple virtual hosts, for each Openstack service, we would use: .. code-block:: bash messaging_urls = rabbit://username:password@rabbitmqHost//nova messaging_urls = rabbit://username:password@rabbitmqHost//neutron messaging_urls = rabbit://username:password@rabbitmqHost//glance messaging_urls = rabbit://username:password@rabbitmqHost//cinder assuming /nova, /neutron, /glance and /cinder are virtual hosts on the messaging broker. **topic =** and **exchanges =** The exchange and the topic to listen to. In a standard Openstack setup the topic is *notifications* and the exchanges equals *nova, glance, neutron, openstack, cinder, keystone, magnum, trove* **pool =** The pool settings should be set to a valid name (for example 'fleio') if Ceilometer is installed or another service is listening on the same topic as the collector. Setting the pool prevents multiple listeners from loosing notifications. **The [oslo_messaging_notifications] section** In this section we set the notifications dispatcher options. The dispatcher forwards any notifications received, to a central broker where updated can connect to. We will set the *topics* where notifications are forwarded, the driver (usually 'messaging') and the *transport_url*. The transport_url is a complete URL also containing the username and password. For example: .. code-block:: bash transport_url = rabbit://user:password@central_rabbit_host:5672/ Additional notifications filters can be setup using python regular expressions to match notifications metadata and content. The filters may help reducing the number of notifications that need to be forwarded and improve performance. We do however recommend to start without filters and add them later, if required.