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

Sidebar

Zabbix Summit 2022
View presentations

1 Кластер высокой доступности

Обзор

Высокая доступность (HA) обычно требуется в критически важных инфраструктурах, которым необходимо практически полное отсутствие простоя. Таким образом, любой сервис, который потенциально может выйти из строя, должен иметь вариант аварийного переключения на случай сбоя текущего сервиса.

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

Переключение на Zabbix HA ни к чему не обязывает. Вы можете переключиться на автономный режим в любой момент.

Смотрите также: Детали реализации

Включение высокой доступности

Запуск Zabbix сервера нодой кластера

Чтобы запустить Zabbix сервер нодой кластера необходимо указать два параметра в конфигурации сервера:

  • Параметр HANodeName необходимо указать каждому Zabbix серверу, который будет нодой HA кластера.

Это имя на которое сервер будет ссылаться в конфигурациях агентов и прокси (например, zabbix-node-01). Если вы не укажите HANodeName, сервер запустится в автономном режиме.

  • Параметр NodeAddress необходимо указать каждой ноде.

Параметр NodeAddress (адрес:порт) будет использован Zabbix веб-интерфейсом для подключения к активной ноде. NodeAddress должен соответствовать IP или FQDN имени соответствующего Zabbix сервера.

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

zabbix_server -R ha_status

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

Подготовка веб-интерфейса

Убедитесь, что адрес:порт Zabbix сервера не указаны в конфигурации веб-интерфейса (находится в conf/zabbix.conf.php в директории с файлами веб-интерфейса).

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

Настройка прокси

Для активации подключения к нескольких серверам в инсталляции с высокой доступностью перечислите адреса HA нод в Server параметре прокси, разделив адреса точкой с запятой.

Ноды (сервера) HA кластера необходимо перечислить в конфигурации как пассивных, так и активных Zabbix прокси.

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

Server=zabbix-node-01,zabbix-node-02

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

ServerActive=zabbix-node-01;zabbix-node-02
Настройка агента

Для активации подключения к нескольким серверам в инсталляции с высокой доступностью перечислите адреса HA нод в ServerActive параметре агента, разделив адреса точкой с запятой.

Ноды (сервера) HA кластера необходимо перечислить в конфигурации Zabbix агента или Zabbix агента 2.

Чтобы активировать пассивные проверки, имена нод необходимо перечислить в Server параметре, разделяя имена нод запятой.

Server=zabbix-node-01,zabbix-node-02

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

ServerActive=zabbix-node-01;zabbix-node-02

Автоматическое переключение на резервную ноду

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

Как быстро произойдет автоматическое переключение? Все ноды обновляют свое время последнего доступа (и состояния, если он меняется) каждые 5 секунд. Таким образом:

  • Если активная нода выключается и успевает сообщить свое состояние как "остановлена", другая нода подхватит нагрузку в течении 5 секунд.

  • Если активная нода выключается / становится недоступной без возможности обновить свое состояние, резервные ноды будут ожидать задержку автоматического переключения + 5 секунд перед тем как принять нагрузку на себя

Задержка автоматического переключения настраивается, поддерживаемый диапазон от 10 секунд до 15 минут (по умолчанию одна минута). Чтобы изменить задержку автоматического переключения, вы можете выполнить:

zabbix_server -R ha_set_failover_delay=5m

Управление HA кластером

Текущим состоянием HA кластера можно управлять при помощи выделенных опций управления работой:

  • ha_status - вывод состояния HA кластера в журнал Zabbix сервера;
  • ha_remove_node=цель - удаление HA ноды заданной своим <цель> - номером активной ноды в списке (номер можно получить с вывода выполнения ha_status), например:
zabbix_server -R ha_remove_node=2

Обратите внимание, что активные / резервные ноды нельзя удалить.

  • ha_set_failover_delay=задержка - установка задержки аварийного переключения HA (от 10 секунд до 15 минут; поддерживаются суффиксы времени, такие как, 10s, 1m)

Состояние нод можно отслеживать:

  • в ОтчетыИнформация о системе
  • в виджете Информация о системе панели
  • используя опцию ha_status управления работой на стороне сервера (см. выше).

Для обнаружения нод можно использовать внутренний элемент данных zabbix[cluster,discovery,nodes], поскольку этот элемент данных возвращает JSON данные с информацией о нодах высокой доступности.

Отключение высокой доступности

Чтобы отключить кластер высокой доступности:

  • сделайте архивные копии файлов конфигурации
  • остановите резервные ноды
  • удалите HANodeName параметр на основном активном сервере
  • перезапустите основной сервер (он запустится в автономном режиме)

Детали реализации

Кластер высокой доступности (HA) является опциональным решением и поддерживается для Zabbix сервера. Собственное решение HA разработано с учетом более простого использования, это решение будет работать между разными площадками и не потребует никаких особых требований к базам данных, которые распознаются Zabbix. Пользователи могут свободно выбирать использовать собственное решение Zabbix HA или же стороннее решение HA, в зависимости от того, какое решение наилучшим образом подходит под требования высокой доступности в их среде.

Решение состоит из нескольких экземпляров zabbix_server или нод. Каждая нода:

  • настраивается отдельно (файл конфигурации, скрипты, шифрование, экспорт данных)
  • использует ту же базу данных
  • имеет несколько режимов: активная, резервная, недоступная, остановленная

Только одна нода может быть активной (рабочей) в один момент времени. Резервные ноды не выполняют сбор данных, обработку или какие-либо другие обычные действия сервера; они не слушают порты; имеют минимальное количество подключений к базе данных.

Как активные ноды, так и резервные ноды, эти ноды выполняют обновление времени своего последнего доступа каждые 5 секунд. Каждая резервная нода наблюдает за временем последнего доступа активной ноды. Если время последнего доступа активной ноды превышает 'задержку при аварийном переключении' в секундах, резервная нода переключает себя в в режим активной ноды и назначает состояние 'недоступна' ранее активной ноде.

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

Ноды разработаны с учетом совместимости между минорными версиями Zabbix.