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 (non images.sql né 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 (non images.sql né 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.