База данных Zabbix должна быть создана в процессе установки Zabbix сервера или прокси.
Этот раздел предлагает инструкции для создания базы данных Zabbix. Отдельный скрипт схемы поставляется для каждой поддерживаемой базы данных.
schema.sql, images.sql and data.sql размещены в подпапке database исходных кодов Zabbix. Если Zabbix установлен из распространяемых пакетов, обратитесь к документации распространителя.
schema.sql (без images.sql и data.sql)
UTF-8 является единственной кодировкой, которая поддерживается Zabbix. Она, как известно, работает без каких-либо проблем с безопасностью. Пользователи должны знать, что существуют известные проблемы с безопасностью при использовании некоторых других кодировок.
Для нормальной работы Zabbix сервера с MySQL базой данных требуются кодировка utf8 и utf8_bin тип сравнения.
shell> mysql -uroot -p<пароль> mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to [email protected] identified by '<пароль>'; mysql> quit;
Если вы используете пакеты Zabbix продолжите ознакомление с инструкциями для Debian/Ubuntu или RHEL/CentOS, чтобы импортировать данные в базу данных.
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
У вас должна быть база данных с правами создания объектов базы данных. Следующая команда командной оболочки создаст 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
Если вы используете пакеты Zabbix продолжите ознакомление с инструкциями для Debian/Ubuntu или RHEL/CentOS, чтобы импортировать данные в базу данных.
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
Мы предполагаем, что расширение TimescaleDB уже установлено в базе данных (смотрите инструкции по инсталляции).
Расширение TimescaleDB также должно быть включено для конкретной БД, чтобы это сделать выполните:
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
Выполнение этой команды требует привилегии администратора базы данных.
Скрипт timescaledb.sql размещен в database/postgresql. Этот скрипт необходимо выполнить после того, как создана обычная база данных PostgreSQL с изначальными данными schema/data (смотрите раздел выше):
cat timescaledb.sql | sudo -u zabbix psql zabbix
Обратите внимание, что скрипт timescaledb.sql задает следующие параметры процессу очистки истории (с Администрирование → Общие → Очистка истории):
В случае использования очистки истории с партиционированием для истории и динамики изменений обе эти опции необходимо активировать. Имеется возможность использовать TimescaleDB партиционирование только для динамики изменений (установив настройку Переопределить период хранения динамики изменения элементов данных) или только для истории (Переопределить период хранения истории элементов данных).
postgresql.conf.
Мы полагаем, что пользователь 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 из исходных кодов Zabbix. Скопируйте их в /tmp/zabbix_images папку на хосте с Oracle:
shell> cd /путь/к/исходным/кодам/zabbix shell> ssh [email protected]_host "mkdir /tmp/zabbix_images" shell> scp -r misc/images/png_modern [email protected]_host:/tmp/zabbix_images/
Теперь подготовьте базу данных:
shell> cd /путь/к/исходным/кодам/zabbix/database/oracle shell> sqlplus zabbix/пароль@oracle_host/ORCL sqlplus> schema.sql # остановитесь здесь, если вы создаете базу данных для Zabbix прокси sqlplus> images.sql sqlplus> data.sql
Теперь временную папку можно удалить:
shell> ssh [email protected]_host "rm -rf /tmp/zabbix_images"
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 -l ';;'
Веб-интерфейс Zabbix использует условия OFFSET и LIMIT в SQL запросах. Чтобы они работали, IBM DB2 сервер должен иметь переменную DB2_COMPATIBILITY_VECTOR заданную значением 3. Выполните следующую команду перед запуском сервера базы данных:
shell> db2set DB2_COMPATIBILITY_VECTOR=3
Использование SQLite поддерживается только на Zabbix прокси!
shell> cd database/sqlite3 shell> sqlite3 /var/lib/sqlite/zabbix.db < schema.sql
Вернуться в раздел установки.