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.