Поиск по сайту

telegram

Интересуешься IT и системным администрированием? Подпишись на наш канал, где мы делимся инсайдами, новостями и практическими советами! Прокачай свои навыки вместе с нами!

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

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

Хотя процесс переноса Zabbix Proxy менее сложен, чем перенос Zabbix Server, он все равно требует внимания и точного следования инструкции. Ошибки могут привести к потере данных мониторинга или нарушению связи между прокси и сервером.

В прошлой статье я подробно рассказывал, как безопасно и эффективно перенести Zabbix Server. В этой статье мы шаг за шагом разберем процесс переноса Zabbix Proxy, сохраняя ваши данные и минимизируя риски для работы системы.

Онлайн-курс: Zabbix 6. Мониторинг IT инфраструктуры предприятия.

Курс предлагает глубокое изучение Zabbix 6 и охватывает все ключевые аспекты: от установки и конфигурации до продвинутого мониторинга и автоматизации. Курс подходит как для начинающих, так и для опытных администраторов.

Предисловие

В настоящее время мой Zabbix Proxy 6 работает на сервере с Ubuntu 20.04 и PHP 7.3. Однако, чтобы перейти на Zabbix 7, потребуется обновить окружение, поскольку новая версия больше не поддерживает ни эту операционную систему, ни устаревший PHP. План действий ясен: сначала мигрируем Zabbix 6 на новый сервер с Ubuntu 24.04 и PHP 8.3, а затем займемся обновлением до Zabbix 7. Вперед к переносу — шаг за шагом!

Так же важно отметить, что перед началом переноса Zabbix Proxy на новый сервер обязательно создайте хотя бы снепшот виртуальной машины старого сервера. В идеале — выполните полноценный бэкап. Это позволит вам в случае возникновения проблем быстро восстановить работу старого сервера и избежать потери данных.

Для начала нужно установить Zabbix Proxy на новый сервер — это станет фундаментом для успешного переноса текущей версии и обеспечит стабильную работу в будущем.

Важно отметить: для успешного переноса Zabbix на новый сервер необходимо установить ту же версию, которая сейчас работает на вашем текущем сервере. Это гарантирует совместимость данных и упрощает процесс миграции.

Установка Zabbix Proxy

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


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

Эти команды взяты с официального сайта Zabbix и предназначены для установки Zabbix Proxy 6 на Ubuntu 24.04. Если у вас другая версия Zabbix или другая операционная система, вам потребуется подобрать соответствующие команды для своей конфигурации.

Если у вас появятся вопросы или что-то останется неясным, у меня есть подробная инструкция по установке Zabbix, которая поможет вам разобраться.

Далее, устанавливаем Zabbix Proxy вместе с необходимыми зависимостями для его работы. Это включает сам прокси-сервер и поддержку базы данных SQLite3, которая используется для хранения данных. А так же установим агента Zabbix.


apt install zabbix-proxy-sqlite3 zabbix-agent

Я обычно выбираю SQLite3 в качестве базы данных для Zabbix Proxy, так как она отлично подходит для Zabbix Proxy благодаря своей легковесности и простоте. Она не требует настройки отдельного сервера базы данных, что упрощает развертывание. Это идеальное решение для небольших инсталляций или прокси, работающих в условиях ограниченных ресурсов. К тому же SQLite3 — это встроенная, надежная и быстрая база данных, которая минимизирует эксплуатационные затраты.

Далее, настраиваем часовой пояс. В моем случае это +3 (Москва). Для этого выполняем следующую команду:


timedatectl set-timezone Europe/Moscow

Копирование базы данных SQLite3

Подключаемся к нашему старому Zabbix Proxy и сначала останавливаем его службу. Для этого выполняем команду:


service zabbix-proxy stop

После остановки можно убедиться, что служба действительно остановлена, с помощью команды:


service zabbix-proxy status

