Приветствую,
Я хотел бы узнать мнение коллектива о распределенных системах мониторинга, что вы используете и что вам известно, что может помешать мне?
Требования довольно сложные;
Нет единой точки отказа. В самом деле. Я очень серьезно! Необходимо уметь выдерживать отказ одного / нескольких узлов, как «главного», так и «рабочего», и вы можете предположить, что ни одно место мониторинга («сайт») не имеет в себе нескольких узлов или находится в одной сети. Следовательно, это, вероятно, исключает традиционные методы высокой доступности, такие как DRBD или Keepalive.
Распределенная логика, я хотел бы развернуть 5+ узлов в нескольких сетях, в нескольких центрах обработки данных и на нескольких континентах. Я хочу видеть мою сеть и приложения с высоты птичьего полета с точки зрения моих клиентов, бонусные баллы за то, чтобы логика мониторинга не зависала, когда у вас 50+ узлов или даже 500+ узлов.
Требуется иметь возможность обрабатывать довольно разумное количество проверок хоста / службы, а ля Nagios, для приблизительных цифр предполагается, что 1500-2500 хостов и 30 сервисов на хост. Было бы действительно хорошо, если бы добавление дополнительных узлов мониторинга позволяло масштабироваться относительно линейно, возможно, через 5 лет я мог бы искать для мониторинга 5000 хостов и 40 сервисов на хост! В дополнение к моей заметке о «распределенной логике» было бы неплохо сказать:
Графики и удобные функции управления. Нам необходимо отслеживать наши SLA, и знать, работают ли наши «высокодоступные» приложения круглосуточно, несколько полезно. В идеале предлагаемое вами решение должно создавать отчеты "из коробки" с минимальными ошибками.
Должен иметь надежный API или систему плагинов для разработки индивидуальных проверок.
Должен быть внимателен к оповещениям. Я не хочу знать (по SMS в 3 часа ночи!), Что один Узел мониторинга считает, что мой основной маршрутизатор не работает. я делать хотите знать, есть ли определенный процент из них согласна что происходит что-то странное;) По сути, я говорю о логике "кворума" или применении здравомыслия к распределенному безумию!
Я готов рассмотреть как коммерческие варианты, так и варианты с открытым исходным кодом, хотя я бы предпочел избегать программного обеспечения стоимостью в миллионы фунтов :-) Я также готов согласиться с тем, что, возможно, нет ничего, что помечает все эти поля, но хотел спросить коллектив об этом.
Размышляя о мониторинге узлов и их размещении, имейте в виду, что большинство из них будут выделенными серверами в случайных сетях интернет-провайдеров и, следовательно, в значительной степени вне моей сферы контроля. Решения, основанные на каналах BGP и других сложных сетевых уловках, скорее всего, не подойдут.
Я также должен отметить, что я либо оценивал, развертывал, либо активно использовал / настраивал большинство вариантов с открытым исходным кодом в прошлом, включая Nagios, Zabbix и других - они действительно неплохие инструменты, но в целом они не подходят " распределенный аспект, особенно в отношении логики, обсуждаемой в моем вопросе, и «интеллектуальных» предупреждений.
Рад прояснить все необходимые моменты. Ура, ребята и девчонки :-)
не ответ на самом деле, но несколько указателей:
определенно взгляните на презентацию о nagios @ goldman sachs. они столкнулись с проблемами, о которых вы упомянули - избыточность, масштабируемость: тысячи хостов, а также автоматическое создание конфигурации.
У меня была избыточная установка nagios, но в гораздо меньшем масштабе - 80 серверов, всего ~ 1k сервисов. один выделенный главный сервер, один подчиненный сервер, получающий конфигурацию от главного через равные промежутки времени несколько раз в день. оба сервера покрывали мониторинг одних и тех же машин, у них была перекрестная проверка работоспособности между собой. Я использовал nagios в основном как платформу для вызова специальных проверок продукта [куча заданий cron, выполняющих сценарии, выполняющие «искусственный контроль потока», результаты записывались в sql, плагины nrpe проверяли успешное / неудачное выполнение тех, которые выполнялись за последние x минут]. все работало очень красиво.
ваша логика кворума звучит хорошо - немного похоже на мои «искусственные потоки» - в основном продолжайте, ipmplement your self; -]. и пусть nrpe просто проверит какой-нибудь флаг [или sql db с timestamp-status], как дела.
вы, вероятно, захотите построить какую-то иерархию для масштабирования - у вас будут некоторые узлы, которые собирают обзор других узлов, посмотрите на презентацию с первой точки. разветвление nagios по умолчанию для каждой отдельной проверки является излишним при большем количестве отслеживаемых сервисов.
чтобы ответить на несколько вопросов:
То, о чем вы просите, очень похоже на то, что Shinken сделал для Nagios.
Shinken - это переработанная версия Nagios.
Это должно быть пищей для размышлений.
Ура