Manage Centreon Broker link failures

This post is also available in: French

Centreon Broker is the link between monitoring scheduler and MySQL to store collected data. But Centreon Broker is first of all a multi-input and multi-output manager.

What are Centreon Broker’s components?

To connect to Centreon central server, the Centreon Engine scheduler loads the Centreon Broker mode “cbmod”. This client is in charge to forward to the Centreon server the data collected by the monitoring engine. If a link failure appears, data have to be stored locally on disk to be forwarded when connection is established.

centreon_broker_full-1

To do this, simply configure a “File” type output in addition to your “(IPv4 or IPv6)” main output and link the “File” output to your main output.

The information to be filled is the following ones:

  • Name: the name of this output. This name will be to fill on main output for « Failover name » field;
  • File path : complete path to the buffer file on disk;
  • Serialization protocol : BBDO (set the same protocol than your main output);
  • Maximum size of file : set 100000000 for 100MB max size per buffer file;

Notice: The name of the buffer (“Failover name” field) must be exactly the same the “file” type output name. Otherwise the second output will be considered as a main output and Centreon Broker will generate automatically this buffer file and update it with collected data. This can saturate the disk.

centreon_broker_module

Data from pollers are received by “Centreon Broker Master” module (also named “Centreon Broker SQL”). This module is in charge to store real time data into SQM data as the performance data too. Moreover, this module forwards the performance data to the Centreon Broker RRD module in order to store these into RRD files.
Three main outputs have to be configured to have a linked buffer to them.

Repeat the same procedure for each main output:

centreon_broker_sql_1centreon_broker_sql_2centreon_broker_sql_3

The “Centreon Master RRD” module (also named “Centreon Broker RRD”) receives data from “Centreon Broker SQL” to update RRD files. This action allows to generate performance graphs in Centreon GUI for operators.

The unique « RRD file generator » main output have to be configured also to have a buffered output linked to it as the same manner as above.

centreon_broker_rrd

The main outputs of each Centreon Broker module have now buffered output linked to them and data will be store locally on disk in case of link failures. If the size of the buffer file is reached, Centreon Broker will be assured a rotation of file.

Management of stream types

Unlike NDOutils, the Centreon Broker allows to manage stream transmitted between two modules. Thus it is possible to reduce the number of elements to be processed by a module. This process also reduces the data transferred over the network and reduces the load and CPU and memory consumption on server.

Stream types are the following ones:

  • Correlation: data used by the “Centreon Broker Correlation” module;
  • NEB: real time monitoring data (status and state of hosts and services, …);
  • Storage: performance data.

The following diagram describes in bold for each output the stream types to be transmitted to next Centreon Broker module:

centreon_broker_full-2

To filter the data, just set for each output module types to be transferred:

centreon_broker_type_filteredIn this example, only the “Storage” data type (performance data) will be forward to the Centreon Broker RRD module for insertion into the RRD files.

How Centreon Broker manages large data in input?

What happen if the data processing by the broker module is slower than the flow of input data? To avoid excessive memory consumption to store data, Centreon Broker defines the notion of “Event Queue Max Size”. This for each broker module:”cbmod”, “Centreon Broker SQL” and “”Centreon Broker RRD”.

Set a value, eg 50000 and made the same for each module:

centreon_broker_queue

What do you do if Centreon Broker generates continuously buffer files?

If Centreon Broker continuously generates buffers and files if they are not removed, it may be because:

  • The name of the “file” output is not exactly the same than the “Failover name” field” in main output linked;
  • The server does not have enough capacity to process input data and this generates retention files (size of the queue is reached). Move some services on another pollers to reduce data processed;
  • One of the broker outputs is perpetually in non OK state due to link failures. In this case correct output issue.

Have a good configuration!!!

Leave a Reply