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.