Pull to refresh

Comments 27

Мне кажется, в ситуации когда хостов больше двух уже нужно использовать Zabbix.
С Zabbix нормально не работал, но очевидные различия:

— База против rrd, вытянет ли база на наших объёмах? (rrd не тянет, пришлось в память положить)

— Централизованная конфигурация (Zabbix) против децентрализованной (Munin).
У нас разные команды админов и разработчиков. В случае Munin разработчик приделывает график сам (добавляет плагин) и никого не ждёт. В Zabbix он должен просить кого-то с админскими правами. Новый график может появится на Dev/LiveTest сервере, а на основной массе его не будет. И именно этот график хорошо показывает как оно работает новая версия.
В централизованной системе (Zabbix) это сложнее сделать. Эта фича не бесплатна, конфиг Munin раздувается страшно. Но оно стоит того (в наших условиях)

Ну и главное. У нас были Munin+Nagios, мы их настроили, мы к ним привыкли, мы их знаем. Zabbix это сильно новое. «работает — не трожь!»

PS Zabbix красив, конечно. Пробуем его но пока в проде стоит Munin
У нас порядка 100 хостов, где собирается около нескольких сотен параметров с каждого.

База сейчас размером 32Гб. Работает достаточно быстро но требует порядочно памяти.

Заббикс может иметь несколько мастеров для опроса.

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

Ну и добавлять хосты можно значительно легче. Например есть группы vds, backup, servers, generic. Для виртуалок мы добавляем группу generic и vds, для серверов generic, servers и, если нужно — backup.
А как часто обновляются данные? В среднем, конечно.
У нас 1600 нод, которые мониторятся (это и сервера и виртуальные контейнеры на них).
275000 метрик (линий на графиках).

Получается на порядок больше «хостов», в 2 раза меньше данных (14 против 32GB).
Или вы чаще собираете, или дольше храните. Munin собирает раз в 5 минут.
У нас все метрики — трапперы, то есть данные приходят с хостов. Где то раз в секунду, где то раз в 5 секунд, где то раз в сутки. По разному. Данные тоже по разному хранятся, от суток до месяца. Отдельные — полгода.

У нас просто housekeeper не работает по непонятной причине. А руками чистить — очень долго получается.
Ох ты жеж. Чего же вы шлёте раз в секунду или раз в 5 секунд?
Супер полезная информация, если сервер умрёт, но это же нагрузка не только на мастер, но и на ноду
Иногда бывает критически важно до секунды знать в какой момент начал расти, например LA или использование процессора сервером, или ещё что-то, чтобы потом найти того, кто это вызвал.

Специфика работы, так сказать.
>База сейчас размером 32Гб. Работает достаточно быстро но требует порядочно памяти.

Данные у вас за какой период хранятся?
В среднем день, неделя и месяц. Зависит от частоты их обновления и необходимости получать информацию за определённый период.
Возможно, но у нас сейчас бежит достаточно старый Zabbix и на текущий момент проще просто дать виртуалке с ним чуть больше места.
Да, принцип — работает и ладно подойдет. Но скоро будут проблемы, говорю основываясь на своем опыте. И советую обновится, так как в старый версиях Housekeeper работает плоховато.
Планируется. 2.0 уже вышел, на него и будет миграция.
Zabbix, 600 серверов, 50 000 метрик с них снимается, база 18 гб, MySQL.
Большая часть данных хранится 90 дней (тренды) детальная статистика — 30 дней
Фронтэнд + отдельная машина под БД с sas 15k, хотя один сервер скорее всего теперь тоже будет справляться. Мигрировали с постгреса, у него в силу версионности записей и специфичной модели работы заббикса с БД не удалось добиться приемлемой производительности базы
А как часто у вас собираются данные с метрик? Грубо, сколько метрик в секунду снимается?
Потому что 50k раз в секунду это очень круто, а раз в 5 минут — у нас 275k тянет спокойно.

