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

Обзор

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

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

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

Для настройки безопасных соединений TLS смотрите Безопасное соединение с базой данных.

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

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

make dbschema

MySQL/MariaDB

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

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

Если вы устанавливаете Zabbix из пакетов или контейнеров, ознакомьтесь с соответствующими инструкциями.

Если вы устанавливаете 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
# 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 можно отключить:

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 приведены в отдельном разделе.

Oracle

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

SQLite

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

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

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