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, если включено двоичное ведение журнала (binary logging) и нет привилегий суперпользователя, а параметр 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!
База данных будет создана автоматически, если она не существует.
Вернитесь к разделу установки.