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

Zabbix 2.0: переводим двух клиентов с Nagios и Cacti

Zabbix 2.0 вышел в апреле с новым веб-интерфейсом и low-level discovery. Переводим двух клиентов с Nagios/Cacti - и обнаруживаем, что LLD меняет рабочий процесс всерьёз.

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

Zabbix 2.0 вышел в апреле 2012 с переработанным веб-интерфейсом, low-level discovery и улучшенным масштабированием до 100k+ узлов

Zabbix 2.0 вышел пару недель назад, и мы решили не откладывать: у двух клиентов мониторинг давно требовал пересмотра. Один сидел на Nagios с Cacti для графиков, второй - на голом Nagios без нормального визуала вообще. Оба варианта работали, но поддерживать их становилось всё дороже по времени.

Почему именно сейчас

Nagios у первого клиента разросся до нескольких сотен check-команд в конфигах, которые правили руками. Каждый новый сервер - это правка нескольких файлов, перезагрузка демона и надежда, что ничего не забыли. Cacti рядом держал RRD-графики, но его шаблоны для сетевых интерфейсов мы тоже добавляли вручную. Стандартная картина: два инструмента, слабо связанных между собой, и операционные расходы, которые растут вместе с инфраструктурой.

У второго клиента всё было проще и хуже одновременно: Nagios без Cacti, графиков нет, алерты есть, но понять тренд по alert-истории нельзя. «Мониторинг работает» - в смысле пищит когда плохо. Этого мало.

Zabbix мы смотрели и раньше, но версии 1.x оставляли смешанное впечатление: идея хорошая, интерфейс неудобный, шаблоны надо делать через веб-кликалку. С выходом 2.0 картина изменилась заметно.

Что изменилось в 2.0

Три момента, которые реально влияют на работу:

Новый веб-интерфейс. Не косметический рефреш, а структурный. Карты сетей, дашборды и настройка шаблонов стали значительно удобнее. Это субъективно, но инженер тратит в интерфейсе часы каждую неделю - субъективное удобство конвертируется в реальное время.

Low-level discovery. Вот это - принципиальное изменение. LLD позволяет описать правило обнаружения один раз: допустим, «найди все сетевые интерфейсы на хосте, кроме lo». Zabbix сам опросит хост, получит список интерфейсов и создаст элементы данных и триггеры для каждого - автоматически. То же самое для дисков, файловых систем, томов. Добавляется новый диск на сервере - через следующий цикл discovery он появляется в мониторинге сам, без нашего участия.

Масштабирование. Zabbix 2.0 официально заявляет поддержку схем до 100k+ узлов. Нам такое не нужно, но это говорит о том, что архитектура proxy и distributed monitoring в этой версии доработана. Для клиентов с географически распределёнными офисами это важно.

Как шёл перевод

Начали с первого клиента - он меньше по размеру, проще в плане согласований. Поставили Zabbix 2.0 на отдельную виртуалку на CentOS 6, параллельно с работающим Nagios. Импортировали хосты скриптом - Zabbix поддерживает XML-импорт, список хостов и IP перегнали из Nagios-конфигов простым парсером на Python.

Шаблоны для Linux-хостов взяли из комьюнити-библиотеки Zabbix, подкорректировали под наши пороги. На Windows-хостах - аналогично, через Zabbix-агент.

Потом подключили LLD для файловых систем и сетевых интерфейсов. Правило simple: тип discovery - «файловые системы», фильтр на тип ext4|xfs|ntfs, прототип элемента данных с {#FSNAME} в ключе. Zabbix сам обошёл все хосты и создал элементы. На примерно 80 серверах это заняло минут 20 фонового обхода - против нескольких часов ручной работы в Nagios.

Параллельно работал Cacti. Его мы отключили последним, уже когда убедились, что графики в Zabbix за две недели накопили достаточно истории для сравнения.

Второй клиент пошёл по тому же сценарию, только быстрее - Nagios там был значительно проще.

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

Справедливости ради: несколько моментов потребовали больше времени, чем ожидали.

Zabbix-агент на Windows. Установка и конфигурация не сложнее Nagios NSClient++, но документация по тонким настройкам агента под Windows 2008 R2 на тот момент неполная - пришлось смотреть в форуме и копаться в исходниках.

Триггерные выражения. Синтаксис мощный, но непривычный после Nagios. {host:item.last(0)}>90 читается не сразу. Несколько коллег потратили время на то, чтобы выражения с min() и avg() начали работать ожидаемо.

Импорт из Cacti. Встроенного инструмента импорта данных из RRD нет. Историческую статистику из Cacti мы не переносили - договорились с клиентом, что старые данные останутся в Cacti только для справки, Zabbix начинает с нуля.

Что получилось

Оба клиента сейчас на Zabbix 2.0, Nagios отключён. Cacti у первого клиента тоже убрали. LLD работает так, как ожидали: на прошлой неделе у одного клиента добавили новый диск на файловый сервер - он появился в мониторинге сам, никто ничего не трогал в Zabbix.

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

Полноценных выводов о надёжности делать рано - прошло слишком мало времени. Но первое впечатление от 2.0 положительное. Это часть работы, которую мы делаем в рамках сопровождения инфраструктуры.

Контакт

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

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