1 Datenbankerstellung

Übersicht

Während der Installation von Zabbix Server oder Proxy muss eine Zabbix-Datenbank erstellt werden.

Dieser Abschnitt enthält Anweisungen zum Erstellen einer Zabbix-Datenbank. Für jede unterstützte Datenbank steht ein eigener Satz von Anweisungen zur Verfügung.

Um die Sicherheit der Datenbank zu verbessern, indem Datenbankrollen/-benutzer mit minimalen Berechtigungen erstellt werden, siehe die Best Practices zur Datenbankerstellung für jede unterstützte Datenbank:

Informationen zum Konfigurieren sicherer TLS-Verbindungen finden Sie unter Sichere Verbindung zur Datenbank.

UTF-8 ist die einzige von Zabbix unterstützte Kodierung. Es ist bekannt, dass sie ohne Sicherheitslücken funktioniert. Benutzer sollten sich bewusst sein, dass bei Verwendung einiger anderer Kodierungen bekannte Sicherheitsprobleme bestehen. Informationen zum Wechsel zu UTF-8 finden Sie unter Reparieren von Zeichensatz und Sortierung der Zabbix-Datenbank. Siehe auch Einschränkungen beim Filtern mit utf8mb4-Sortierungen.

Wenn Sie aus dem Zabbix Git repository installieren, müssen Sie vor dem Fortfahren mit den nächsten Schritten den folgenden Befehl ausführen:

make dbschema

MySQL/MariaDB

Die Zeichensätze utf8 (auch bekannt als utf8mb3) und utf8mb4 werden unterstützt (jeweils mit der Sortierung utf8_bin bzw. utf8mb4_bin), damit Zabbix Server/Proxy ordnungsgemäß mit der MySQL-Datenbank funktioniert. Für neue Installationen wird die Verwendung von utf8mb4 empfohlen.

Deterministische Auslöser müssen beim Import des Schemas erstellt werden. Unter MySQL und MariaDB erfordert dies, dass GLOBAL log_bin_trust_function_creators = 1 gesetzt wird, wenn die binäre Protokollierung aktiviert ist, keine Superuser-Berechtigungen vorhanden sind und log_bin_trust_function_creators = 1 nicht in der MySQL-Konfigurationsdatei gesetzt ist.

Wenn Sie aus Zabbix-Paketen installieren, folgen Sie den Anweisungen für Ihre Plattform.

Wenn Sie Zabbix aus den Quellen installieren:

  • Erstellen und konfigurieren Sie eine Datenbank und einen Benutzer.
mysql -uroot -p<password>

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'localhost' identified by '<password>';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
mysql> quit;
  • Importieren Sie die Daten in die Datenbank und setzen Sie utf8mb4 als Standardzeichensatz (vorausgesetzt, Sie befinden sich im Stammverzeichnis der Zabbix-Quellen). Für eine Zabbix-Proxy-Datenbank sollte nur schema.sql importiert werden (weder images.sql noch data.sql).
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# hier stoppen, wenn Sie eine Datenbank für den Zabbix Proxy erstellen
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql

log_bin_trust_function_creators kann deaktiviert werden, nachdem das Schema erfolgreich importiert wurde:

mysql -uroot -p<password>

mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;

PostgreSQL

Sie benötigen einen Datenbankbenutzer mit Berechtigungen zum Erstellen von Datenbankobjekten.

Wenn Sie die Installation aus Zabbix-Paketen durchführen, folgen Sie den Anweisungen für Ihre Plattform.

Wenn Sie Zabbix aus den Quellen installieren:

  • Erstellen Sie einen Datenbankbenutzer.

Der folgende Shell-Befehl erstellt den Benutzer zabbix. Geben Sie bei Aufforderung ein Passwort an und wiederholen Sie das Passwort (beachten Sie, dass Sie möglicherweise zuerst nach dem sudo-Passwort gefragt werden):

sudo -u postgres createuser --pwprompt zabbix
  • Erstellen Sie eine Datenbank.

Der folgende Shell-Befehl erstellt die Datenbank zabbix (letzter Parameter), wobei der zuvor erstellte Benutzer als Eigentümer verwendet wird (-O zabbix).

sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
  • Importieren Sie das anfängliche Schema und die Daten (vorausgesetzt, Sie befinden sich im Stammverzeichnis der Zabbix-Quellen). Für eine Zabbix-Proxy-Datenbank sollte nur schema.sql importiert werden (weder images.sql noch data.sql).
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# hier stoppen, wenn Sie eine Datenbank für den Zabbix-Proxy erstellen
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix

Die obigen Befehle dienen als Beispiel und funktionieren in den meisten GNU/Linux-Installationen. Je nachdem, wie Ihr System/Ihre Datenbank konfiguriert ist, können Sie auch andere Befehle verwenden, zum Beispiel:

psql -U <username>

Falls Sie Probleme beim Einrichten der Datenbank haben, wenden Sie sich bitte an Ihren Datenbankadministrator.

TimescaleDB

Anweisungen zum Erstellen und Konfigurieren von TimescaleDB finden Sie in einem separaten Abschnitt.

SQLite

Die Verwendung von SQLite wird nur für Zabbix Proxy unterstützt!

Die Datenbank wird automatisch erstellt, wenn sie nicht existiert.

Kehren Sie zum Installationsabschnitt zurück.