Приветствую!
Причина запроса: время от времени на одном из уровней иерархии возникают проблемы с отдачей файлов. Хотелось бы максимально быстро локализовывать очаг проблемы. А не ползать вручную по всей иерархии и не искать проблему вручную.
Дано: есть 3ёх-уровневый веб-сервис для отдачи видеофайлов. Пользователь обращается к серверу раздачи (IIS7) 3его уровня (video.test.ru), этот сервер проверяет наличие файла в своём кэше, если его нет то запрашивается кэширующий сервер второго уровня (IIS7), если и на нём нет, то сервер второго уровня запрашивает файл в центральном хранилище (IIS7). И отдаёт вверх по иерархии (1->2->3->пользователь).
Выглядит примерно так:
Есть: сейчас сделаны web-айтемы для каждого из уровней иерархии. Т.е. 3 уровня- 4 сценария (4 - так как на уровне 2 не одна а две возможные точки отказа).
Вопрос: можно ли реализовать единую проверку всего сервиса таким образом, чтобы:
1) проверялась вся иерархия, НО не сверху вниз, а снизу-вверх, от уровня (1) до уровня (3), от Хранилища до Пользователя.
2) реализовать такую схему без установки дополнительных компонентов, только за счёт логики сервера Zabbix и расставленных на web-серверах Zabbix-агентов (сейчас есть только локальный Zabbix-сервер 1.6 а все указанные сервера стоят на хостинге и, что следует из web-софта, виндовые)?
Алгоритм:
ЕСЛИ на уровне (3) всё плохо - остановиться (триггер, экшен-мыло).
ЕСЛИ на уровне (3) всё хорошо, то производится проверка более вышестоящего уровня (2), проверка обоих кэш-серверов.
ЕСЛИ на уровне (2) на одном или обоих серверах найдена проблема - остановиться (триггер, экшен-мыло).
И только ЕСЛИ на уровне (2) всё хорошо, проверять сервер-раздатчик уровня (1).
При анализе этой задачи почему-то всё время в памяти всплывают отрывки из виденной в разное время в разных темах мысли об иерархической проверке цепочки. Но там это было насколько я помню привязано к проверке цепочки оборудования (сеть из нескольких промежуточных компонентов), когда при падении пинга цепочка проверялась по всей длине (проверялся каждый источник данных мониторинга).
Не подскажете, как быть в данном случае?
Спасибо!
Причина запроса: время от времени на одном из уровней иерархии возникают проблемы с отдачей файлов. Хотелось бы максимально быстро локализовывать очаг проблемы. А не ползать вручную по всей иерархии и не искать проблему вручную.
Дано: есть 3ёх-уровневый веб-сервис для отдачи видеофайлов. Пользователь обращается к серверу раздачи (IIS7) 3его уровня (video.test.ru), этот сервер проверяет наличие файла в своём кэше, если его нет то запрашивается кэширующий сервер второго уровня (IIS7), если и на нём нет, то сервер второго уровня запрашивает файл в центральном хранилище (IIS7). И отдаёт вверх по иерархии (1->2->3->пользователь).
Выглядит примерно так:
Code:
(3) Пользователь -> Уровень 3 : http://video.test.ru/.test/.test.iis.mov файла в кэше сервера нет, ищем глубже... [I]тут стоит цискобалансер, автоматом выбирающий наименее загруженный кэш-сервер более низкого уровня[/I] (2) Кэш-сервер 1 Уровень 3 - Уровень 2 : http://video-cache-1.test.ru/.test/.test.iis.mov или (2) Кэш-сервер 2 Уровень 3 - Уровень 2 : http://video-cache-2.test.ru/.test/.test.iis.mov файла не промежуточных кэш-серверах нет, идём в центральное хранилище (1) Уровень 2 - Уровень 1 : http://core.test.ru/.test/.test.iis.mov
Вопрос: можно ли реализовать единую проверку всего сервиса таким образом, чтобы:
1) проверялась вся иерархия, НО не сверху вниз, а снизу-вверх, от уровня (1) до уровня (3), от Хранилища до Пользователя.
2) реализовать такую схему без установки дополнительных компонентов, только за счёт логики сервера Zabbix и расставленных на web-серверах Zabbix-агентов (сейчас есть только локальный Zabbix-сервер 1.6 а все указанные сервера стоят на хостинге и, что следует из web-софта, виндовые)?
Алгоритм:
ЕСЛИ на уровне (3) всё плохо - остановиться (триггер, экшен-мыло).
ЕСЛИ на уровне (3) всё хорошо, то производится проверка более вышестоящего уровня (2), проверка обоих кэш-серверов.
ЕСЛИ на уровне (2) на одном или обоих серверах найдена проблема - остановиться (триггер, экшен-мыло).
И только ЕСЛИ на уровне (2) всё хорошо, проверять сервер-раздатчик уровня (1).
При анализе этой задачи почему-то всё время в памяти всплывают отрывки из виденной в разное время в разных темах мысли об иерархической проверке цепочки. Но там это было насколько я помню привязано к проверке цепочки оборудования (сеть из нескольких промежуточных компонентов), когда при падении пинга цепочка проверялась по всей длине (проверялся каждый источник данных мониторинга).
Не подскажете, как быть в данном случае?
Спасибо!
Comment