DOC / 1524 SysAdminHub.ru

Как перенести Zabbix Proxy на новый сервер

Перенос Zabbix Proxy

Что нужно сделать перед переносом Zabbix Proxy

В моём случае старый Zabbix Proxy работает на Ubuntu 20.04, а новый сервер подготовлен на Ubuntu 24.04. Цель — сначала перенести существующий Proxy на новую операционную систему, сохранив его конфигурацию, а затем отдельно выполнить обновление Zabbix.

Перед началом работ рекомендую:

  • проверить текущую версию Zabbix Proxy;
  • определить используемую базу данных;
  • проверить расположение SQLite-базы;
  • сохранить конфигурацию Proxy;
  • сохранить конфигурацию Zabbix Agent, если он установлен;
  • подготовить новый сервер;
  • предусмотреть возможность быстрого возврата на старый Proxy.

Перенос самого Zabbix Server я разбирал отдельно в статье Как перенести Zabbix на новый сервер.

Проверяем старый Zabbix Proxy

Перед установкой нового сервера посмотрим версию существующего Proxy:

zabbix_proxy --version

Также проверим операционную систему:

lsb_release -a

И определим расположение базы данных:

grep -E '^[[:space:]]*DBName=' /etc/zabbix/zabbix_proxy.conf

При использовании стандартной конфигурации SQLite результат будет примерно таким:

DBName=/var/lib/zabbix/zabbix_proxy.db

Устанавливаем Zabbix Proxy на новый сервер

На новом сервере сначала подключим репозиторий той же основной версии Zabbix, которая используется на старом Proxy.

В моём случае используется ветка Zabbix 6.0 и Ubuntu 24.04:

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu24.04_all.deb

sudo dpkg -i zabbix-release_latest_6.0+ubuntu24.04_all.deb

sudo apt update

Если у вас другая операционная система или версия Zabbix, необходимо выбрать соответствующий пакет на официальном сайте Zabbix.

Устанавливаем Zabbix Proxy с поддержкой SQLite и Zabbix Agent:

sudo apt install zabbix-proxy-sqlite3 zabbix-agent

После установки пока не запускаем новый Proxy.

Если служба была запущена автоматически, остановим её:

sudo systemctl stop zabbix-proxy

Настраиваем часовой пояс нового сервера

В моём случае сервер работает в московском часовом поясе:

sudo timedatectl set-timezone Europe/Moscow

Проверить текущие настройки времени можно командой:

timedatectl

Останавливаем старый Zabbix Proxy

Теперь возвращаемся на старый сервер и останавливаем Proxy:

sudo systemctl stop zabbix-proxy

Проверяем состояние:

systemctl status zabbix-proxy --no-pager

Служба должна находиться в состоянии:

Active: inactive (dead)

Создаём резервную копию SQLite-базы

После остановки Proxy можно безопасно скопировать файл SQLite.

Если используется стандартный путь:

sudo cp /var/lib/zabbix/zabbix_proxy.db ~/zabbix_proxy.db.backup

Проверим файл:

ls -lh ~/zabbix_proxy.db.backup

Почему не стоит хранить базу Zabbix Proxy в /tmp

В старой конфигурации я использовал путь:

DBName=/tmp/zabbix_proxy.db

Сейчас такой вариант я не рекомендую. Каталог /tmp предназначен для временных файлов и может очищаться операционной системой.

Zabbix Proxy использует локальную базу не только как технический файл конфигурации. В ней могут находиться собранные данные, которые ещё не были переданы на Zabbix Server. Если база неожиданно исчезнет, эти данные можно потерять.

Поэтому для SQLite лучше использовать стандартное постоянное расположение:

/var/lib/zabbix/zabbix_proxy.db

Сохраняем конфигурацию Zabbix Proxy

Теперь сохраним основной конфигурационный файл:

sudo cp /etc/zabbix/zabbix_proxy.conf ~/zabbix_proxy.conf.backup

Если на сервере используется классический Zabbix Agent:

sudo cp /etc/zabbix/zabbix_agentd.conf ~/zabbix_agentd.conf.backup

Если используется Agent 2:

sudo cp /etc/zabbix/zabbix_agent2.conf ~/zabbix_agent2.conf.backup

Проверим созданные файлы:

ls -lh ~/zabbix*.backup

Переносим файлы на новый сервер

Теперь необходимо перенести на новый сервер:

  • zabbix_proxy.db.backup;
  • zabbix_proxy.conf.backup;
  • конфигурацию Zabbix Agent, если она нужна.

