1 Создание базы данных

Обзор

База данных Zabbix должна быть создана во время установки сервера или прокси Zabbix.

В этом разделе приведены инструкции по созданию базы данных Zabbix. Для каждой поддерживаемой базы данных доступен отдельный набор инструкций.

Чтобы повысить безопасность базы данных, создавая роли/пользователей базы данных с минимальными привилегиями, см. рекомендации по созданию базы данных для каждой поддерживаемой базы данных:

Для настройки защищённых TLS-соединений см. Защищённое подключение к базе данных.

UTF-8 — единственная кодировка, поддерживаемая Zabbix. Известно, что она работает без каких-либо уязвимостей безопасности. Пользователи должны учитывать, что при использовании некоторых других кодировок существуют известные проблемы безопасности. О переходе на UTF-8 см. Исправление набора символов и сопоставления базы данных Zabbix. См. также Ограничения фильтрации с сопоставлениями utf8mb4.

Если установка выполняется из репозитория Zabbix Git, перед переходом к следующим шагам необходимо выполнить следующую команду:

make dbschema

MySQL/MariaDB

Для корректной работы сервера/прокси Zabbix с базой данных MySQL поддерживаются кодировки utf8 (также известная как utf8mb3) и utf8mb4 (с сортировками utf8_bin и utf8mb4_bin соответственно). Для новых установок рекомендуется использовать utf8mb4.

Детерминированные триггеры необходимо создавать во время импорта схемы. В MySQL и MariaDB для этого требуется установить GLOBAL log_bin_trust_function_creators = 1, если включено бинарное журналирование, отсутствуют привилегии суперпользователя и log_bin_trust_function_creators = 1 не задан в конфигурационном файле MySQL.

Если вы устанавливаете из пакетов Zabbix, перейдите к инструкциям для вашей платформы.

Если вы устанавливаете 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;
  • Импортируйте данные в базу данных и установите кодировку utf8mb4 по умолчанию (предполагается, что вы находитесь в корневом каталоге исходного кода Zabbix). Для базы данных прокси Zabbix следует импортировать только schema.sql (без images.sql и data.sql).
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# остановитесь здесь, если вы создаете базу данных для прокси Zabbix
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql

log_bin_trust_function_creators можно отключить после успешного импорта схемы:

mysql -uroot -p<password>

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

PostgreSQL

У вас должен быть пользователь базы данных с правами на создание объектов базы данных.

Если вы устанавливаете из пакетов Zabbix, перейдите к инструкциям для вашей платформы.

Если вы устанавливаете Zabbix из исходного кода:

  • Создайте пользователя базы данных.

Следующая команда оболочки создаст пользователя zabbix. При появлении запроса укажите пароль и повторите его (обратите внимание, что сначала у вас могут запросить пароль sudo):

sudo -u postgres createuser --pwprompt zabbix
  • Создайте базу данных.

Следующая команда оболочки создаст базу данных zabbix (последний параметр), где ранее созданный пользователь будет владельцем (-O zabbix).

sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
  • Импортируйте начальную схему и данные (предполагается, что вы находитесь в корневом каталоге исходного кода Zabbix). Для базы данных прокси Zabbix следует импортировать только schema.sql (без images.sql и data.sql).
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# остановитесь здесь, если вы создаете базу данных для прокси Zabbix
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix

Приведенные выше команды даны в качестве примера и будут работать в большинстве установок GNU/Linux. В зависимости от конфигурации вашей системы/базы данных вы можете использовать другие команды, например:

psql -U <username>

Если у вас возникли какие-либо трудности при настройке базы данных, обратитесь к вашему администратору базы данных.

TimescaleDB

Инструкции по созданию и настройке TimescaleDB приведены в отдельном разделе.

SQLite

Использование SQLite поддерживается только для Zabbix прокси!

База данных будет автоматически создана, если она не существует.

Вернуться к разделу установки.