ADG Оставить заявку
Блог Системное администрирование 5 мин чтения

Zabbix 3.0 LTS: мигрируем с 2.4, разбираемся с новым dashboard и меньшей нагрузкой на БД

Перевели часть управляемых узлов с Zabbix 2.4 на 3.0 LTS: новый веб-интерфейс, миграция шаблонов и заметно спокойнее стало на PostgreSQL под нагрузкой.

Контекст момента

Zabbix 3.0 LTS вышел в феврале 2016 года с переработанным веб-интерфейсом, новыми встроенными шаблонами и улучшенным агентом

Zabbix 3.0 вышел в феврале, и мы полгода смотрели на него с некоторым скепсисом: релиз крупный, LTS-статус обязывает, но торопиться с апгрейдом продакшн-мониторинга не хотелось. В конце июля всё же решили - и перевели три управляемых сервера с Zabbix 2.4 на 3.0. Ниже - что реально изменилось и где потратили время.

Почему вообще обновляться

Zabbix 2.4 у нас работал стабильно, жаловаться было особо не на что. Повод появился не из любви к свежим версиям, а из-за PostgreSQL: на одном из серверов с двумястами хостами база стала всё заметнее греть диск. housekeeper не справлялся в окно, история копилась. Посмотрели changelog 3.0 - там честно написано про переработку внутренних запросов к БД и улучшенный housekeeper. Это стало главным аргументом.

Дополнительно: поддержка Zabbix 2.4 уже ограниченная, новые шаблоны под современные версии ПО выходят под 3.x.

Что в 3.0 реально новое

Веб-интерфейс переписан с нуля - теперь Bootstrap, адаптивная верстка, меньше раздражающих перезагрузок страницы при навигации. Старый интерфейс выглядел как что-то из 2008 года, новый - как что-то из 2014-го. Субъективно, но заметно.

Dashboard стал модульным: виджеты двигаются, можно собрать под себя. До этого дашборд в Zabbix был скорее формальностью - никто особо не смотрел, смотрели на графики в разделе Graphs. Теперь это может стать рабочим экраном дежурного, хотя нам потребовалось некоторое время чтобы собрать его в удобном виде.

Шаблоны - в комплекте пришли обновлённые шаблоны для Linux, Windows, сетевого оборудования. Несколько из них ощутимо переработаны: добавлены новые items, LLD-правила стали аккуратнее. Это создало небольшую проблему при миграции (об этом ниже).

Zabbix Agent обновился до 3.0 - расширен список поддерживаемых платформ, несколько новых ключей для мониторинга. Агент 3.0 совместим с сервером 2.x в обоих направлениях, что удобно при постепенном апгрейде.

Процесс миграции

Апгрейд сам по себе несложный: стандартная процедура через zabbix_server --version, обновление пакетов, накатка скриптов миграции БД из поставки. На PostgreSQL прошло без сюрпризов, скрипт отработал за несколько минут.

Проблема оказалась в шаблонах. Если просто обновить сервер, старые шаблоны продолжают работать - Zabbix сохраняет обратную совместимость. Но если хочешь перейти на новые встроенные шаблоны, нужно принять решение: старые данные истории под старыми item-ами останутся, новые item-ы начнут писать новую историю с нуля. Мы прошли этот путь на тестовом сервере сначала.

Что сделали:

  • Экспортировали все кастомные шаблоны из 2.4 в XML перед апгрейдом.
  • После апгрейда импортировали их обратно - Zabbix 3.0 читает шаблоны 2.4 нормально, но предупреждает о deprecated-полях.
  • Встроенные шаблоны обновили только там, где не было кастомных расширений - проще всего на хостах с чисто стандартным набором.
  • Гибридные хосты оставили на старых шаблонах пока. Переводить будем постепенно, с потерей истории смирились.

На три сервера ушло около дня работы, включая проверку что всё что мониторилось до - мониторится после.

Нагрузка на БД

Вот здесь разница заметная. На сервере с двумястами хостами - том самом, где housekeeper стал хроническим источником радости - после обновления PostgreSQL работает существенно спокойнее. Housekeeper укладывается в ночное окно, запросы к history и history_uint стали короче. Zabbix 3.0 изменил несколько внутренних запросов и переработал механику housekeeper.

Точные цифры не приводим - стенды разные, конфигурации БД разные, сравнение будет некорректным. Но качественно: там где PostgreSQL периодически уходил в load average 3-4 на housekeeper-пике, теперь 1-1.5. Это ощутимо.

Новый dashboard в работе

Модульный дашборд потребовал времени на настройку. По умолчанию он набит виджетами, половина из которых не нужна: System information, Status of Zabbix, Latest problems - всё это полезно, но занимает место. Под наш режим работы собрали дашборд из четырёх виджетов: проблемы по severity, график нагрузки на топ-5 хостов, статус триггеров по группам хостов, сводка по discovery.

Одно неудобство: дашборд пока один на пользователя, переключаться между разными наборами виджетов нельзя. Для команды это означает что у каждого свой вид, но общего «дежурного экрана» не сделаешь без отдельного пользователя под него. Небольшой изъян, но раздражает.

Параллельно с Prometheus

В июле мы поднимали Prometheus рядом с Zabbix для метрик контейнеров. Обновление Zabbix никак с этим не конфликтует - они решают разные задачи. Zabbix остался за хостами, сервисами, SNMP и железом. Prometheus - за динамическими Docker-окружениями где регистрировать каждый контейнер в Zabbix неудобно.

Разделение пока работает нормально, хотя два инструмента мониторинга в параллель - это дополнительный overhead на поддержку.

Где сейчас

Три сервера на 3.0 работают третью неделю. Регрессов не поймали, данные собираются корректно, housekeeper больше не создаёт проблем. Остальные управляемые серверы на Zabbix 2.4 переводим постепенно - по одному, без спешки. LTS-статус у 3.0 есть, но мы не торопимся гнать весь парк разом.

Главный вывод: апгрейд того стоит из-за нагрузки на БД, если у вас больше сотни хостов на Zabbix. Новый интерфейс - приятный бонус, но не причина.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.