Skip to content

Инструкция по миграции с Glaber 3.4 / 3.5 на 3.6

Общая информация

Данная инструкция описывает обновление Glaber с версий 3.4 или 3.5 на 3.6.

Исходная версия Суть миграции
3.5 → 3.6 Смена репозитория и обновление пакетов. Пути (/etc/glaber, /usr/share/glaber) и имена сервисов (glaber-server) уже совпадают с 3.6
3.4 → 3.6 Сначала привести именование и пути к виду 3.5 (zabbixglaber), затем обновить пакеты до 3.6. Можно сделать за один простой, либо в два этапа

[!NOTE] Если вы ещё на 3.4 и хотите разнести риски, сначала выполните миграцию 3.4 → 3.5, проверьте работу системы, затем продолжите по сценарию 3.5 → 3.6 ниже.

Основные изменения в версии 3.6

Имена и пути

  • Имена пакетов и бинарников: префикс glaber (как в 3.5)
  • Конфигурация: /etc/glaber/, фронтенд: /usr/share/glaber
  • Логи и данные: /var/log/glaber, /var/lib/glaber
  • systemd: glaber-server, glaber-proxy, glaber-agent (при наличии)

По сравнению с 3.5 переименование путей не требуется. По сравнению с 3.4 — требуется (см. сценарий B).

База данных (PostgreSQL / MySQL)

  • При первом запуске glaber-server 3.6 сам применяет недостающие патчи схемы (в логе — сообщения об upgrade / dbpatches)
  • Резервная копия конфигурационной БД перед обновлением настоятельно рекомендуется
  • Откат пакетов на 3.5 без восстановления дампа БД может быть небезопасен, если сервер уже успел применить новые патчи
  • История в ClickHouse при типичной схеме совместима; отдельная миграция истории обычно не нужна

Веб-интерфейс

  • Списки Problems (текущие / история) и Items (узел / шаблон) переведены на Vue (CglbTable): серверная пагинация, фильтры в панели и в заголовках колонок, выбор колонок, компактные строки, избранные фильтры
  • Для больших списков полезен APCu (кэш упорядоченных id между страницами); без APCu UI работает, но без этого ускорения
  • После обновления пакетов фронтенда рекомендуется жёсткое обновление страницы в браузере (Ctrl+F5), чтобы сбросить кэш старых JS/CSS

Сервер и конфигурация

  • Параметр ValueCacheSize устарел: выделенной shmem value cache больше нет (в логе при старте может быть предупреждение). Дамп/восстановление value cache (ValueCacheDumpLocation / ValueCacheDumpFrequency) по-прежнему используется
  • Упрощена обработка LLD (менеджер LLD убран / упрощён пайплайн)
  • В пакетах nginx для Glaber увеличены fastcgi_buffers — при ручной конфигурации nginx имеет смысл сверить с примером из пакета glaber-nginx-conf
  • Поддержка PHP 7.4+; на PHP 8.4 / 8.5 учтены совместимости в актуальных сборках 3.6

Прокси и агенты

  • Прокси Glaber обновляйте вместе с сервером (или сразу после) на ту же линейку 3.6
  • Агенты Zabbix / Glaber обычно совместимы; пакет glaber-agent при необходимости обновляется из того же репозитория 3.6

Подготовка к миграции

1. Резервные копии

# Конфигурационная БД PostgreSQL (РЕКОМЕНДУЕТСЯ)
sudo -u postgres pg_dump glaber > /tmp/glaber_backup_pre36.sql

# Для MySQL/MariaDB:
# mysqldump -u<db_user> -p -E --single-transaction glaber > /tmp/glaber_backup_pre36.sql

# Конфигурационные файлы (ОБЯЗАТЕЛЬНО)
# 3.5 / уже glaber-пути:
tar -czf /tmp/glaber_config_backup_pre36.tar.gz /etc/glaber /etc/nginx/conf.d/glaber* 2>/dev/null

# 3.4 / ещё zabbix-пути:
# tar -czf /tmp/glaber_config_backup_pre36.tar.gz /etc/zabbix /etc/nginx/sites-available/zabbix /etc/nginx/conf.d/zabbix* 2>/dev/null

# Логи (опционально)
tar -czf /tmp/glaber_logs_backup_pre36.tar.gz /var/log/glaber /var/log/zabbix 2>/dev/null

Подробнее о бэкапах: Бэкап и восстановление.

2. Зафиксируйте текущие версии

# 3.5+
glaber_server -V 2>/dev/null || true
systemctl status glaber-server --no-pager | head -5

# 3.4 (старые имена)
zabbix_server -V 2>/dev/null || true
dpkg -l 'glaber-*' 'zabbix-server*' 2>/dev/null | grep -E '^ii'

3. Остановка сервисов

Перед сменой пакетов остановите сбор:

# 3.5 / 3.6-имена
systemctl stop glaber-server
systemctl stop glaber-proxy 2>/dev/null || true

# 3.4
# systemctl stop zabbix-server
# systemctl stop zabbix-proxy 2>/dev/null || true

