Datenbank, Datastore, Backup

Bloonix benötigt 2 Datenbanken. Eine Datenbank fürs Management, eine weitere Datenbank zur Speicherung der Metriken. Für eine bessere Performance werden die Metriken in Partitionen gespeichert, eine Partition pro Tag wird dabei verwendet.

Zur Installation der Datenbank und der Einrichtung des Backup Skripts für den Datastore wird das Paket bloonix-webgui-schema benötigt.

Datenbank

Die Datenbank für das Management wird standardmäßig mit dem User und dem Datenbanknamen blxdb erstellt. Hierzu muss in das Verzeichnis /usr/share/bloonix/schema/ gewechselt werden, wo die Skripte zur Erstellung der Datenbanken liegen.

cd /usr/share/bloonix/schema/
./init-postgresql-database -i -m -o /etc/bloonix/database/main.conf

Datastore

Der Datenstore, indem die Metriken gespeichert werden, wird auf ähnliche Weise erstellt. Der Benutzer und der Datenbankname sind standardmäßig blxds.

cd /usr/share/bloonix/schema/
./init-postgresql-database -i -d -o /etc/bloonix/datastore/main.conf

Backup

Das Backup der Management Datenbank kann ganz einfach mit den typischen Tools pg_dump und mysqldump erstellt werden. Für den Datastore bietet Bloonix eigene Skripte zum Backup und für den Restore an. Diese Skripts lauten:

  • bloonix-datastore-backup
  • bloonix-datastore-restore

Ein Cronjob kann für das Backupskript mit einem Intervall von 15 Minuten eingerichtet werden. Das Backup wird inkrementell unterhalb von /var/backup/bloonix-datastore gespeichert.

Welches DBMS sollte eingesetzt werden

Aktuell wird PostgreSQL als Datenbanksystem empfohlen und vollständig unterstützt. Der Support für MariaDB und MySQL ist nur eingeschränkt möglich – aus mehreren Gründen.

Ein Grund ist, dass die in den Repositories von Debian und Rocky Linux verfügbaren Python-Module für MySQL und MariaDB Probleme im Umgang mit Spalten vom Typ JSON haben. Daher müssen passende Module aus externen Quellen installiert werden.

Für MySQL ist das Modul mysql-connector erforderlich, das über die offizielle Webseite von mysql.com bezogen werden muss. Bei der Verwendung von MariaDB muss das Python-Modul mariadb manuell per pip installiert werden:

pip3 install mariadb

Ein weiterer Grund für die Empfehlung von PostgreSQL ist die deutlich bessere Performance – insbesondere bei größeren Setups mit vielen Metriken zeigt PostgreSQL im Vergleich zu MySQL oder MariaDB eine spürbar höhere Effizienz.