Я использовал для этого WinSCP, но можно воспользоваться SCP, SFTP или другим удобным способом.

Например, через scp:

scp ~/zabbix_proxy.db.backup root@NEW_PROXY_IP:/root/
scp ~/zabbix_proxy.conf.backup root@NEW_PROXY_IP:/root/
scp ~/zabbix_agentd.conf.backup root@NEW_PROXY_IP:/root/

Восстанавливаем конфигурацию на новом сервере

На новом сервере сначала убедимся, что Zabbix Proxy остановлен:

sudo systemctl stop zabbix-proxy

Восстанавливаем конфигурацию:

sudo cp ~/zabbix_proxy.conf.backup /etc/zabbix/zabbix_proxy.conf

Если переносится конфигурация агента:

sudo cp ~/zabbix_agentd.conf.backup /etc/zabbix/zabbix_agentd.conf

Восстанавливаем SQLite-базу

Для стандартного расположения базы:

sudo cp ~/zabbix_proxy.db.backup /var/lib/zabbix/zabbix_proxy.db

Назначаем правильного владельца:

sudo chown zabbix:zabbix /var/lib/zabbix/zabbix_proxy.db

И права доступа:

sudo chmod 640 /var/lib/zabbix/zabbix_proxy.db

Проверяем:

ls -l /var/lib/zabbix/zabbix_proxy.db

Результат должен выглядеть примерно так:

-rw-r----- 1 zabbix zabbix 3497984 Dec 16 18:22 /var/lib/zabbix/zabbix_proxy.db

Проверяем конфигурацию перед запуском

Перед переключением IP я рекомендую проверить основные параметры перенесённой конфигурации:

grep -E '^(Server|Hostname|DBName|TLSConnect|TLSAccept|TLSPSKIdentity|TLSPSKFile)=' /etc/zabbix/zabbix_proxy.conf

Особенно важны:

  • Server — адрес Zabbix Server;
  • Hostname — имя Proxy, совпадающее с настройкой на Zabbix Server;
  • DBName — путь к SQLite-базе;
  • параметры TLS/PSK, если используется шифрование.

Переносим IP-адрес старого Proxy на новый сервер

В моём случае новый сервер должен получить тот же IP-адрес, который использовался старым Zabbix Proxy. Благодаря этому не требуется менять сетевые правила и настройки устройств, которые обращаются непосредственно к Proxy по IP.

Сначала старый сервер должен быть выключен или отключён от сети, чтобы не возник конфликт IP-адресов.

На новом сервере определяем имя сетевого интерфейса:

ip link show

Например:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    link/ether 00:0c:29:bf:b8:9c
    altname enp3s0

В моём случае интерфейс называется ens160.

Изменяем Netplan

Посмотрим существующие файлы:

ls -l /etc/netplan/

После этого открываем нужный YAML-файл:

sudo nano /etc/netplan/ИМЯ-ФАЙЛА.yaml

Меняем IP-адрес, шлюз и DNS в соответствии с конфигурацией сети.

Перед применением конфигурации можно проверить её более безопасным способом:

sudo netplan try

Если всё работает корректно, применяем настройки:

sudo netplan apply

После изменения IP текущая SSH-сессия, скорее всего, оборвётся. Подключитесь к серверу уже по новому адресу.

Запускаем Zabbix Proxy на новом сервере

После переноса базы, конфигурации и сетевых настроек запускаем Proxy:

sudo systemctl start zabbix-proxy

Проверяем состояние:

systemctl status zabbix-proxy --no-pager

Если всё настроено правильно, служба должна находиться в состоянии:

Active: active (running)

Проверяем журнал Zabbix Proxy

Сразу после первого запуска рекомендую открыть журнал:

sudo tail -f /var/log/zabbix/zabbix_proxy.log

Дополнительно можно посмотреть сообщения systemd:

sudo journalctl -u zabbix-proxy -n 100 --no-pager

Обращайте внимание на ошибки:

  • открытия SQLite-базы;
  • прав доступа;
  • подключения к Zabbix Server;
  • несовпадения имени Proxy;
  • TLS или PSK;
  • получения конфигурации;
  • отправки накопленных данных.

Проверяем Zabbix Proxy в веб-интерфейсе

Теперь открываем веб-интерфейс Zabbix Server и переходим в раздел управления Proxy.

Находим перенесённый Proxy и смотрим время его последнего подключения.

Проверка Zabbix Proxy после переноса на новый сервер

В моём случае Proxy подключался к серверу 5 секунд назад.

Обновляем страницу:

Zabbix Proxy успешно подключён к серверу после переноса

