Как лучше реализовать мониторинг доступности нескольких серверов друг для друга?
дано: есть 10 серверов в разных странах и 1 сервер с системой мониторинга, не важно какой, nagios,cacti и т.п.
задача: организовать мониторинг доступности всех серверов внутри этой сети., т.е. что бы сервер "1", опросил все 10 серверов со своего хоста и сказал какие для него недоступны, и так на всех серверах.
я представляю реализацию этой задачи следующим образом:
с сервера мониторинга передаются серверам команды на какой то открытый порт какому то демону, в параметрах команды указаны какие хосты нужно опросить (query-1-2-3-4...), сервер "1" опрашивает на доступность от себя все 10 серверов которые были перечислены в параметрах (query-1-2-3-4...) и возвращает результат серверу мониторинга в виде времени ответа каждого сервера (respon-1.32-1.35-1.11-0.245...)
сервер мониторинга принимает от 10 серверов результаты и обрабатывает
интервал опроса = каждая минута
протокол = TCP
опрашиваемый порт = HTTP который открыт на всех серверах
вот собственно вопрос как лучше реализовать эту задачу, есть ли готовый софт.
какие сервера опрашивать, а серверов больше 200 и меняются каждый день ну или раз в неделю всеравно часто конфиги так не поперезаписываешь
перенесите в текст вопроса часть условия
Если даже совсем полениться и настроить гуй для нагиоса, то там есть прекрасная кнопка клонировать, выбрал с кого склонировать, прописал новое имя и какие сервисы мониторить надо, мышой тыкнул в браузере, готово.
да, так только я тут писал уже что он пинговать только может и кого пинговать ему надо в конфиге прописывать, а это не то что мне надо, хосты меняются , мне надо передавать в параметрах какие хосты ему опрашивать
"...он пинговать только может..." ну вот на картинке же даже нарисовано, какие сервисы он чекает ( диск,хттп, фтп, пинги, ремоут сервис он азер хостс)
И кто "ОН" в вашем данном контексте?
"мне надо передавать в параметрах какие хосты ему опрашивать" - Вы в любом случае минимум один раз это будите делать, или кто-то это будет делать, один раз минимум!
nrpe только пинговать удаленный хост может, сервисы он только локальные проверяет, т.е. система такая мониторинг машина передает команду nrpe на другом хосте, а тот ее выполняет, так вот одна из команд проверить удаленный хост, она есть , да, но этот удаленный хост в конфиге на машине с nrpe надо прописывать, и менять его муторно, а если их 20, и какие то постоянно меняются. проблема.
Сервер со статистикой и конфигой один, а на остальные машины ставятся только минимальные клиенты/агенты, которые выполняют указаную команду. Что вам еще то надо в конце то концов а?
microphone: да, все верно команды выполнять можно, но как я понял, я могу ошибаться конечно, то нельзя передавать аргументы этой команде, т.е. допустим выполнить ls -la на удаленной машине, а папку добавлять в аргумент запроса check_nrpe
Также результат можно лить и в mongo и в redis и в rabbitmq. Ну а плагинами нагиоса достанете отовсюду, благо они пишутся за 5 минут.
Или радикальнее, ставите graphite (у нас было) или unfluxdb+grafana (теперь) и туда льете данные с серверов collecd.
PS. Бонусом установки collectd получите быстрый и не ресурсоемкий сбор практически любой статистики.
не гибко, надо на каждом сервере прописывать какие сервера опрашивать а если они меняются каждый день? мне надо именно предавать в параметре запроса какие сервера надо опрашивать
так то можно и любой скрипт на баше написать и его опрашивать, минус в том что скрипт индивидуально для каждого сервера делать надо, и в этом скрипте индивидуальные настройки делать, какие сервера опрашивать, а серверов больше 200 и меняются каждый день ну или раз в неделю всеравно часто конфиги так не поперезаписываешь
Arkasha18: речь шла о десяти, речь не шла о динамике.
Собственно это сути не меняет, настройте ансибл и прописывайте параметры как хотите! Или напишите свой плагин с пингером к коллекту, который будет лазить в общую базу и пингать нужные хосты. Шурик: причин особых почти не было, за исключением того, что он перестал развиваться, а инфлюкс с графаной ставятся за 10 минут..
ну а еще можно взять ansible, каторый на сервера будет кидать скрипты итд, вообще лафа будет ;) и нафиг не нужен puppet, так как его вначале установить надо (
Шурик: посмотрел Serf, в принципе да, но сложная фиговина и непонятно как ее связать с существующим мониторингом, она сама по себе живет, короче это как запасной вариант, спасибо