Skip to content

Инструкция по миграции с 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: Ручная установка пакетов (для систем без доступа в интернет)

Если система не имеет доступа к репозиторию, необходимо:

  1. Скачать пакеты вручную с веб-сайта Glaber или другого источника
  2. Загрузить пакеты на сервер (через USB, SCP, FTP и т.д.)
  3. Установить пакеты вручную
# Переход в директорию с загруженными пакетами
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

Заключение

После успешной миграции:

  1. Удалите временные файлы резервных копий
  2. Обновите документацию с новыми путями
  3. Проведите полное тестирование системы
  4. Уведомите пользователей о возможных изменениях в интерфейсе

Миграция завершена успешно, если все сервисы запущены, веб-интерфейс доступен, и данные корректно отображаются.