1 Creazione del database
Panoramica
Un database Zabbix deve essere creato durante l'installazione di Zabbix server o proxy.
Questa sezione fornisce istruzioni per creare un database Zabbix. Per ciascun database supportato è disponibile un insieme separato di istruzioni.
Per migliorare la sicurezza del database creando ruoli/utenti del database con privilegi minimi, vedere le best practice per la creazione del database per ciascun database supportato:
Per configurare connessioni TLS sicure, vedere Secure connection to the database.
UTF-8 è l'unica codifica supportata da Zabbix. È noto che funziona senza alcuna vulnerabilità di sicurezza. Gli utenti devono essere consapevoli che esistono problemi di sicurezza noti se si utilizzano alcune delle altre codifiche. Per passare a UTF-8, vedere Repairing Zabbix database character set and collation. Vedere anche Limits of filtering with utf8mb4 collations.
Se si esegue l'installazione da Zabbix Git repository, è necessario eseguire il seguente comando prima di procedere ai passaggi successivi:
make dbschema
MySQL/MariaDB
I set di caratteri utf8 (noto anche come utf8mb3) e utf8mb4 sono supportati (rispettivamente con le regole di confronto utf8_bin e utf8mb4_bin) affinché il server/proxy Zabbix funzioni correttamente con i database MySQL/MariaDB.
Per evitare problemi futuri, è fortemente consigliato utilizzare il set di caratteri utf8mb4 con la regola di confronto utf8mb4_bin sia per le installazioni nuove che per quelle esistenti.
Si consiglia di convertire i database che utilizzano il set di caratteri utf8mb3 e la regola di confronto utf8mb3_bin nel set di caratteri utf8mb4 e nella regola di confronto utf8mb4_bin, come descritto in Riparazione del set di caratteri e della regola di confronto del database Zabbix.
I trigger deterministici devono essere creati durante l'importazione dello schema.
In MySQL e MariaDB, ciò richiede che GLOBAL log_bin_trust_function_creators = 1 sia impostato se la registrazione binaria è abilitata, non si dispone dei privilegi di superutente e log_bin_trust_function_creators = 1 non è impostato nel file di configurazione di MySQL.
Se si installa Zabbix dai pacchetti o dai container, consultare le istruzioni corrispondenti.
Se si installa Zabbix dai sorgenti:
- Creare e configurare un database e un utente. Per motivi di sicurezza, utilizzare una password complessa e univoca per l'utente del database Zabbix.
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;
- Importare i dati nel database e impostare il set di caratteri utf8mb4 come predefinito (supponendo di trovarsi nella directory principale dei sorgenti di Zabbix).
Per un database proxy Zabbix, deve essere importato solo
schema.sql(nonimages.sqlné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 può essere disabilitato dopo che lo schema è stato importato correttamente:
mysql -uroot -p<password>
mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;
PostgreSQL
È necessario disporre di un utente del database con i permessi per creare oggetti del database.
Se stai installando Zabbix da pacchetti o container, consulta le rispettive istruzioni.
Se stai installando Zabbix dai sorgenti:
- Crea un utente del database.
Il seguente comando shell creerà l'utente zabbix.
Specifica una password quando richiesto e ripeti la password (nota che potresti prima essere richiesto di inserire la password di sudo):
sudo -u postgres createuser --pwprompt zabbix
- Crea un database.
Il seguente comando shell creerà il database zabbix (ultimo parametro) con l'utente creato in precedenza come proprietario (-O zabbix).
sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
- Importa lo schema iniziale e i dati (supponendo che tu sia nella directory root dei sorgenti di Zabbix).
Per un database di Zabbix proxy, deve essere importato solo
schema.sql(nonimages.sqlnédata.sql).
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# fermati qui se stai creando il database per Zabbix proxy
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix
I comandi sopra sono forniti come esempio e funzioneranno nella maggior parte delle installazioni GNU/Linux.
Puoi usare comandi diversi a seconda di come è configurato il tuo sistema/database, ad esempio:
psql -U <username>
Se hai problemi nella configurazione del database, consulta l'amministratore del database.
TimescaleDB
Le istruzioni per creare e configurare TimescaleDB sono fornite in una sezione separata.
Oracle
Le istruzioni per creare e configurare un database Oracle sono fornite in una sezione separata.
SQLite
L'uso di SQLite è supportato solo per Zabbix proxy!
Il database verrà creato automaticamente se non esiste.
Torna alla sezione di installazione.