Привет, нашёл эту ветку и хочу тоже поделиться своими мыслями: долго пользовался Nagios (6 лет), потом Icinga1 (5 лет) на старой работе (с pnp4nagios / nagvis / Centreon / check_mk и др.), а последние пару месяцев использую Icinga2 для частного мониторинга. В новой компании мы используем Zabbix (сначала 2.2, потом 2.3) как основное решение для мониторинга. Причина выбора Zabbix вместо Icinga* — в том, что там есть графики прямо «из коробки». Пользуюсь Zabbix уже больше года и могу сказать: я никогда так не раздражался на систему мониторинга. Конечно, старый Nagios был не идеален, Icinga1 многое поправил, но Zabbix для меня — просто мучение.
Интерфейс раздражает, потому что постоянно приходится прыгать между конфигурацией и просмотром. Короче говоря: часто хочется просто посмотреть детали проблемы, а там подсовывают конфиг, который мне не нужен, или настройки графика вместо самого графика. Мне просто не нравится интерфейс — непонятно, что здесь просмотр, а что конфигурация. Но, наверное, это больше моя проблема с изучением.
В Zabbix много встроенных проверок, которые работают только напрямую с сервером или прокси Zabbix. Например, активные проверки типа SNMP, Web-сценарии и др. не работают через агента Zabbix. У меня много таких случаев, где сервер или прокси отсутствуют, и приходится придумывать костыли, особенно если у тебя много оборудования вроде SNMP с APC или свитчами — это настоящая головная боль.
Не люблю мониторинговые демоны, которым для работы нужна база данных. Это лично моя точка зрения, потому что мониторинг должен иметь как можно меньше зависимостей. Вижу массу проблем, когда база данных сама становилась причиной сбоев. У Zabbix есть ещё одна особенность — проблемы с партицированием базы и настройками, непонятно, как он относится к переходу на летнее время.
Графики в Zabbix выглядят как из 2000-х, и через GUI нельзя создать график с данными с разных хостов. Можно только через ad-hoc график (который нельзя сохранить) и через API. Мое любимое сообщение: «стало не поддерживаться / стало поддерживаться» …

Я много проверок взял из мира Nagios/Icinga и включил их в Zabbix, потому что так было проще, чем писать кучу скриптов для тривиальных вещей типа проверки обновлений apt... Для SNMP тоже использую много плагинов, а для других проверок просто забил — фиг с ними, не встроишь в Zabbix.
Для нашей новой среды с двумя дата-центрами и ~30 серверами Proxmox (Ceph/Hypervisor) и всем необходимым я сделал новое решение на базе Icinga2 (Icingaweb2), Grafana и InfluxDB, а Puppet — это связующее звено. На это ушло много времени (несколько недель), чтобы всё заработало для всех сценариев, но эта система гораздо быстрее при добавлении новых проверок, чем Zabbix. Кроме того, база данных нужна только для отображения состояния на нашей панели и в Icingaweb2. В худшем случае от неё можно отказаться (ядро работает, включая уведомления).
И ещё для меня очень важна отличная и активная комьюнити вокруг Icinga/Nagios.
Итого:
- Для маленьких систем: взгляните на Monit
- Для большего — посмотрите Wato с Icinga1 на бекенде и check_mk (check_mk — это круто)
- Для больших систем лучше Icinga2 с Icingaweb2 и плагином Director. Для графиков — используйте Grafana с Graphite или InfluxDB.
- Zabbix берите, если вам нравится его философия, можно к нему подключить Grafana через zabbix-datasource для более красивых графиков.
Пока, денни