Поиск по сайту
Интересуешься 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 в Телеграмм или Макс, чтобы узнавать обо всем первым!
Статья была полезна? Поддержи автора, и благодаря твоей помощи новые материалы будут выходить еще чаще:
