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: message_service_script_timeout
Standard: 60
Legt die maximale globale Laufzeit (in Sekunden) für Skripte fest, die vom Message Service gestartet werden. Dies ist ein globales Sicherheitslimit. Jeder Message Service kann zusätzlich einen eigenen individuellen Timeout definieren, jedoch dürfen Skripte dieses globale Limit niemals überschreiten.
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.
pool_listener {
worker 20
}
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.
pool_remote_checker {
worker 10
}
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.
pool_wtrm_checker {
worker 4
}
Parameter: pool_archive_stats
Standard: 2
In diesem Pool wird die Anzahl an Worker definiert, die stündlich Metriken aggregieren.
pool_archive_stats {
worker 2
}
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.