Fleio collector¶
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.
rabbitmqctl add_user fleio TYPEPASSWORD
After creating the user, install the fleio-collector service.
Ubuntu 16.04¶
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¶
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¶
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¶
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¶
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¶
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:
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
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:
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.
Alternatives¶
An alternative to using the fleio-collector service is to use the broker’s specific forwarding implementation. For example RabbitMQ has the Shovel plugin that can be manually setup to forward messages from each broker to a single RabbitMQ server where updated can connect. Advantages here are the possibility of using SSL encryption for messages sent over the wire using plugin maintained and tested by the RabbitMQ team.