Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| work:zabbix:zabbix-migration-mysql-postgresql [2025/01/15 12:42] – rolland | work:zabbix:zabbix-migration-mysql-postgresql [2025/01/15 14:26] (текущий) – rolland | ||
|---|---|---|---|
| Строка 224: | Строка 224: | ||
| ==== Миграция ==== | ==== Миграция ==== | ||
| + | Останавливаем Zabbix и Apache: | ||
| + | < | ||
| + | sudo systemctl stop zabbix-server apache2 | ||
| + | </ | ||
| + | |||
| + | Создаем каталог для данных из MySQL | ||
| + | |||
| + | < | ||
| + | mkdir / | ||
| + | </ | ||
| + | |||
| + | Далее запускаем pgloader с конфигурацией, | ||
| + | |||
| + | < | ||
| + | pgloader --root-dir=/ | ||
| + | </ | ||
| + | |||
| + | Все предупреждающие сообщения игнорируем. Миграция займет некоторое время, в зависимости от размера и т.п. | ||
| + | |||
| + | После завершения, | ||
| + | |||
| + | < | ||
| + | sudo -u postgres psql -c "SET password_encryption=' | ||
| + | </ | ||
| + | |||
| + | Снова задаем пользователя | ||
| + | |||
| + | < | ||
| + | sudo -u postgres psql -c "ALTER ROLE zabbixrd WITH PASSWORD ' | ||
| + | </ | ||
| + | |||
| + | Создаем схемы: | ||
| + | |||
| + | < | ||
| + | sudo -u postgres psql --host=127.0.0.1 --dbname=zabbixrddb --username=zabbixrd -f / | ||
| + | |||
| + | sudo -u postgres psql --host=127.0.0.1 --dbname=zabbixrddb --username=zabbixrd -f / | ||
| + | |||
| + | sudo -u postgres psql --host=127.0.0.1 --dbname=zabbixrddb --username=zabbixrd -f / | ||
| + | </ | ||
| + | |||
| + | Ну и рекомендуется сделать VACUUM | ||
| + | |||
| + | < | ||
| + | sudo -u postgres vacuumdb --dbname=zabbixrddb --analyze --username=postgres --jobs=$(grep -c processor / | ||
| + | </ | ||
| + | |||
| + | ==== Тестирование ==== | ||
| + | |||
| + | Удаляем поддержку mysql | ||
| + | |||
| + | < | ||
| + | sudo apt remove zabbix-server-mysql | ||
| + | </ | ||
| + | |||
| + | На всякий случай сохраняем конфиг **zabbix_server.conf** . | ||
| + | |||
| + | Ставим необходимые пакеты | ||
| + | |||
| + | < | ||
| + | sudo apt install zabbix-server-pgsql php8.3-pgsql zabbix-apache-conf | ||
| + | </ | ||
| + | |||
| + | Удаляем конфиг mysql для Zabbix | ||
| + | |||
| + | < | ||
| + | sudo rm / | ||
| + | </ | ||
| + | |||
| + | Стартуем Zabbix и Apache | ||
| + | |||
| + | < | ||
| + | sudo systemctl start zabbix-server apache2 | ||
| + | </ | ||
| + | |||
| + | Подключаемся к нашему Zabbix через браузер и выполняем его настройку на СУБД PostgreSQL. После этого все должно заработать. | ||
| + | |||
| + | Удаляем MysQL и все, что с ним связано. | ||
| + | |||
| + | < | ||
| + | service mysql stop | ||
| + | |||
| + | sudo apt purge mysql-server mysql-common mysql-server-core-* mysql-client-core-* | ||
| + | |||
| + | sudo rm -Rf / | ||
| + | |||
| + | sudo rm -Rf /etc/mysql/ | ||
| + | |||
| + | sudo rm -Rf / | ||
| + | |||
| + | sudo deluser --remove-home mysql | ||
| + | </ | ||
| + | |||
| + | ==== Установка TimescaleDB ==== | ||
| + | |||
| + | А теперь еще одна плюшка. Ставим TimescaleDB для улучшения работы с Zabbix. | ||
| + | |||
| + | Подключаем репозиторий | ||
| + | |||
| + | < | ||
| + | echo "deb https:// | ||
| + | </ | ||
| + | |||
| + | Про ключ не забываем | ||
| + | |||
| + | < | ||
| + | wget --quiet -O - https:// | ||
| + | </ | ||
| + | |||
| + | Обновим список | ||
| + | |||
| + | < | ||
| + | sudo apt update | ||
| + | </ | ||
| + | |||
| + | Ставим необходимое | ||
| + | |||
| + | < | ||
| + | sudo apt install timescaledb-2-postgresql-17 timescaledb-2-loader-postgresql-17 | ||
| + | </ | ||
| + | |||
| + | Выполняем настройку. Проще всего на все ответить " | ||
| + | |||
| + | < | ||
| + | sudo timescaledb-tune | ||
| + | </ | ||
| + | |||
| + | Останавливаем сервер Zabbix | ||
| + | |||
| + | < | ||
| + | sudo systemctl stop zabbix-server | ||
| + | </ | ||
| + | |||
| + | Перезапустим postgresql | ||
| + | |||
| + | < | ||
| + | sudo systemctl restart postgresql | ||
| + | </ | ||
| + | |||
| + | Подключаем расширение к Zabbix | ||
| + | |||
| + | < | ||
| + | echo " | ||
| + | </ | ||
| + | |||
| + | И выполняем скрипт для конвертации данных. Занимает некоторое время. | ||
| + | |||
| + | < | ||
| + | sudo -u postgres psql --host=127.0.0.1 --dbname=zabbixrddb --username=zabbixrd -f / | ||
| + | </ | ||
| + | |||
| + | Запускаем Zabbix | ||
| + | |||
| + | < | ||
| + | sudo systemctl start zabbix-server | ||
| + | </ | ||
| + | |||
| + | Помогли в написании источники: | ||