Теперь последнее подключение было секунду назад. Значит, новый Proxy успешно связывается с Zabbix Server.

Что проверить после переноса

После запуска нового сервера я рекомендую проверить:

  1. состояние службы zabbix-proxy;
  2. журнал zabbix_proxy.log;
  3. подключение Proxy к Zabbix Server;
  4. поступление свежих данных от хостов;
  5. отсутствие роста очереди мониторинга;
  6. работу активных и пассивных проверок;
  7. работу TLS/PSK, если используется шифрование;
  8. работу Zabbix Agent на самом Proxy;
  9. сетевую доступность устройств из новой системы.

Старый сервер лучше не удалять сразу. Оставьте его выключенным до тех пор, пока не убедитесь, что новый Proxy стабильно работает.

Обновляем Zabbix Proxy после переноса

В моём случае перенос был только первым этапом. После успешной миграции Zabbix Proxy 6.0 на Ubuntu 24.04 я отдельно обновил его до Zabbix 7.0 LTS.

Разделение этих операций сильно упрощает диагностику: если после переноса что-то перестало работать, мы точно знаем, что проблема относится к миграции сервера, а не к одновременному обновлению основной версии Zabbix.

Сам процесс обновления разобран в статье Как обновить Zabbix Proxy с версии 6.0 до 7.0.

Часто задаваемые вопросы

Нужно ли переносить базу данных Zabbix Proxy?

Если требуется максимально аккуратно перенести текущий Proxy и сохранить ещё не переданные на сервер данные, SQLite-базу лучше перенести вместе с конфигурацией. Перед копированием остановите старый Proxy.

Можно ли одновременно запустить старый и новый Zabbix Proxy?

Не следует запускать два экземпляра с одной и той же идентичностью Proxy. После создания финальной копии базы старый Proxy оставьте остановленным, а затем вводите в работу новый сервер.

Можно ли хранить SQLite-базу Zabbix Proxy в /tmp?

Лучше использовать постоянный каталог, например стандартный /var/lib/zabbix. Каталог /tmp предназначен для временных файлов и может очищаться системой, что создаёт ненужный риск потери локальных данных Proxy.

Нужно ли устанавливать PHP на Zabbix Proxy?

Нет, если на сервере работает только Zabbix Proxy и нет веб-интерфейса. Для самого процесса Proxy PHP не требуется.

Обязательно ли сохранять старый IP-адрес Proxy?

Нет. Новый сервер может использовать другой IP-адрес, если соответствующим образом изменить сетевые правила и настройки систем, которые обращаются к Proxy. Сохранение старого IP просто упрощает миграцию в инфраструктуре, где этот адрес уже используется.

Нужно ли сразу обновлять Zabbix Proxy до новой версии?

При миграции удобнее сначала перенести существующую версию и убедиться, что она работает на новом сервере. После этого обновление до новой основной версии можно выполнить отдельным этапом.

Как понять, что перенос Zabbix Proxy прошёл успешно?

Проверьте состояние службы, журнал Proxy, время последнего подключения в веб-интерфейсе Zabbix и поступление свежих данных от хостов, обслуживаемых этим Proxy.

Заключение

В этой статье мы перенесли Zabbix Proxy на новый сервер: установили ту же ветку Zabbix, остановили старый Proxy, сохранили SQLite-базу и конфигурацию, перенесли их на новую систему, настроили сеть и проверили подключение к Zabbix Server.

Главное при такой миграции — не совмещать сразу несколько серьёзных изменений. Сначала лучше перенести Proxy без изменения его основной версии, убедиться, что мониторинг работает штатно, и только затем переходить к обновлению Zabbix.

Также я больше не рекомендую размещать SQLite-базу Proxy в /tmp. Для рабочей системы безопаснее использовать постоянный каталог /var/lib/zabbix, чтобы база не зависела от механизма очистки временных файлов.

После успешного переноса можно переходить к следующему этапу: Как обновить Zabbix Proxy с версии 6.0 до 7.0.

Также рекомендую статью Как перенести Zabbix на новый сервер.

ORIGINAL / ATTRIBUTION

Источник материала

Материал взят с https://sysadminhub.ru/. Оригинальная статья и авторство указаны по ссылке ниже.

Оригинал статьи на SysAdminHub.ru ↗

https://sysadminhub.ru/other/zabbix/how-to-migrate-zabbix-proxy-to-a-new-server

Материал проверен 10.10.2026. При изменении программного обеспечения сверяйтесь с актуальной документацией.
← Вернуться в базу знаний