Фронтенд (nginx / php-fpm) можно не останавливать на время смены только server-пакета, но при обновлении glaber-frontend-php и nginx-конфига удобнее остановить и их на короткое окно.


Сценарий A: миграция с Glaber 3.5 на 3.6

1. Переключение репозитория на 3.6

Подставьте дистрибутив (примеры):

Astra Linux 1.8

wget -qO - https://glaber.io/repo/key/repo.gpg | gpg --dearmor -o /usr/share/keyrings/glaber-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/glaber-archive-keyring.gpg] https://glaber.io/repo/3.6/deb/astra-1.8 astra-1.8 main" \
  > /etc/apt/sources.list.d/glaber.list
apt update

Astra Linux 1.7

wget -qO - https://glaber.io/repo/key/repo.gpg | gpg --dearmor -o /usr/share/keyrings/glaber-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/glaber-archive-keyring.gpg] https://glaber.io/repo/3.6/deb/astra-1.7 astra-1.7 main" \
  > /etc/apt/sources.list.d/glaber.list
apt update

Ubuntu 22.04 (jammy) — путь репозитория вида https://glaber.io/repo/3.6/deb/ubuntu-22.04 ...; актуальный URL для вашей ОС см. на https://glaber.io/repo и в репозиториях.

[!NOTE] Если раньше в glaber.list был .../repo/3.5/..., достаточно заменить 3.5 на 3.6 и выполнить apt update.

2. Обновление пакетов

apt install --only-upgrade glaber-server-pgsql glaber-frontend-php glaber-nginx-conf

# при наличии прокси / агента из пакетов Glaber:
apt install --only-upgrade glaber-proxy-pgsql 2>/dev/null || true
apt install --only-upgrade glaber-agent 2>/dev/null || true

Для MySQL-сборки используйте соответствующие имена пакетов (glaber-server-mysql, glaber-proxy-mysql).

Закрытый контур (без доступа к репозиторию):

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

3. Конфигурация сервера

Файлы остаются в /etc/glaber/. Сверьте, что сохранены:

  • доступ к БД (DBHost, DBName, DBUser, DBPassword)
  • модуль истории ClickHouse (HistoryModule=...), если используется
  • AllowUnsupportedDBVersions=1 — при необходимости (как в инструкциях установки на Astra)

Устаревший ValueCacheSize можно оставить (будет предупреждение в логе) или закомментировать. Параметры дампа value cache оставьте, если ими пользовались:

# ValueCacheSize=...   # устарел в 3.6, можно удалить
ValueCacheDumpLocation=/var/vcdump/
ValueCacheDumpFrequency=300

Права (если каталоги создавали вручную):

chown -R glaber:glaber /var/log/glaber /var/lib/glaber /etc/glaber

4. Nginx и PHP

Если пакет glaber-nginx-conf обновил пример конфига, сравните с вашим /etc/nginx/conf.d/glaber.conf:

  • root /usr/share/glaber;
  • fastcgi_param SCRIPT_FILENAME /usr/share/glaber$fastcgi_script_name;
  • актуальный сокет PHP-FPM (unix:/run/php/php8.2-fpm.sock и т.п. — ваша версия)
  • желательно fastcgi_buffers 4 256k; (или больше), чтобы большие JSON ответов списков не упирались в буферы
nginx -t && systemctl reload nginx
systemctl restart php8.2-fpm   # подставьте свою версию PHP

Рекомендуемые значения в php.ini (FPM) не ниже типичных для Glaber:

memory_limit = 512M
post_max_size = 64M
max_execution_time = 300
upload_max_filesize = 32M
max_input_time = 300

Опционально для производительности списков Vue:

apt install php-apcu   # или php8.2-apcu — по версии PHP
systemctl restart php8.2-fpm

5. Фронтенд

Проверьте симлинк конфигурации (имя файла на разных установках может быть zabbix.conf.php или glaber.conf.php):

ls -la /usr/share/glaber/conf/
ls -la /etc/glaber/web/

Должен быть рабочий PHP-конфиг с корректными $DB[...]. Прямой доступ фронтенда к ClickHouse ($HISTORY_SOURCES) при наличии — сохраните из старого файла.

6. Запуск и контроль upgrade БД

systemctl start postgresql   # или mysqld / mariadb
systemctl start glaber-server
systemctl status glaber-server
tail -f /var/log/glaber/glaber_server.log

В логе дождитесь успешного старта и (при наличии) завершения DB upgrade. Затем:

systemctl start glaber-proxy 2>/dev/null || true
systemctl enable glaber-server

7. Проверка веб-интерфейса

Откройте UI, выполните Ctrl+F5. Проверьте:

  • вход и основные дашборды
  • Monitoring → Problems (текущие и история) — Vue-таблица, фильтры, пагинация
  • Items на узле/шаблоне
  • графики / latest data / историю из ClickHouse
glaber_server -V
sudo -u glaber psql glaber -c "SELECT COUNT(*) FROM hosts;"

Сценарий B: миграция с Glaber 3.4 на 3.6

На 3.4 типичны пути /etc/zabbix, /usr/share/zabbix и unit zabbix-server, даже если пакеты назывались glaber-*.

