Close

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.