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 separater 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:
Für die Konfiguration sicherer TLS-Verbindungen siehe Sichere Verbindung zur Datenbank.
UTF-8 ist die einzige von Zabbix unterstützte Kodierung. Es ist bekannt, dass sie ohne Sicherheitsmängel funktioniert. Benutzer sollten sich bewusst sein, dass bei der Verwendung einiger anderer Kodierungen bekannte Sicherheitsprobleme bestehen. Zum Wechsel zu UTF-8 siehe Reparieren des Zeichensatzes und der Sortierung der Zabbix-Datenbank. Siehe auch Grenzen der Filterung 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 (mit den Kollationen utf8_bin bzw. utf8mb4_bin), damit Server/Proxy von Zabbix mit der MySQL-Datenbank ordnungsgemäß funktionieren. Für neue Installationen wird empfohlen, utf8mb4 zu verwenden.
Deterministische Auslöser müssen während des Imports des Schemas erstellt werden.
Unter MySQL und MariaDB erfordert dies, dass GLOBAL log_bin_trust_function_creators = 1 gesetzt ist, wenn das binäre Logging aktiviert ist und keine Superuser-Rechte vorhanden sind und log_bin_trust_function_creators = 1 nicht in der MySQL-Konfigurationsdatei gesetzt ist.
Wenn Sie Zabbix aus Paketen oder Containern installieren, beachten Sie die jeweiligen Anweisungen.
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 den Zeichensatz utf8mb4 als Standard (vorausgesetzt, Sie befinden sich im Stammverzeichnis der Zabbix-Quellen).
Für eine Zabbix-Proxy-Datenbank sollte nur
schema.sqlimportiert werden (kein images.sql und kein data.sql).
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# hier anhalten, wenn Sie die Datenbank für 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 nach erfolgreichem Import des Schemas deaktiviert werden:
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 Zabbix aus Paketen oder Containern installieren, beachten Sie die jeweiligen Anweisungen.
Wenn Sie Zabbix aus den Quellen installieren:
- Erstellen Sie einen Datenbankbenutzer.
Der folgende Shell-Befehl erstellt den Benutzer zabbix.
Geben Sie bei der Aufforderung ein Passwort ein 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) mit dem zuvor erstellten Benutzer als Eigentümer (-O zabbix).
sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
- Importieren Sie das anfängliche Schema und die Daten (unter der Annahme, dass Sie sich im Stammverzeichnis der Zabbix-Quellen befinden).
Für eine Zabbix-Proxy-Datenbank sollte nur
schema.sqlimportiert werden (wederimages.sqlnochdata.sql).
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# hier anhalten, wenn Sie die Datenbank für Zabbix-Proxy erstellen
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix
Die obigen Befehle sind als Beispiel angegeben und funktionieren in den meisten GNU/Linux-Installationen.
Sie können je nach Konfiguration Ihres Systems bzw. Ihrer Datenbank andere Befehle verwenden, zum Beispiel:
psql -U <username>
Wenn Sie Probleme bei der Einrichtung 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.