База данных Zabbix должна быть создана в процессе установки Zabbix сервера или прокси.
Этот раздел предлагает инструкции для создания базы данных Zabbix. Отдельный скрипт схемы поставляется для каждой поддерживаемой базы данных.
Файлы schema.sql
, images.sql
and data.sql
размещены в подпапке database исходных кодов Zabbix. Если 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 zabbix@localhost 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
):
Теперь мы настроим базу данных zabbix
(последний параметр) с ранее созданным пользователем в качестве владельца (-O zabbix
) и импортируем изначальную схему и данные (предполагается, что вы находитесь в корневой папке исходных кодов 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
Приведенные выше команды представлены как пример, который будет работать на большинстве GNU/Linux инсталляций. Вы можете использовать другие команды, например "psql -U <username>" зависит от того каким образом настроена ваша система/база данных. Если у вас появились проблемы с настройкой базы данных, пожалуйста, проконсультируйтесь с вашим администратором баз данных.
В Zabbix 4.2.0 на экспериментальной основе добавлена поддержка TimescaleDB.
В настоящее время TimescaleDB не поддерживается на стороне Zabbix прокси.
Мы предполагаем, что расширение TimescaleDB уже установлено в базе данных (смотрите инструкции по инсталляции).
Расширение TimescaleDB также должно быть включено для конкретной БД, чтобы это сделать выполните:
Выполнение этой команды требует привилегии администратора базы данных.
Скрипт timescaledb.sql
размещен в database/postgresql. Этот скрипт необходимо выполнить после того, как создана обычная база данных PostgreSQL с изначальными данными schema/data (смотрите раздел выше):
Обратите внимание, что скрипт timescaledb.sql
задает следующие параметры процессу очистки истории (с Администрирование → Общие → Очистка истории):
В случае использования очистки истории с партиционированием для истории и динамики изменений обе эти опции необходимо активировать. Имеется возможность использовать TimescaleDB партиционирование только для динамики изменений (установив настройку Переопределить период хранения динамики изменения элементов данных) или только для истории (Переопределить период хранения истории элементов данных).
Вы возможно захотите выполнить timescaledb-tune утилиту, которая поставляется TimescaleDB, чтобы оптимизировать параметры конфигурации PostgreSQL в вашем 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 user@oracle_host "mkdir /tmp/zabbix_images"
shell> scp -r misc/images/png_modern user@oracle_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
Пожалуйста, установите параметр инициализации CURSOR_SHARING=FORCE для лучшей производительности.
Теперь временную папку можно удалить:
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. Выполните следующую команду перед запуском сервера базы данных:
Использование SQLite поддерживается только на Zabbix прокси!
Если с Zabbix прокси используется SQLite, то база данных будет автоматически создана, если она еще не существует.
Вернуться в раздел установки.