1 Tworzenie bazy danych

Omówienie

Baza danych Zabbix musi zostać utworzona podczas instalacji serwera Zabbix lub proxy.

Ta sekcja zawiera instrukcje tworzenia bazy danych Zabbix. Dla każdej obsługiwanej bazy danych dostępny jest osobny zestaw instrukcji.

Aby poprawić bezpieczeństwo bazy danych poprzez tworzenie ról/użytkowników bazy danych z minimalnymi uprawnieniami, zobacz najlepsze praktyki tworzenia bazy danych dla każdej obsługiwanej bazy danych:

Informacje dotyczące konfigurowania bezpiecznych połączeń TLS znajdują się w sekcji Bezpieczne połączenie z bazą danych.

UTF-8 jest jedynym kodowaniem obsługiwanym przez Zabbix. Wiadomo, że działa bez żadnych luk bezpieczeństwa. Użytkownicy powinni mieć świadomość, że w przypadku używania niektórych innych kodowań występują znane problemy bezpieczeństwa. Informacje o przełączaniu na UTF-8 znajdują się w sekcji Naprawianie zestawu znaków i porównywania bazy danych Zabbix. Zobacz także Ograniczenia filtrowania z użyciem porównań utf8mb4.

Jeśli instalujesz z repozytorium Git Zabbix, przed przejściem do kolejnych kroków musisz uruchomić następujące polecenie:

make dbschema

MySQL/MariaDB

Zestawy znaków utf8 (znany także jako utf8mb3) i utf8mb4 są obsługiwane (odpowiednio z sortowaniem utf8_bin i utf8mb4_bin), aby serwer/proxy Zabbix działały poprawnie z bazą danych MySQL. Zaleca się używanie utf8mb4 w nowych instalacjach.

Podczas importu schematu należy utworzyć deterministyczne wyzwalacze. W MySQL i MariaDB wymaga to ustawienia GLOBAL log_bin_trust_function_creators = 1, jeśli włączone jest binarne logowanie, nie ma uprawnień superużytkownika, a log_bin_trust_function_creators = 1 nie jest ustawione w pliku konfiguracyjnym MySQL.

Jeśli instalujesz Zabbix z pakietów lub kontenerów, zapoznaj się z odpowiednimi instrukcjami.

Jeśli instalujesz Zabbix ze źródeł:

  • Utwórz i skonfiguruj bazę danych oraz użytkownika.
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;
  • Zaimportuj dane do bazy danych i ustaw zestaw znaków utf8mb4 jako domyślny (zakładając, że znajdujesz się w katalogu głównym źródeł Zabbix). W przypadku bazy danych proxy Zabbix należy zaimportować tylko schema.sql (bez images.sql ani data.sql).
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# stop here if you are creating database for Zabbix proxy
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql

log_bin_trust_function_creators można wyłączyć po pomyślnym zaimportowaniu schematu:

mysql -uroot -p<password>

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

PostgreSQL

Musisz mieć użytkownika bazy danych z uprawnieniami do tworzenia obiektów bazy danych.

Jeśli instalujesz Zabbix z pakietów lub kontenerów, zapoznaj się z odpowiednimi instrukcjami.

Jeśli instalujesz Zabbix ze źródeł:

  • Utwórz użytkownika bazy danych.

Poniższe polecenie powłoki utworzy użytkownika zabbix. Podaj hasło, gdy zostaniesz o nie poproszony, i powtórz hasło (uwaga: najpierw możesz zostać poproszony o hasło sudo):

sudo -u postgres createuser --pwprompt zabbix
  • Utwórz bazę danych.

Poniższe polecenie powłoki utworzy bazę danych zabbix (ostatni parametr) z wcześniej utworzonym użytkownikiem jako właścicielem (-O zabbix).

sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
  • Zaimportuj początkowy schemat i dane (zakładając, że znajdujesz się w katalogu głównym źródeł Zabbix). W przypadku bazy danych Zabbix proxy należy zaimportować tylko schema.sql (bez images.sql ani data.sql).
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# zatrzymaj się tutaj, jeśli tworzysz bazę danych dla Zabbix proxy
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix

Powyższe polecenia są podane jako przykład, który zadziała w większości instalacji GNU/Linux. Możesz użyć innych poleceń w zależności od konfiguracji systemu/bazy danych, na przykład:

psql -U <username>

Jeśli masz jakiekolwiek problemy z konfiguracją bazy danych, skonsultuj się z administratorem bazy danych.

TimescaleDB

Instrukcje dotyczące tworzenia i konfiguracji TimescaleDB znajdują się w osobnej sekcji.

SQLite

Używanie SQLite jest obsługiwane tylko dla Zabbix proxy!

Baza danych zostanie utworzona automatycznie, jeśli nie istnieje.

Wróć do sekcji instalacji.