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 alcun problema 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

Il set di caratteri utf8mb4 con la collation utf8mb4_bin è supportato affinché server/proxy di Zabbix funzioni correttamente con i database MySQL/MariaDB.
Per evitare problemi futuri, si raccomanda vivamente di usare il set di caratteri utf8mb4 con la collation utf8mb4_bin sia per le nuove installazioni sia per quelle esistenti. Per convertire i database che usano il set di caratteri utf8mb3 e la collation utf8mb3_bin nel set di caratteri utf8mb4 e nella collation utf8mb4_bin, seguire le istruzioni in Repairing Zabbix database character set and collation.

I trigger deterministici devono essere creati durante l'importazione dello schema. Su MySQL e MariaDB, ciò richiede che GLOBAL log_bin_trust_function_creators = 1 sia impostato se il binary logging è abilitato e non sono presenti privilegi di superuser, e log_bin_trust_function_creators = 1 non è impostato nel file di configurazione di MySQL.

Se si sta installando Zabbix da packages o containers, consultare le rispettive istruzioni.

Se si sta installando Zabbix dai sorgenti:

  • Creare e configurare un database e un utente.
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 di Zabbix proxy, deve essere importato solo schema.sql (non images.sqldata.sql).
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# fermarsi qui se si sta creando il database per 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 con successo:

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: 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 e i dati iniziali (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.sqldata.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.

Elasticsearch e ClickHouse

Zabbix può anche memorizzare i dati storici in Elasticsearch o ClickHouse. Per le istruzioni di configurazione, vedere le pagine collegate.

SQLite

L'uso di SQLite è supportato solo per Zabbix proxy!

Il database verrà creato automaticamente se non esiste.

Torna alla sezione di installazione.