1 Tworzenie bazy danych
Przegląd
Baza danych Zabbix musi zostać utworzona podczas instalacji serwera lub proxy Zabbix.
Ta sekcja zawiera instrukcje dotyczące tworzenia bazy danych Zabbix. Dla każdej obsługiwanej bazy danych dostępny jest osobny zestaw instrukcji.
Aby zwiększyć bezpieczeństwo bazy danych przez utworzenie ról/użytkowników bazy danych z minimalnymi uprawnieniami, zobacz najlepsze praktyki tworzenia bazy danych dla każdej obsługiwanej bazy danych:
Aby skonfigurować bezpieczne połączenia TLS, zobacz 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ń istnieją znane problemy bezpieczeństwa. Informacje o przełączeniu na UTF-8 można znaleźć w sekcji Naprawa zestawu znaków i porównywania bazy danych Zabbix. Zobacz także Ograniczenia filtrowania przy użyciu 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 (znane także jako utf8mb3) oraz utf8mb4 są obsługiwane (odpowiednio z porównywaniem utf8_bin i utf8mb4_bin), aby serwer/proxy Zabbix działał poprawnie z bazą danych MySQL. W przypadku nowych instalacji zaleca się użycie utf8mb4.
Deterministyczne wyzwalacze muszą zostać utworzone podczas importu schematu.
W MySQL i MariaDB wymaga to ustawienia GLOBAL log_bin_trust_function_creators = 1, jeśli logowanie binarne jest włączone, nie ma uprawnień superusera, a log_bin_trust_function_creators = 1 nie jest ustawione w pliku konfiguracyjnym MySQL.
Jeśli instalujesz zabbix z pakietów, przejdź do instrukcji dla swojej platformy.
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
# zatrzymaj się tutaj, jeśli tworzysz bazę danych dla proxy Zabbix
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql
Po pomyślnym zaimportowaniu schematu log_bin_trust_function_creators można wyłączyć:
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, przejdź do instrukcji dla swojej platformy.
Jeśli instalujesz Zabbix ze źródeł:
- Utwórz użytkownika bazy danych.
Poniższe polecenie powłoki utworzy użytkownika zabbix.
Po wyświetleniu monitu podaj hasło i powtórz je (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), a wcześniej utworzony użytkownik będzie jej 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 jesteś w katalogu głównym źródeł Zabbix).
Dla bazy danych proxy Zabbix 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 proxy Zabbix
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix
Powyższe polecenia podano jako przykład, który będzie dział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.