Konfiguration des Bloonix-Servers

Die Konfiguration des Bloonix-Servers liegt in der Datei /etc/bloonix/server/main.conf. Die meisten Parameter, wie zum Beispiel Pfade, sollten nur unter speziellen Bedingungen angepasst werden.

Parameter: webgui_domain

Standard: auto

Hier wird die Domain der WebGUI gesetzt. Die Domain kann in Nachrichtentemplates in der WebGUI verwendet werden.

Parameter: user, group

Standard: bloonix

Der Bloonix-Server läuft standardmäßig unter dem Benutzer und der Gruppe bloonix.

Parameter: message_service_script_path

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

Es wird der Pfad gesetzt unter dem die Skripte zum Versenden von Nachrichten (SMS, Mail, HTTP) liegen.

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.

Sektion: listener

Hier werden die Servereinstellungen für den Listener Pool gesetzt, um die Anfragen der Bloonix Agenten zu beantworten.

Parameter: port

Die Portnummer, auf die der Server für eingehende Anfragen lauschen soll.

Parameter: use_ssl

Standard: no

Standardmäßig ist SSL ausgeschaltet. SSL sollte jedoch in jedem Setup eingeschaltet sein.

Parameter: ssl_key_file

Angabe des privaten SSL Schlüssels.

Parameter: ssl_cert_file

Angabe des öffentlichen SSL Schlüssels.

Parameter: ssl_dh_params

Angabe des Diffie-Hellman Schlüssels, falls gewünscht. Ein Schlüssel kann wie folgt generiert werden:

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

Parameter: ssl_protocol

Standard: ssl.create_default_context(), siehe (https://docs.python.org/3/library/ssl.html)

Angabe der niedrigsten SSL/TLS Protokoll Version.

Parameter: ssl_cipher_suite

Standard: ssl.create_default_context(), siehe (https://docs.python.org/3/library/ssl.html)

Eine Liste der verfügbaren Ciphersuites lässt sich wie folgt ermitteln:

Paremeter: compression

Standard: zlib, gzip

Mit dem Parameter compression wird eine komma-separierte Liste definiert mit Methoden, die der Bloonix-Server für die Komprimierung von Daten akzeptiert. Erlaubte Methoden sind:

  • zlib
  • gzip
  • brotli
  • lz4
python3 -c 'import ssl; print(ssl.SSLContext().get_ciphers())'

Parameter: pool_listener

Standard: 20

Hier wird die Anzahl an Prozessen definiert, die sich auf den Port hängen, der in der Sektion listener definiert wurde. Die Prozesse verarbeiten die Anfragen der Bloonix Agenten.

Parameter: pool_remote_checker

Standard: 10

Im diesem Pool wird festgelegt wieviele Prozesse gestartet werden um Service-Checks auszuführen, die als Remote Check in der WebGUI definiert wurden. Dazu zählen auch die Services, welche über Satelliten geprüft werden.

Parameter: pool_wtrm_checker

Standard: 4

In diesem Pool werden ausschließlich Web-Transaktionen ausgeführt. Web-Transaktionen benötigen eine höhere CPU Leistung, daher sollte dieser Wert vorsichtig erhöht werden.

Sektion: server_status

Ist der Server Status aktiviert, so kann der Bloonix-Server selbst überwacht werden, z.B. von einem anderen Monitoring System. Aus Sicherheitsgründen sollte ein authkey gesetzt werden.

Der Abruf des Status erfolg simple über TCP/IP. Beispiel:

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

Als Antwort wird der Status der Prozesse jedes einzelnen Pools ausgegeben:

{"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}
}}

Sektion: queue

Die Queue wird für die Verteilung von Service-Checks sowie zur Ermittlung des Clustermanagers benötigt. Derzeit wird lediglich Redis unterstützt. Natürlich können auch Forks von Redis oder kompatible Queues eingesetzt werden.

Parameter: driver

Derzeit wird nur redis unterstützt.

Parameter: host

Parameter: port

Sektion: database, datastore

In diesen Sektionen wird der Zugang zu den Datenbanken konfiguriert. Im Datastore liegen lediglich die Metriken.

Parameter: host

Parameter: port

Parameter: database

Parameter: user, password

Es ist empfehlenswert die Konfiguration in den dafür vorgesehenen Dateien abzulegen, da neben dem Bloonix-Server noch andere Tools auf die Konfigurationsdateien zugreifen, wie zum Bespiel das Backupskript für den Datastore oder der Importer für Plugins.

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

Beide Dateien werden dann in der Konfiguration des Bloonix-Servers inkludiert.

Sektion: logger

In der Sektion logger wird das Logging festgelegt.

Folgende Level stehen zur Verfügung:

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

Es stehen folgende Pattern zur Verfügung:

%L   Log Level
%T   Zeitstempel
%P   PID
%H   Hostname
%U   Benutzername
%G   Gruppenname
%N   Neue Zeile
%S   Name des Programms
%C   Aufrufer - Dateiname und Zeilennummer
%r   Laufzeit in Sekunden seit Programmstart
%t   Zeitmessung - die Zeit seit dem letzten Aufruf von log()
%m   Nachricht

Sektion: environ

Über die Sektion environ lassen sich Umgebungsvariablen für den Bloonix Server setzen.

Parameter: include

Über den Parameter include können Verzeichnisse inkludiert werden. Alle Dateien mit der Endung .conf werden inkludiert.