LINUX.ORG.RU
ФорумAdmin

Как лучше реализовать мониторинг доступности нескольких серверов друг для друга?

 , , ,


0

2

дано: есть 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 который открыт на всех серверах

вот собственно вопрос как лучше реализовать эту задачу, есть ли готовый софт.

по теме ничо не скажу, но мне очень интересно — накой городить такую хрень?

anonymous
()
Ответ на: комментарий от anonymous

много кластерная система в разных датацентрах, бывают перебои с доступностью между серверами, а это критично, фронтов 10, они шлют на 20 бекендов те на 3 базы и т.п.

Arkasha18
() автор топика
Ответ на: комментарий от anonymous

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

Arkasha18
() автор топика
Ответ на: комментарий от Arkasha18

тогда перебирай в гугле названия простых мониторилок вроле нагиоса с добавлением слова «distributed».

anonymous
()

Делай через nagios. На каждом серваке запускай скрипты через nrpe, которые будут возвращать nagios'у все нужные тебе метрики. Сразу их можно парсить на предмет доступности/недоступности/плохого соединения и и сразу же можешь выполнять необходимые тебе действия под эти условия и иметь вебморду с инфой.

v9lij ★★★★★
()
Ответ на: комментарий от v9lij

да, так то можно и на баше простые скрипты сделать, но это не гибко! нужно для каждого сервера на нем , внутри в конфигах вписывать какие сервера ндоа опрашивать, а если их 200! и если между ними постоянно меняются сервера, я утану на каждый сервер заходить и менять параметры , мне надо что бы с сервера мониторинга в запросе передавалось в параметрах какие сервера опрашивать серверу, что бы это было гибко, что бы мне просто запрограмировать запросы на сервере мониторинга и все, а не лезть на каждый сервер что бы поменять там что то

Arkasha18
() автор топика
Ответ на: комментарий от sin_a

nrpe разве умеет опрашивать на доступность сайт, или какой то другой сервер, порт и.т.п. на сколько я знаю он только локальные порты и сервисы опрашивать могет

т.е. с сервера мониторинга «1» не передать такую команду на сервер «2» что бы проверить доступен ли с сервера «2» сервер «3»,«4» и т.п. и причем не прописывая эти сервера жестко в конфиге на сервере «2», этот список серверов надо передавать в параметре запроса от сервера «1» к серверу «2»

Arkasha18
() автор топика
Ответ на: комментарий от sin_a

check_nrpe -H 193.144.34.x -c check_ping

а [cjn прописывается в конфиге на 193.144.34.x, не пойдет много очен серверов, и очень часто меняются

сдается мне что нет решения, только на С самому писать сервер-клиент

Arkasha18
() автор топика
Ответ на: комментарий от Arkasha18

Ну как это обойти можно придумать. nrpe умеет принимать входящие аргументы, которые надо будет вбивать в одном месте, там где стоит сам сервер с nagios. Ну если это не подходит, тогда только велосипедить свой клиент-сервер. Хотя? мне кажется, что средствами nagios это можно решить.

v9lij ★★★★★
()
Ответ на: комментарий от v9lij

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

Arkasha18
() автор топика

В Zabbix'е можно нагородить подобного рода проверок, не исключено что они частично будут состоять из подпорок из bash/python. К тому же, я так понимаю, тебе ещё нужна адекватная реакция на изменения аля отключить хост из продакта, поменять маршруты, etc. Это тоже можно реализовать, но опять же не без внешних скриптов.

Сам бы не отказался от подобного рода фреймворка.

Чтобы управляющие машины не теряли связь с удалёнными узлами из-за постоянных изменений состояния сети между ДЦ можно использовать tinc как оверлейную сеть: если узел недоступен напрямую - tinc гонит трафик внутри себя через другие доступные узлы прозрачно для приложения.

Вот на такую вот штуку как-то наткнулся: https://github.com/sebastien/monitoring/ Выглядит просто, но нужен напильник чтобы получилось то что тебе надо.

Ещё вот это можно попробовать: https://www.consul.io/ Вроде заявлено failure detection, но их «Multi Datacenter» выглядит как-то не очень. Ну и приложения нужно будет подправить.

technoid
()
Ответ на: комментарий от Arkasha18

много кластерная система в разных датацентрах, бывают перебои с доступностью между серверами, а это критично, фронтов 10, они шлют на 20 бекендов те на 3 базы и т.п.

Это задача балансировщика нагрузки (тут много вариантов, и зависимостей от фронтэнда, БД, хостинга и архитектуры самого приложения).

внутри в конфигах вписывать какие сервера ндоа опрашивать, а если их 200! и если между ними постоянно меняются сервера, я утану на каждый сервер заходить и менять параметры

Это задача системы управления конфигурациями (см. puppet/chef/ansible и т.п.)

ivn86
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.