Инструкция по миграции с Glaber 3.4 на 3.5
Общая информация
Данная инструкция описывает процесс миграции с Glaber версии 3.4 на версию 3.5. В новой версии произошли значительные изменения в именовании компонентов, путях к файлам и конфигурации.
Основные изменения в версии 3.5
Переименование компонентов
- Все бинарные файлы и systemd unit файлы переименованы с префикса
zabbix
наglaber
- Изменены пути к директориям
/var
,/etc
,/log
- Путь к фронтенду изменен с
/usr/share/zabbix
на/usr/share/glaber
- Обновлена конфигурация nginx в
/etc/nginx/conf.d/glaber
Совместимость базы данных
- База данных полностью совместима: Схема данных в Glaber 3.4 и 3.5 идентична
- Двусторонняя совместимость: Можно мигрировать как с 3.4 на 3.5, так и обратно без потери данных
- Нет необходимости в миграции БД: Существующую базу данных можно использовать напрямую
Подготовка к миграции
1. Создание резервных копий
Перед началом миграции создайте резервные копии:
# Резервная копия базы данных PostgreSQL (ОПЦИОНАЛЬНО)
# База данных совместима между версиями, но резервная копия рекомендуется
sudo -u postgres pg_dump glaber > /tmp/glaber_backup_34.sql
# Резервная копия конфигурационных файлов (ОБЯЗАТЕЛЬНО)
tar -czf /tmp/glaber_config_backup_34.tar.gz /etc/zabbix /etc/nginx/sites-available/zabbix /etc/nginx/sites-enabled/zabbix
# Резервная копия логов (ОПЦИОНАЛЬНО)
tar -czf /tmp/glaber_logs_backup_34.tar.gz /var/log/zabbix
# Резервная копия данных фронтенда (ОПЦИОНАЛЬНО)
tar -czf /tmp/glaber_frontend_backup_34.tar.gz /usr/share/zabbix
[!NOTE] Важно: База данных PostgreSQL не требует миграции, так как схема данных в Glaber 3.4 и 3.5 идентична. Резервная копия базы данных создается только для дополнительной безопасности, но не является обязательной для успешной миграции.
2. Остановка сервисов
# Остановка всех сервисов Glaber 3.4
systemctl stop zabbix-server
systemctl stop apache2 # если используется Apache
systemctl stop nginx # если используется Nginx
Процесс миграции
1. Удаление старых пакетов
# Удаление пакетов Glaber 3.4
apt remove --purge glaber-server-pgsql glaber-frontend-php
apt remove --purge glaber-nginx-conf glaber-apache-conf
# Очистка
rm -rf /etc/zabbix
rm -rf /var/log/zabbix
rm -rf /var/lib/zabbix
rm -rf /usr/share/zabbix
2. Установка Glaber 3.5
Подключение репозитория (если есть доступ в интернет)
Если система имеет доступ к репозиторию Glaber:
# Получение ключа и подключение репозитория
wget --quiet -O - https://glaber.io/repo/key/repo.gpg | apt-key add -
echo "deb https://glaber.io/repo/3.5/deb/astra-1.7 1.7.6 main" > /etc/apt/sources.list.d/glaber.list
apt update
Установка пакетов
Вариант 1: Установка из репозитория (если есть доступ в интернет)
# Установка основных компонентов Glaber 3.5 из репозитория
apt install glaber-server-pgsql
apt install glaber-frontend-php
apt install glaber-nginx-conf
Вариант 2: Ручная установка пакетов (для систем без доступа в интернет)
Если система не имеет доступа к репозиторию, необходимо:
- Скачать пакеты вручную с веб-сайта Glaber или другого источника
- Загрузить пакеты на сервер (через USB, SCP, FTP и т.д.)
- Установить пакеты вручную
# Переход в директорию с загруженными пакетами
cd /path/to/downloaded/packages/
# Установка пакетов в правильном порядке
dpkg -i glaber-server-pgsql_*.deb
dpkg -i glaber-frontend-php_*.deb
dpkg -i glaber-nginx-conf_*.deb
# Если возникают ошибки зависимостей, установите их:
apt-get install -f
[!NOTE] Важно: При ручной установке убедитесь, что все зависимости установлены. Команда
apt-get install -f
автоматически установит недостающие зависимости.
3. Сохранение и миграция конфигурационных файлов
Сохранение старых конфигураций
Перед установкой новых пакетов сохраните старые конфигурации:
# Создание временных копий старых конфигураций
mkdir -p /tmp/old_configs
# Копирование конфигураций сервера
cp /etc/zabbix/zabbix_server.conf /tmp/old_configs/ 2>/dev/null || echo "zabbix_server.conf не найден"
# Копирование веб-конфигураций
cp -r /etc/zabbix/web/ /tmp/old_configs/web/ 2>/dev/null || echo "Веб-конфигурации не найдены"
Миграция конфигураций после установки
После установки новых пакетов Glaber 3.5, перенесите и адаптируйте конфигурации:
# Создание новых директорий
mkdir -p /var/log/glaber
mkdir -p /var/lib/glaber
mkdir -p /etc/glaber/web
# Копирование и переименование конфигураций сервера
if [ -f /tmp/old_configs/zabbix_server.conf ]; then
cp /tmp/old_configs/zabbix_server.conf /etc/glaber/glaber_server.conf
echo "Конфигурация сервера скопирована"
fi
# Копирование веб-конфигураций
if [ -d /tmp/old_configs/web/ ]; then
cp -r /tmp/old_configs/web/* /etc/glaber/web/
echo "Веб-конфигурации скопированы"
fi
Адаптация путей в конфигурациях
# Адаптация путей в конфигурации сервера
sed -i 's|/var/log/zabbix|/var/log/glaber|g' /etc/glaber/glaber_server.conf
sed -i 's|/var/lib/zabbix|/var/lib/glaber|g' /etc/glaber/glaber_server.conf
sed -i 's|/etc/zabbix|/etc/glaber|g' /etc/glaber/glaber_server.conf
# Установка правильных прав доступа
chown -R glaber:glaber /var/log/glaber
chown -R glaber:glaber /var/lib/glaber
chown -R glaber:glaber /etc/glaber
chmod 640 /etc/glaber/*.conf
chmod 640 /etc/glaber/web/*.php
Проверка и создание симлинков
Проверьте и создайте необходимые симлинки для веб-конфигураций:
# Проверка и создание симлинка для zabbix.conf.php
if [ -f /etc/glaber/web/zabbix.conf.php ]; then
if [ ! -L /usr/share/glaber/conf/zabbix.conf.php ]; then
ln -sf /etc/glaber/web/zabbix.conf.php /usr/share/glaber/conf/zabbix.conf.php
echo "Создан симлинк: /usr/share/glaber/conf/zabbix.conf.php -> /etc/glaber/web/zabbix.conf.php"
else
echo "Симлинк /usr/share/glaber/conf/zabbix.conf.php уже существует"
ls -la /usr/share/glaber/conf/zabbix.conf.php
fi
else
echo "ВНИМАНИЕ: Файл /etc/glaber/web/zabbix.conf.php не найден!"
fi
# Проверка и создание симлинка для maintenance.conf.php
if [ -f /etc/glaber/web/maintenance.conf.php ]; then
if [ ! -L /usr/share/glaber/conf/maintenance.conf.php ]; then
ln -sf /etc/glaber/web/maintenance.conf.php /usr/share/glaber/conf/maintenance.conf.php
echo "Создан симлинк: /usr/share/glaber/conf/maintenance.conf.php -> /etc/glaber/web/maintenance.conf.php"
else
echo "Симлинк /usr/share/glaber/conf/maintenance.conf.php уже существует"
ls -la /usr/share/glaber/conf/maintenance.conf.php
fi
else
echo "ВНИМАНИЕ: Файл /etc/glaber/web/maintenance.conf.php не найден!"
fi
# Проверка всех симлинков в директории конфигураций
echo "Проверка всех симлинков в /usr/share/glaber/conf/:"
ls -la /usr/share/glaber/conf/ | grep "->"
# Очистка временных файлов
rm -rf /tmp/old_configs
echo "Временные конфигурации удалены"
4. Работа с базой данных
Важно: Совместимость баз данных
База данных Glaber 3.4 полностью совместима с Glaber 3.5. Можно использовать существующую базу данных без миграции, так как схема данных остается неизменной.
Вариант 1: Использование существующей базы данных (рекомендуется)
# База данных уже существует и готова к использованию
# Убедитесь, что PostgreSQL запущен
systemctl start postgresql
# Проверьте подключение к существующей базе данных
sudo -u glaber psql glaber -c "SELECT version();"
Вариант 2: Восстановление из резервной копии, a также, если нужно переименование базы
Если требуется восстановить базу данных из резервной копии:
# Остановка PostgreSQL
systemctl stop postgresql
# Восстановление базы данных из резервной копии
sudo -u postgres dropdb glaber # если база уже существует
sudo -u postgres createdb -O glaber glaber
sudo -u postgres psql glaber < /tmp/glaber_backup_34.sql
# Запуск PostgreSQL
systemctl start postgresql
5. Обновление конфигурации nginx
Удаление старой конфигурации
# Удаление старой конфигурации nginx
rm -f /etc/nginx/sites-available/zabbix
rm -f /etc/nginx/sites-enabled/zabbix
rm -f /etc/nginx/conf.d/zabbix.conf
Настройка новой конфигурации
# Проверка установки конфигурации Glaber
ls -la /etc/nginx/conf.d/glaber*
# Редактирование конфигурации nginx
nano /etc/nginx/conf.d/glaber.conf
В файле /etc/nginx/conf.d/glaber.conf
убедитесь, что указаны правильные пути:
server {
.....
# Обновленный путь к фронтенду
root /usr/share/glaber;
index index.php;
.....
# Обновленные пути для FastCGI и фронтенда
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME /usr/share/glaber$fastcgi_script_name;
.....
}
.....
}
6. Настройка фронтенда
Убедитесь, что в конфигурации фронтенда указаны правильные настройки:
<?php
// Конфигурация базы данных
$DB['TYPE'] = 'POSTGRESQL';
$DB['SERVER'] = 'localhost';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'glaber';
$DB['USER'] = 'glaber';
$DB['PASSWORD'] = 'ваш_пароль';
// Настройки Zabbix (совместимость)
$ZBX_SERVER = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'Glaber';
7. Обновление systemd unit файлов
Проверка новых unit файлов
# Проверка установленных unit файлов Glaber 3.5
systemctl list-unit-files | grep glaber
# Должны быть видны:
# glaber-server.service
Включение автозапуска
# Включение автозапуска для новых сервисов
systemctl enable glaber-server
8. Запуск сервисов
# Запуск всех сервисов в правильном порядке
systemctl start postgresql
systemctl start php8.1-fpm
systemctl start glaber-server
systemctl start nginx
# Проверка статуса сервисов
systemctl status glaber-server
systemctl status nginx
systemctl status php8.1-fpm
9. Проверка работы
# Проверка логов
tail -f /var/log/glaber/glaber_server.log
tail -f /var/log/nginx/error.log
# Проверка процессов
ps aux | grep glaber
# Проверка портов
netstat -tlnp | grep -E "(10051|80)"
10. Веб-интерфейс
После успешного запуска всех сервисов откройте веб-браузер и перейдите по адресу:
http://ваш_сервер_glaber
Проверка миграции
1. Проверка целостности данных
# Проверка подключения к базе данных
sudo -u glaber psql glaber -c "SELECT COUNT(*) FROM hosts;"
# Проверка работоспособности сервера
glaber_server -V
Возможные проблемы и решения
Проблема: Сервис glaber-server не запускается
Решение:
# Проверка логов
journalctl -u glaber-server -f
# Проверка конфигурации
glaber_server -t
# Проверка прав доступа
ls -la /var/log/glaber/
ls -la /var/lib/glaber/
Проблема: Веб-интерфейс не открывается
Решение:
# Проверка nginx
nginx -t
systemctl status nginx
# Проверка PHP-FPM
systemctl status php8.1-fpm
# Проверка конфигурации фронтенда
cat /etc/glaber/web/zabbix.conf.php
Откат миграции
В случае возникновения критических проблем можно выполнить откат. Благодаря совместимости баз данных, откат выполняется быстро и безопасно:
# Остановка новых сервисов
systemctl stop glaber-server nginx php8.1-fpm
# Восстановление резервных копий конфигураций
tar -xzf /tmp/glaber_config_backup_34.tar.gz -C /
tar -xzf /tmp/glaber_logs_backup_34.tar.gz -C /
tar -xzf /tmp/glaber_frontend_backup_34.tar.gz -C /
# База данных остается без изменений - она совместима с обеими версиями
# Нет необходимости в восстановлении базы данных из резервной копии
# Переустановка старых пакетов
apt install zabbix-server-pgsql zabbix-frontend-php
# Восстановление автозапуска старых сервисов
systemctl enable zabbix-server
# Запуск старых сервисов
systemctl start zabbix-server nginx php7.4-fpm
Быстрый откат (если резервные копии недоступны)
Если резервные копии конфигураций недоступны, можно выполнить быстрый откат:
# Остановка Glaber 3.5
systemctl stop glaber-server
# Переименование конфигураций для совместимости
mv /etc/glaber /etc/zabbix
mv /var/log/glaber /var/log/zabbix
mv /var/lib/glaber /var/lib/zabbix
mv /usr/share/glaber /usr/share/zabbix
# Установка Glaber 3.4
apt install zabbix-server-pgsql zabbix-frontend-php
# Обновление путей в конфигурациях
sed -i 's|/var/log/glaber|/var/log/zabbix|g' /etc/zabbix/zabbix_server.conf
sed -i 's|/var/lib/glaber|/var/lib/zabbix|g' /etc/zabbix/zabbix_server.conf
sed -i 's|/usr/share/glaber|/usr/share/zabbix|g' /etc/nginx/conf.d/zabbix.conf
# Запуск сервисов
systemctl start zabbix-server nginx
Заключение
После успешной миграции:
- Удалите временные файлы резервных копий
- Обновите документацию с новыми путями
- Проведите полное тестирование системы
- Уведомите пользователей о возможных изменениях в интерфейсе
Миграция завершена успешно, если все сервисы запущены, веб-интерфейс доступен, и данные корректно отображаются.