Процентов 30 — раз в минуту, остальная часть — раз в 5 минут и реже. Постгрес с более частыми периодами не справлялся, запас сейчас есть раз в пять, LA обоих серверов не превышает 0.2
Заббикс выигрывает не столько сверхпроизводительностью сбора и хранения данных ( с rrd все таки довольно трудно тягаться ), сколько возможностью довольно стандартными способами масштабироваться на несколько серверов.
Ну и тем, что кроме один раз установленного заббикс агента на серверах не нужны никакие действия — ни ставить плагины, ни конфиги править не придется. С влюченнными RemoteCommands сбор практически всех метрик настраивается через веб-морду в шаблоне сервера/роли/приложения. Исключение разве что для метрик, требующих рута — их приходится засовывать в sudo, но таких немного.
«сбор практически всех метрик настраивается через веб-морду»
В нашем случае это не совсем фича.
Грубо, разработчик может захотеть метрику. Он её просто делает как плагин в новой версии роли и всё. Новая версия ставится, метрика появляется. Причём если версия ставится в Live Test, на один сервер, то и появляется на одном.
В Zabbix он бы ещё и просил кого-то с админскими правами (или опытом) добавить новый шаблон с новой метрикой.

Если разработчик накосячил в плагине на сервере, то поправит в следующей вертике и научится на горьком опыте. Мучать центральную конфигурацию и учиться ему никто не даст.

Так же у нас есть централизованная база с конфигурацией системы, из неё надо делать все конфиги. И тут текстовые конфиги Munin (сгенерировал с нуля, подложил) удобнее чем любое API. Например, выявлять и удалять исчезнувшие ноды надо.
По поводу прав сценарий в Заббиксе может быть такой — группа серверов (скажем, тестовые), группа тестовых же шаблонов, пользователь с правами забикс админа но с возможностью записи только в группы тестовых серверов и шаблонов. Ничего лишнего не сломает, шаблон копируется в группу основных шаблонов и цепляется к боевым серверам. Юзер может допиливать тестовый шаблон и дальше, до следующей итерации проверки и переноса в бой
В Munin не очень круто то, что метрики только раз в 5 минут и это врождённое, это не обойти. Иногда хочется чаще, но никак.
Мы даже думали другой мониторинг (тот же Zabbix) на небольшое количество метрик поставить с большей частотой.
Метрики теперь можно хранить и чаще, доступно в Munin stable 2.0
> current trunk fully supports custom update_rate, and increase resolution of .rrd files accordingly.
Как вариант, для графиков можно использовать Centreon. Или используется что-то, чего не может отобразить связка nagios+centreon?
О! Первый раз встречаю на хабре упоминание этого продукта. Ты его ставил под какую ОС? Я год назад где-то ставил под убунту, честно говоря пришлось полдня гуглить и напильником работать чтобы он заработал. Вроде и фигня, пара скриптов не срослась и в крон не прописалась, но вся цепочка довольно сложная, пока отдебажишь что именно не работает — полдня и прошло. А работает красиво, графики там классный бонус к нагиосу. Но все таки произвольные и сложные графики — это в мунин.
Для снятия нагрузки на винт от апдейта rrd есть еще rrdcached.
rrdcached выглядит каким-то половинчатым.
Он аккумулирует данные, но не даёт прочитать их из кеша. Только записать на диск. То есть если надо работать с данными, например посчитать агрегат или ещё чего, то есть записываем на диск и читаем с диска.
Плюс он сам пишет на диск в непредсказуемый момент.

Проблема в том, что никто не будет смотреть на 1000 графиков разом. У нас есть скрипты, которые собирают данные в несколько небольших dashboard и они читают много rrd'шек, сильно больше 1000. То есть кеш на ключевых метриках работать не будет и винт будет грузиться

Да, большинство метрик не жалко вообще стереть, но и на них кеш будет переполняться и грузить винт и не давать работать ключевым метрикам.

Я вообще сомневаюсь, что кеш будет хорошо работать в случае одновременного апдейта всех rrd раз в 5 минут.
Идея то в чём, в том, что с точки зрения диска что записать одно измерение, что 20 одинаково трудоёмко, считать файл с диска и записать на диск.
То есть надо держать в памяти по несколько измерений каждой метрики, плюс некая служебная информация (которая в нашем мире динамической памяти часто очень большая). При этом надо постоянно обращаться к кешу при каждом чтении/записи, что тоже нагрузка на процессор.

Почему бы не положить всё в память и работать с памятью? Особенно если оно туда влазит. Быстрее же будет и заметно проще.

А оно влазит! Память стоит всё дешевле и дешевле, причём закон Мура тут ещё будет долго работать, в отличии от процессоров.
Sign up to leave a comment.