Рекомендуемый путь (два этапа)

  1. Выполните миграцию 3.4 → 3.5 (переименование путей, установка пакетов 3.5, перенос конфигов)
  2. Убедитесь, что сервер и UI работают на 3.5
  3. Выполните сценарий A (3.5 → 3.6)

Совмещённый путь (один простой)

Имеет смысл только если вы уверенно переносите конфиги. Кратко:

  1. Бэкапы (см. выше)
  2. systemctl stop zabbix-server (и proxy при наличии)
  3. Сохранить конфиги из /etc/zabbix/ во временный каталог
  4. Удалить старые пакеты / очистить /etc/zabbix, /usr/share/zabbix (как в инструкции 3.4→3.5)
  5. Подключить репозиторий 3.6 и установить glaber-server-pgsql, glaber-frontend-php, glaber-nginx-conf
  6. Перенести конфиг сервера в /etc/glaber/glaber_server.conf, веб — в /etc/glaber/web/, заменить пути zabbixglaber (sed как в migration_34_to_35.md)
  7. Настроить nginx на root /usr/share/glaber
  8. Запустить glaber-server, дождаться DB upgrade, проверить UI

Детали переноса конфигов и симлинков — в миграции 3.4 → 3.5, шаги «Сохранение и миграция конфигурационных файлов» и «Обновление конфигурации nginx».


ClickHouse

Отдельная миграция схемы ClickHouse для перехода 3.4/3.5 → 3.6 обычно не требуется.

Если история/тренды создавались очень давно по устаревшему schema.sql, сверьте актуальный файл:

schema.sql (ветка 3.6)

Известный пример донастройки (если колонки ещё нет):

-- только если у вас старая таблица history_log без timestamp
ALTER TABLE glaber.history_log ADD COLUMN timestamp UInt64 DEFAULT 0;

После смены пакетов убедитесь, что в glaber_server.conf модуль истории указывает на тот же URL/учётные данные ClickHouse.


Возможные проблемы и решения

glaber-server не стартует / ошибка версии БД

journalctl -u glaber-server -n 100 --no-pager
tail -n 200 /var/log/glaber/glaber_server.log
glaber_server -t
  • Проверьте доступ к PostgreSQL/MySQL и права пользователя БД
  • При жёсткой проверке версии СУБД: AllowUnsupportedDBVersions=1 в /etc/glaber/glaber_server.conf
  • Не прерывайте процесс, пока в логе идёт применение dbpatches

Веб-интерфейс пустой / старый JS / ошибки Vue

  • Ctrl+F5 или очистка кэша браузера
  • Проверьте, что пакет glaber-frontend-php обновился и есть /usr/share/glaber/dist/vue-app.js (или актуальный бандл из пакета)
  • nginx -t, статус php-fpm, права на /etc/glaber/web/

Списки Problems/Items тормозят или отдают 502/504

  • Увеличьте memory_limit PHP и fastcgi_buffers / таймауты nginx
  • Установите APCu
  • Уменьшите search_limit в настройках UI при очень больших выборках

Прокси не отдаёт данные

  • Обновите прокси до 3.6
  • Проверьте шифрование и таймауты server↔proxy
  • Сверьте время (NTP) на сервере и прокси

Предупреждение про ValueCacheSize

Информационное: параметр можно удалить из конфига. На работу 3.6 не влияет.


Откат

Если сервер 3.6 ещё не применял патчи БД (сразу после установки, до успешного старта)

Можно вернуть пакеты 3.5 и прежний glaber.list с .../repo/3.5/..., восстановить конфиги из /tmp/glaber_config_backup_pre36.tar.gz.

Если 3.6 уже отработал DB upgrade

  1. Остановите glaber-server
  2. Восстановите дамп БД /tmp/glaber_backup_pre36.sql
  3. Верните пакеты и репозиторий 3.5 (или 3.4 — по вашей исходной версии)
  4. Восстановите конфиги из архива
  5. Запустите сервисы прежней версии

Для 3.4 откат путей — по разделу «Откат миграции» в migration_34_to_35.md.


Краткий чеклист

  • [ ] Бэкап конфигурационной БД и /etc/glaber (или /etc/zabbix на 3.4)
  • [ ] Репозиторий переключён на https://glaber.io/repo/3.6/...
  • [ ] Обновлены server, frontend, nginx-conf (и proxy/agent при использовании)
  • [ ] Конфиг БД и ClickHouse на месте; пути без zabbix (для бывших 3.4)
  • [ ] glaber-server стартовал, в логе нет ошибок upgrade
  • [ ] UI открывается, Vue-списки Problems/Items работают после Ctrl+F5
  • [ ] Прокси на 3.6, данные с узлов поступают
  • [ ] Пользователи уведомлены об изменениях в интерфейсе списков

Заключение

Миграция 3.5 → 3.6 — в основном обновление пакетов и проверка UI/прокси. Миграция 3.4 → 3.6 дополнительно требует перевода путей и имён с zabbix на glaber (как при переходе на 3.5).

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