1 Скрипты создания базы данных

Обзор

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

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

Файлы schema.sql, images.sql and data.sql размещены в подпапке database исходных кодов Zabbix. Если Zabbix установлен из распространяемых пакетов, обратитесь к документации распространителя.

Для базы данных Zabbix прокси необходимо импортировать только schema.sql (без images.sql и data.sql)

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

** Скрипты **

MySQL

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

shell> mysql -uroot -p<пароль>
       mysql> create user 'zabbix'@'localhost' identified by '<пароль>';
       mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
       mysql> quit;

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

Zabbix сервер до версии 4.4 сразу из коробки не мог работать корректно с новейшими версиями MariaDB. Смотрите Известные проблемы для уточнения необходимых изменений базы данных.

Если вы устанавливаете Zabbix из исходного кода, продолжите импорт данных в базу данных:

shell> cd database/mysql
       shell> mysql -uzabbix -p<пароль> zabbix < schema.sql
       # остановитесь здесь, если вы создаете базу данных для Zabbix прокси
       shell> mysql -uzabbix -p<пароль> zabbix < images.sql
       shell> mysql -uzabbix -p<пароль> zabbix < data.sql

PostgreSQL

Пожалуйста, обратитесь к этому разделу, если вы устанавливаете Zabbix из пакетов.

У вас должна быть база данных с правами создания объектов базы данных. Следующая команда командной оболочки создаст zabbix. Задайте пароль при появлении запроса и затем повторите этот пароль (обратите внимание, что сначала возможно у вас будет запрошен пароль для sudo):

shell> sudo -u postgres createuser --pwprompt zabbix

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

shell> sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
       shell> cd database/postgresql
       shell> cat schema.sql | sudo -u zabbix psql zabbix

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

shell> cat images.sql | sudo -u zabbix psql zabbix
       shell> cat data.sql | sudo -u zabbix psql zabbix

Приведенные выше команды представлены как пример, который будет работать на большинстве GNU/Linux инсталляций. Вы можете использовать другие команды, например "psql -U <username>" зависит от того каким образом настроена ваша система/база данных. Если у вас появились проблемы с настройкой базы данных, пожалуйста, проконсультируйтесь с вашим администратором баз данных.

Oracle

Мы полагаем, что пользователь zabbix базы данных с паролем пароль уже существует и имеет права на создание объектов в ORCL службе, расположенной на хост сервере базы данных Oracle c shell пользователем пользователь, который имеет доступ в папку /tmp. Zabbix требует базу данных в Юникод кодировке и национальную кодировку UTF8. Проверьте текущие настройки:

sqlplus> select parameter,value from v$nls_parameters where parameter='NLS_CHARACTERSET' or parameter='NLS_NCHAR_CHARACTERSET';

Если вы создаете базу данных для Zabbix сервера вам необходимо поместить куда-то изображения на хост с Oracle. Скопируйте все изображения из misc/images/png_modern в /tmp/zabbix_images папку на хосте с Oracle:

shell> cd /путь/к/исходным/кодам/zabbix
       shell> ssh пользователь@хост "mkdir /tmp/zabbix_images"
       shell> scp -r misc/images/png_modern пользователь@хост:/tmp/zabbix_images/

Теперь подготовьте базу данных:

shell> sqlplus zabbix/пароль@хост/ORCL
       sqlplus> @database/oracle/schema.sql
       # остановитесь здесь, если вы создаете базу данных для Zabbix прокси
       sqlplus> @database/oracle/images.sql
       sqlplus> @database/oracle/data.sql

Пожалуйста, установите параметр инициализации CURSOR_SHARING=FORCE для лучшей производительности.

Временную папку /​tmp/​zabbix_images изображений можно удалить после выполнения скрипта images.sql.

IBM DB2

shell> db2 "create database zabbix using codeset utf-8 territory us pagesize 32768"
       shell> cd database/ibm_db2
       shell> db2batch -d zabbix -f schema.sql
       # остановитесь здесь, если вы создаете базу данных для Zabbix прокси
       shell> db2batch -d zabbix -f images.sql
       shell> db2batch -d zabbix -f data.sql 

Очень важно установить UTF-8 локаль Zabbix серверу, Zabbix прокси и веб-серверу с Zabbix веб-интерфейсом. В противном случае текстовая информация из Zabbix будет интерпретироваться IBM DB2 сервером как не-UTF-8 и будет дополнительно конвертироваться по пути из Zabbix в базу данных и обратно. База данных будет хранить поврежденные не-ASCII символы.

Веб-интерфейс Zabbix использует условия OFFSET и LIMIT в SQL запросах. Чтобы они работали, IBM DB2 сервер должен иметь переменную DB2_COMPATIBILITY_VECTOR заданную значением 3. Выполните следующую команду перед запуском сервера базы данных:

shell> db2set DB2_COMPATIBILITY_VECTOR=3

SQLite

shell> cd database/sqlite3
       shell> sqlite3 /var/lib/sqlite/zabbix.db < schema.sql
       # остановитесь здесь, если вы создаете базу данных для Zabbix прокси
       shell> sqlite3 /var/lib/sqlite/zabbix.db < images.sql
       shell> sqlite3 /var/lib/sqlite/zabbix.db < data.sql

Если с Zabbix прокси используется SQLite, то база данных будет автоматически создана, если она еще не существует.

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