Configuration of the Bloonix-Server

The configuration of the Bloonix server is in the file /etc/bloonix/server/main.conf. Most parameters, such as paths, should only be adjusted under special conditions.

Parameter: webgui_domain

Default: auto

The domain of the WebGUI is set here. The domain can be used in message templates in the WebGUI.

Parameter: user, group

Default: bloonix

The Bloonix-Server runs by default with the user and group bloonix.

Parameter: message_service_script_path

Default: /usr/lib/bloonix/message-service, /usr/local/lib/bloonix/message-service

The path is set under which the scripts for sending messages (SMS, Mail, HTTP) are located.

Parameter: plugins

Default: /usr/lib/bloonix/plugins, /usr/local/lib/bloonix/plugins

The plugins are usually located under /usr/lib if they were installed from a package (deb, rpm). Self-developed scripts can be stored under /usr/local if they are installed manually.

Parameter: plugin_cache_dir

Default: /var/lib/bloonix/plugins

Some plugins create cache files. Here you define the path where the cache files are stored.

Section: listener

Here the server settings for the listener pool are set to answer the requests of the Bloonix agents.

Parameter: port

The port number on which the server should listen for incoming requests.

Parameter: use_ssl

Default: no

By default, SSL is turned off. However, SSL should be turned on in every setup.

Parameter: ssl_key_file

Specifying the private SSL key.

Parameter: ssl_cert_file

Specifying the public SSL key.

Parameter: ssl_dh_params

Specify the Diffie-Hellman key, if required. A key can be generated as follows:

openssl dhparam -out /etc/bloonix/server/dhparam.pem 2048

Parameter: ssl_protocol

Default: ssl.create_default_context(), see (https://docs.python.org/3/library/ssl.html)

p.Specifies the lowest SSL/TLS protocol version.

Paremeter: compression

Default: zlib, gzip

The parameter compression defines a comma-separated list of methods that the Bloonix-Server accepts for compressing data with the Bloonix-Agent. Allowed methods are:

  • zlib
  • gzip
  • brotli
  • lz4

Parameter: ssl_cipher_suite

Default: ssl.create_default_context(), see (https://docs.python.org/3/library/ssl.html)

A list of available ciphersuites can be obtained as follows:

python3 -c 'import ssl; print(ssl.SSLContext().get_ciphers())'

Parameter: pool_listener

Default: 20

This defines the number of processes that listen on the port defined in the listener section. The processes process the requests from the Bloonix agents.

Parameter: pool_remote_checker

Default: 10

This pool determines how many processes are started to perform service checks that were defined as Remote Check in the WebGUI. This also includes the services that are checked via satellites.

Parameter: pool_wtrm_checker

Default: 4

Only web transactions are executed in this pool. Web transactions require more CPU power, so this value should be increased carefully.

Section: server_status

If the server status is activated, the Bloonix server itself can be monitored, e.g. by another monitoring system. For security reasons, an authkey should be set.

The status is retrieved simply via TCP/IP. Example:

telnet localhost 5460
{"action":"server-status"}

The response is the status of the processes of each individual pool:

{"status":"ok","data":{
  "db_manager":{"requests":0,"initiazing":1,"waiting":0,"reading":0,"processing":0,"sending":0,"total":1},
  "keepalived":{"requests":0,"initiazing":1,"waiting":0,"reading":0,"processing":0,"sending":0,"total":1},
  "remote_scheduler":{"requests":0,"initiazing":1,"waiting":0,"reading":0,"processing":0,"sending":0,"total":1},
  "remote_checker":{"requests":0,"initiazing":1,"waiting":0,"reading":0,"processing":0,"sending":0,"total":1},
  "timeout_scheduler":{"requests":0,"initiazing":1,"waiting":0,"reading":0,"processing":0,"sending":0,"total":1},
  "timeout_checker":{"requests":0,"initiazing":0,"waiting":2,"reading":0,"processing":0,"sending":0,"total":2},
  "listener":{"requests":2,"initiazing":0,"waiting":2,"reading":0,"processing":2,"sending":0,"total":4},
  "wtrm_scheduler":{"requests":0,"initiazing":1,"waiting":0,"reading":0,"processing":0,"sending":0,"total":1},
  "wtrm_worker":{"requests":0,"initiazing":0,"waiting":4,"reading":0,"processing":0,"sending":0,"total":4}
}}

Section: queue

The queue is needed for distributing service checks and for determining the cluster manager. Currently, only Redis is supported. Of course, forks of Redis or compatible queues can also be used.

Parameter: driver

Currently only redis is supported.

Parameter: host

Parameter: port

Section: database, datastore

Access to the databases is configured in these sections. Only the metrics are located in the datastore.

Parameter: host

Parameter: port

Parameter: database

Parameter: user, password

It is recommended to save the configuration in the files provided for it, since other tools besides the Bloonix server also access the configuration files, such as the backup script for the datastore or the importer for plugins.

  • /etc/bloonix/database/main.conf
  • /etc/bloonix/datastore/main.conf

Both files are then included in the configuration of the Bloonix server.

Section: logger

Logging is defined in the logger section.

The following levels are available:

  • emergency
  • alert
  • critical
  • error,
  • warning
  • notice
  • info
  • debug

The following patterns are available:

%L   Log level
%T   Timestamp
%P   PID
%H   Hostname
%U   User name
%G   Group name
%N   Newline
%S   Program name
%C   Caller - filename and line number
%r   Runtime in seconds since program start
%t   Time measurement - the time since the last call of log()
%m   Message

Section: environ

The environ section can be used to set environment variables for the Bloonix server.

Parameter: include

Directories can be included using the include parameter. All files with the extension .conf are included.