totalamd / metrics_ru_faq

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Канал: https://t.me/metrics_ru

Всё сказанное ниже, сказано с целью уберечь инженера от неправильного или плохого выбора. Каждая из описанных систем обсуждалась на канале неоднократно и тут сделана попытка сделать выжимку частых вопросов.

Про Zabbix

В церкви запрещено использовать сравнительные эпитеты к заббиксу. По нашему опыту это рождает холивары в которых нет не правых, но и истины тоже не много.

Если очень хочется поговорить про заббикс - https://t.me/ZabbixPro

Q: Почему Zabbix говно? Я вот пользуюсь и мне норм

A: По множеству причин:

  • Реляционные базы данных не подходят для time-series. Когда даже плохие системы тянут сотни тысяч точек в секунду, заббиксу становится уже плохо.
  • Zabbix отвратительно мастштабируется.
  • Он не вписывается в современные концепции мониторинга (многомерные метрики, точнее теги, мониторинг по метрикам в первую очередь).
  • Он не подходит для работы с короткоживущими метриками, например из докера.
  • См. его bugtracker и список Feature Request'ов. Все важное из него давно реализуется другими системами мониторинга, но не заббиксом.
  • Как вишенка на торте - особо отвратительный интерфейс в духе "привет 90ые"

Q: Что использовать вместо InfluxDB и Zabbix?

A: Graphite + Moira/Bosun/баш скрипты или Prometheus

Про InfluxDB

Q: Я хочу взять InfluxDB чтобы запилить X

A: Не надо.

Q: Но он же такой хороший, вот про него сколько сказано крутого

A: Это маркетинг. Не ведитесь.

Q: А какие у него проблемы? Вот я в него начал отправлять 20 метрик в секунду и он отлично работает!

A: Вот краткий и неполный список проблем на момент версии 1.4 (применимо и к более младшим):

  • Стабильность. Периодически падает и теряет данные.
  • Скорость. Заявленное в маркетинговых бумажках касается не постоянного рейта, а спайков. "Show tag keys from all" на средней базе может положить все.
  • Потребление ресурсов . Сожрать 256ГБ RAM, закусить 320GB свопа и все равно упасть по OOMу - легко (в момент 6и часового запуска).
  • Платная кластеризация.
  • Частые breaking changes. За 3 года сменили 5+ движков, периодически выкатывают фичи непонятно зачем сделанные, например сделали ifql.
  • Безалаберность при подготовке релизов. Например как они ломали поддержку Прометея в телеграфе 1.3.2 (замена символов не попадающих под [a-z], influxdata/telegraf#2937). В целом недостаточное тестирование релизов.
  • Не самосогласованные утилиты экспорта и импорта из базы - если вы что-то экспортировали через cli, то импортировать обратно файлик не прокатит. restore из backup полностью заменяет всю метаинформацию о базах. Селективности и merge не завезли.

Про Graphite

Q: Раз Graphite такой клевый, почему его все не используют?

A: Потому что он тоже говно. А все потому что:

  • Он очень любит I/O, делает много мелких IOPS при работе с диском.
  • Он не очень приспособлен под мониторинг короткоживущих сущностностей (нет адекватной поддержки тегов), нет метаданных.
  • Тяжел в плане администрирования (single-server решение с кластеризацией где-то сбоку и набором странных скриптов для управления всем)
  • Оригинальный написан на питоне, поэтому еще и адски медленный (пользуйтесь по возможности https://github.com/go-graphite и https://github.com/lomik/go-carbon или https://github.com/lomik/carbon-clickhouse)
  • Слишком многое есть в альтернативной реализации, включая несколько видов совместимых хранилищ, но из которых почти все работает не очень хорошо.

Про Prometheus

Q: Может тогда Prometheus - серебряная пуля?

A: И тоже нет. У него несколько существенных недостатков:

  • Нет возможность вешать Action на Alarm'ы.
  • Из коробки нет долговременного хранилища. Есть множественные попытки сделать их через remote read/write.
  • Плохо подходит для новичков. Предполагает, что git и merge request являются большей ценностью чем возможность управлять системой через веб интерфейс.

Про Cacti

Q: Почему Cacti говно?

A: Краткий список собственно почему:

  • rrd под капотом
  • как следствие первого пункта, невозможность самому, внятно, управлять аггрегацией метрик
  • нулевая масштабируемость
  • pooler модель сбора метрик
  • околонулевая возможность автоматизации (т.е. она есть, но чтобы ее настроить до вменяемого состояния нужно потратить уйму времени)
  • прожорливость до iops, даже со всякими boost плагинами
  • нет вменяемых дашбордов
  • заточен в основном под сетевые девайсы - мониторить им сервера клауды и прочие контейнеры мазохизм

Q: Почему тогда ее еще не закопали?

A: Потому что все еще торт! Ну а на самом деле все-таки неплохо мониторит сетевые девайсы, многое для сети есть из коробки, логика отображения устройств в виде дерева хорошо ложиться в голову менеджеров и прочего руководящего состава и они ее любят.

About