среда, 18 февраля 2009 г.

Мониторинг сетевых параметров в распределенных архитектурах: X-Trace

Проект, позволяющий следить и чутко реагировать на любые возникшие проблемы в вашей сетевой архитектуре. Создатели, RAD Lab (Reliable Adaptive Distributed Systems Laboratory), подготовили проект под названием X-Trace (не путать с популярным пакетом для отладки Flash-приложений), который они сами называют сетевым фреймворком, для постоянного мониторинга всех сервисов и серверов, которые составляют вашу архитектуру, на предмет возникновения каких-либо проблем.

Система мониторинга работает на достаточно высоком уровне, затрагивая протоколы IP, TCP, HTTP и другие. Сам мониторинг осуществляется путем добавления специального мета-тега, который в дальнейшем при прохождение запроса через сервис, на котором установлен агент сбора информации, позволяет отследить каждый запрос, даже если они комплексные. Например, клиент посылает первый запрос по HTTP к веб-серверу, далее этот запрос передается на балансировщик нагрузки, при этом он после поступления на первый же фронт-енд сервер начинает отслеживаться. Далее, после балансировщика, запрос пересылается серверу обработки, например, РНР Application server-у, далее скрипт требует выполнения запроса данных от SQL-базы, соответственно также формируется запрос к СУБД, который также является частью одной транзакции и также отслеживается.

arch_overview.png

Вся информация от развернутых на узлах агентов стекается (по протоколу UDP) на демон отчетов (Reporting deamon), который генерирует совокупный отчёт, который пересылается на бек-енд инфраструктуру и там хранятся, анализируются и доступны для администратора.

Сам по себе, бек-енд содержит достаточно серьезную инфраструктуру - он как принимает все отчеты, так и может посылать команды демону отчетов. Кроме этого, он сам содержит несколько серверов, например, LDAP (или связывается с внешним сервером) для получения конфигурации и прав, PostgreSQL сервер для хранения данных, а также встроенный Apache для визуализации данных, также поддерживается запрос и работа с данными через протокол XML-RPC, что удобно для построения на этой основе более масштабных решений и аналитических инструментов. Все отчеты от демонов сначала поступают в очередь сообщений, реализованную на Java (Java Messaging Service), что, в частности, позволяет использовать для обмена данными и защищенные протоколы.

backend_overview.jpg

Кстати, X-Trace используется в проекте Hadoop (вернее, может работать как часть платформы), который предназначен для построения распределенной системы хранения и обработки больших объемов данных.

На текущем этапе развития имеется две версии фреймворка - 1.3 как уже стабильная и зарекомендовавшая себя система и новая, версии 2.0, которая обладает широкими возможностями, новыми API (например, на Java для совместной работы с корпоративными приложениями и системами).

Подробнее про систему вы сможете почитать на ее веб-сайте и вики. Я же хочу сказать, что фреймворк достаточно интересен и актуален для различных сервисов и систем, требующих для своей работы бесперебойной связи между узлами и серверами. И пусть задумывая новый стартап, вы ограничиваете себя одним сервером, но по мере развития своей системы вы все чаще и чаще станете задумываться о расширении и балансировке нагрузки. А так как первым и самым действенным шагом будет вынесение различных частей на разные сервера, то здесь сразу возникнет вопрос и управления этой массой серверов, и постоянного мониторинга и другие совершенно специфические вопросы и проблемы. Поэтому стоит изначально планировать и использовать современные и проверенные системы для обеспечения стабильной работы вашего приложения. И X-Trace это именно такая система.

Комментариев нет:

Отправить комментарий