Zabbix 1.6: пробуем альтернативу Nagios с авто-обнаружением и встроенными графиками
Zabbix 1.6 вышел с поддержкой распределённых нод и улучшенным API. Смотрим, реально ли он заменяет связку Nagios + Cacti и стоит ли переезжать.
Выход Zabbix 1.6 с поддержкой распределённых нод, улучшенным API и авто-обнаружением сетевых узлов
Пока мы читаем changelog Nagios 3.0 бета и ждём финального релиза, подоспела новость по другому фронту: вышел Zabbix 1.6. Мы давно поглядывали на этот инструмент, но всерьёз не трогали - казалось, что Nagios с Cacti сбоку закрывает всё что нужно. Сейчас, после нескольких дней с Zabbix 1.6 на тестовом стенде, мысли стали конкретнее.
Откуда взялась тройная связка
Стандартный сетап для мониторинга среднего размера инфраструктуры к 2008 году выглядит примерно так: Nagios следит за доступностью и состоянием сервисов, Cacti рисует графики трафика и загрузки, и что-нибудь третье - например, самописные скрипты или NetFlow-коллектор - собирает всё остальное. Каждый инструмент делает своё дело нормально. Но три отдельные системы - это три отдельных конфига, три отдельных баз, три отдельных точки отказа, и постоянное ощущение, что половина инфы существует только в одном из трёх мест.
Zabbix с самого начала позиционировался как one-stop solution: агент, сервер, база, Web UI с графиками - всё вместе. Мы это знали, но на практике раньше не проверяли.
Что нового в 1.6
Самые интересные изменения в этом релизе - три штуки.
Распределённые ноды (Distributed Monitoring). Zabbix 1.6 вводит понятие node - сервер Zabbix, который собирает данные локально и отправляет их на центральный сервер. Для инфраструктуры с несколькими площадками или изолированными сегментами сети это принципиальная возможность: агенты не тащат трафик через всю сеть на центральный сервер, а отдают его ближайшей ноде. На стенде мы подняли две ноды и убедились, что синхронизация конфигурации и данных работает - пусть и не мгновенно.
API. В 1.6 появился JSON-RPC API для управления объектами мониторинга: создавать хосты, менять шаблоны, получать данные - всё программно. Для нас это важно: автоматизация добавления новых клиентских серверов через API принципиально лучше, чем ручная правка конфигов. Nagios в этом плане живёт во вселенной текстовых файлов, что само по себе не плохо, но с автоматизацией сложнее.
Network Discovery. Zabbix умеет сам сканировать диапазоны IP, находить отвечающие хосты и добавлять их по заданным правилам. На стенде мы задали правило: если хост отвечает на ICMP и порт 10050 (Zabbix-агент) открыт - добавить его с базовым шаблоном Linux. Через несколько минут после запуска агентов на тестовых машинах они появились в интерфейсе сами. В Nagios такое делается внешними инструментами типа nmap + скриптов, здесь - из коробки.
Встроенные графики: работает или не работает
Это был главный вопрос. Cacti делает красивые RRD-графики, Zabbix обещает своё. По факту - работает. Не так гибко, как Cacti с ручной настройкой DataSources, но для типовых вещей - загрузка CPU, память, сетевые интерфейсы, дисковая активность - достаточно. Данные хранятся в MySQL, историческая глубина настраивается, графики строятся прямо в Web UI без отдельного rrdtool.
Отдельно понравилось, что порог (threshold) для алерта и график для того же параметра описываются в одном месте - в item'е. В связке Nagios + Cacti одно и то же значение настраивается дважды в двух разных системах. Это не смертельно, но регулярно приводит к расхождениям.
Что пока вызывает вопросы
Производительность. На тестовом стенде - несколько десятков хостов - всё летает. Но мы слышали, что при нескольких тысячах элементов мониторинга MySQL начинает подвисать на вставках. Проверить это в стендовых условиях не получится - нужно нагружать реальным трафиком данных. Это вопрос, который мы оставляем открытым.
Агенты. Zabbix-агент нужно ставить на каждый хост. Nagios умеет работать без агента через SNMP и NRPE - есть варианты для разных ситуаций. У Zabbix тоже есть режим без агента (через SNMP и внешние проверки), но полноценные метрики - только с агентом. Для инфраструктуры, которую мы обслуживаем целиком, это не проблема. Для разнородных сред, куда агент не поставить, - ограничение.
Менять или не менять
Честный ответ: пока не знаем. Всё что мы сделали - это три дня на тестовом стенде. Делать выводы о надёжности в production на основе стенда - неразумно.
То, что очевидно уже сейчас: Zabbix 1.6 - это реальная альтернатива связке Nagios + Cacti для новых инсталляций. Если разворачивать мониторинг с нуля, три отдельные системы vs одна с API и авто-обнаружением - выбор неочевидный только на первый взгляд.
Для существующих инсталляций с рабочим Nagios и Cacti - другой вопрос. Миграция займёт время, риски есть, и Nagios 3.0 с нормальным наследованием шаблонов вот-вот выйдет в финале. Может, проще дождаться его.
Тем клиентам, которых мы ведём в рамках сопровождения инфраструктуры, переезд пока не предлагаем - но Zabbix держим в виду для новых проектов, где монолитный стек предпочтительнее трёх склеенных инструментов.