● zabbix-proxy.service - Zabbix Proxy
Loaded: loaded (/lib/systemd/system/zabbix-proxy.service; enabled; vendor >
Active: inactive (dead) since Mon 2024-12-16 15:20:08 UTC; 1s ago
Process: 890 ExecStart=/usr/sbin/zabbix_proxy -c $CONFFILE (code=exited, st>
Process: 161607 ExecStop=/bin/sh -c [ -n "$1" ] && kill -s TERM "$1" -- $MA>
Main PID: 947 (code=exited, status=0/SUCCESS)
Dec 13 13:59:38 zabbixproxy systemd[1]: Starting Zabbix Proxy...
Dec 13 13:59:39 zabbixproxy systemd[1]: Started Zabbix Proxy.
Dec 16 15:20:06 zabbixproxy systemd[1]: Stopping Zabbix Proxy...
Dec 16 15:20:08 zabbixproxy systemd[1]: zabbix-proxy.service: Succeeded.
Dec 16 15:20:08 zabbixproxy systemd[1]: Stopped Zabbix Proxy.

Чтобы выйти из режима просмотра статуса, нажмите CTRL + C.

Теперь переходим к следующему шагу — копированию файла базы данных Zabbix Proxy. По умолчанию база данных находится в директории /var/lib/zabbix/zabbix_proxy.db. Для её резервного копирования обычно используется команда:


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

Однако у меня есть немного иной подход. Я предпочитаю перемещать базу данных в каталог /tmp, предназначенный для временного хранения данных. Это можно сделать, изменив путь в настройках, прописав:


DBName=/tmp/zabbix_proxy.db

Эта запись указывает Zabbix Proxy использовать временный каталог /tmp для хранения базы данных. После перезагрузки сервера база данных будет автоматически пересоздана.

Почему я выбираю такой подход? Всё просто: это позволяет избежать чрезмерного разрастания базы данных и экономит место. Дело в том, что база данных Zabbix Proxy хранит лишь данные за последние одну-две минуты, которых вполне достаточно для передачи информации на сервер Zabbix. После отправки данные становятся ненужными и просто удаляются. Поэтому пересоздание базы данных после перезагрузки сервера — это практичное решение.

Таким образом, моя команда для резервного копирования выглядит так:


cp /tmp/zabbix_proxy.db ~/zabbix_proxy.db.backup

Полученный файл zabbix_proxy.db.backup будет сохранен в корневой директории пользователя root.

После копирования файла базы данных следующий шаг — сохранить резервную копию файла конфигурации Zabbix Proxy. Для этого используем команду:


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

Это позволит сохранить текущие настройки прокси-сервера для последующего использования на новом сервере.

После копирования файла конфигурации Zabbix Proxy следующий шаг — сохранить резервную копию файла конфигурации Zabbix агента. Для этого используем команду:


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

Это позволит сохранить текущие настройки агента Zabbix для последующего использования на новом сервере.

Как вы могли заметить, файлы zabbix_proxy.conf.backup и zabbix_agentd.conf.backup также будут находиться в корневой директории пользователя root.

Восстановление базы данных SQLite3

Далее, с помощью любого файлового менеджера, переносим файл резервной копии базы данных и файл конфигурации Zabbix Proxy из корневой директории пользователя root на старом сервере /root/zabbix/zabbix_proxy.db.backup и /root/zabbix/zabbix_proxy.conf в корневую директорию пользователя root на новом сервере. Я предпочитаю использовать файловый менеджер WinSCP для таких задач.

После того как резервная копия базы данных и файл конфигурации Zabbix Proxy были успешно перенесены на новый сервер, приступаем к их восстановлению. Для этого выполните следующие команды:


cp ~/zabbix_proxy.conf.backup /etc/zabbix/zabbix_proxy.conf
cp ~/zabbix_proxy.db.backup /tmp/zabbix_proxy.db
cp ~/zabbix_agentd.conf.backup /etc/zabbix/zabbix_agentd.conf

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

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


chown zabbix:zabbix /tmp/zabbix_proxy.db
chmod 640 /tmp/zabbix_proxy.db

Почему это важно?

Zabbix Proxy запускается от имени системного пользователя zabbix. Чтобы прокси мог работать с файлом базы данных SQLite3 (чтение и запись данных), этот пользователь должен обладать соответствующими правами на файл.

Если права доступа не настроены корректно:

  • В логах Zabbix Proxy появится ошибка о невозможности открыть базу данных.
  • Proxy не сможет отправлять данные на сервер, что нарушит работу мониторинга.

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


ls -ld /tmp/zabbix_proxy.db

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

Эта команда отобразит текущие владельца файла, группу и установленные права доступа, чтобы вы могли убедиться, что всё настроено правильно.

Изменение IP-адреса на новом сервере Zabbix Proxy

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

Сначала определяем имя сетевого адаптера с помощью команды:


ip link show

1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens160:  mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bf:b8:9c brd ff:ff:ff:ff:ff:ff
    altname enp3s0

Как видно из вывода, имя моего адаптера — ens160, и именно его будем настраивать.

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


nano /etc/netplan/*.yaml

В открывшемся файле изменяем IP-адрес на нужный, после чего сохраняем изменения, нажав CTRL + X, затем Y, и подтверждаем клавишей Enter.

Для применения новых настроек выполняем:


netplan --debug apply

После применения настроек, ваша SSH-сессия зависнет. Это нормально, так как изменился IP-адрес. Имейте это в виду. Чтобы снова подключиться к серверу, откройте новое SSH-соединение с обновленным IP-адресом.

Теперь переходим к следующему шагу — запуску Zabbix Proxy на новом сервере и проверке его статуса. Для этого выполните команды:


service zabbix-proxy start
service zabbix-proxy status

Если всё настроено правильно, прокси-сервер должен запуститься без проблем, и статус службы будет отображаться как active (running).

Что делать, если Zabbix Proxy не запускается?

Если прокси не стартовал, проверьте журналы логов, чтобы выявить и устранить причину ошибки. Это можно сделать с помощью команды:


cat /var/log/zabbix/zabbix_proxy.log

Анализ логов поможет вам понять, в чём проблема, будь то права на базу данных, неверный путь к конфигурации или другие нюансы.

Отлично, на этом процесс переноса завершён!

Проверка работоспособности Zabbix Proxy

Открываем веб-интерфейс нашего Zabbix сервера и переходим в раздел Administration → Proxies. Здесь обращаем внимание на колонку, отображающую время последнего подключения прокси-сервера.

Как видно в моём случае, прокси-сервер был виден 5 секунд назад. Обновляем страницу

Теперь 1 секунды назад. Это означает, что прокси-сервер успешно работает и подключён к серверу.

Заключение

В этой статье вы узнали, как перенести Zabbix Proxy на новый сервер. Мы пошагово разобрали весь процесс — от установки нового окружения и переноса базы данных до восстановления конфигурации и проверки работоспособности прокси-сервера. Благодаря подробной инструкции миграция становится понятной и не вызывает сложностей. Теперь ваш обновленный Zabbix Proxy готов к стабильной работе в новой среде.

В данном случае я выполнил перенос Zabbix Proxy с использованием базы данных SQLite3, что упростило процесс резервного копирования и восстановления. Такой подход отлично подходит для небольших инсталляций или прокси с минимальными требованиями к ресурсам. Если же у вас используется другая база данных или более сложная инфраструктура, могут потребоваться дополнительные шаги для миграции, такие как настройка удалённого подключения или перенос MySQL/PostgreSQL.

Вам понравилась эта статья? Тогда вам, скорее всего, будет интересна другая полезная статья Как мигрировать базу данных Zabbix с MySQL на PostgreSQL.

Интересуешься IT и системным администрированием? Подпишись на SysAdminHub в Телеграмм или Макс, чтобы узнавать обо всем первым!

Комментарии (0)

Здесь не опубликовано еще ни одного комментария

Оставьте свой комментарий

0 Значки
Вложения (0 / 5)
Поделитесь своим местоположением