Введение

Распределенное программное обеспечение для мониторинга

Ganglia — это масштабируемый распределенный инструмент мониторинга высокопроизводительных вычислительных систем, кластеров и сетей. Программное обеспечение используется для просмотра текущих или архивных статистических данных, охватывающих такие метрики, как средняя загрузка процессора или использование сети для множества узлов. Программное обеспечение Ganglia входит в состав корпоративных дистрибутивов Linux, таких как Red Hat Enterprise Linux (RHEL) или CentOS, основанного на нем. Ganglia возникла из потребностей в системах мониторинга Калифорнийского университета в Беркли, но сейчас используется коммерческими и образовательными организациями, такими как Cray, MIT, NASA и Twitter.

Ганглия

Он основан на иерархической архитектуре, предназначенной для федераций кластеров. В основе его работы лежит протокол прослушивания и оповещения на основе многоадресной рассылки для мониторинга состояния внутри кластеров, а для федерации кластеров и агрегации их состояния используется дерево соединений типа «точка-точка» между представительными узлами кластеров. Он использует широко распространенные технологии, такие как XML для представления данных, XDR для компактной и переносимой передачи данных и RRDtool для хранения и визуализации данных. Для достижения минимальной нагрузки на каждый узел и высокой степени параллелизма используются тщательно разработанные структуры данных и алгоритмы. Реализация отличается надежностью, портирована на широкий спектр операционных систем и процессорных архитектур и в настоящее время используется более чем в 500 кластерах по всему миру. Система применяется для объединения кластеров в университетских кампусах и в глобальном масштабе, и способна масштабироваться для работы с кластерами, состоящими из 2000 узлов. Система Ganglia включает в себя два уникальных демона, веб-интерфейс на основе PHP и несколько небольших вспомогательных программ.

Ганглия Мета-демон (gmetad)

Федерация в Ganglia достигается посредством дерева соединений типа "точка-точка" между представительными узлами кластеров для агрегации состояния нескольких кластеров. На каждом узле этого дерева демон Ganglia Meta Daemon (gmetad) периодически опрашивает набор подчиненных источников данных, разбирает полученный XML, сохраняет все числовые, временные метрики в базы данных циклической записи и экспортирует агрегированный XML через TCP-сокет клиентам. Источниками данных могут быть как демоны gmond, представляющие отдельные кластеры, так и другие демоны gmetad, представляющие группы кластеров. Источники данных используют IP-адреса отправителя для контроля доступа и могут быть указаны с использованием нескольких IP-адресов для обеспечения отказоустойчивости. Эта возможность особенно полезна при агрегации данных из кластеров, поскольку каждый демон gmond содержит полную информацию о состоянии своего кластера.

Ganglia PHP Web Front-end (проектная часть)

Веб-интерфейс Ganglia предоставляет представление собранной информации через динамические веб-страницы в режиме реального времени. Самое главное, он отображает данные Ganglia в понятном виде для системных администраторов и пользователей. Изначально веб-интерфейс Ganglia представлял собой простой HTML-просмотр XML-дерева, но со временем превратился в систему, сохраняющую подробную историю всех собранных данных. Веб-интерфейс Ganglia предназначен для системных администраторов и пользователей. Например, можно просмотреть загрузку процессора за последний час, день, неделю, месяц или год. Веб-интерфейс отображает аналогичные графики для использования памяти, дискового пространства, сетевой статистики, количества запущенных процессов и всех остальных метрик Ganglia. Веб-интерфейс зависит от наличия gmetad, который предоставляет ему данные из нескольких источников Ganglia. В частности, веб-интерфейс открывает локальный порт 8651 (по умолчанию) и ожидает получения XML-дерева Ganglia. Сами веб-страницы обладают высокой динамичностью: любое изменение данных Ganglia немедленно отображается на сайте. Это обеспечивает высокую отзывчивость сайта, но требует разбора всего XML-дерева при каждом обращении к странице. Поэтому веб-интерфейс Ganglia рекомендуется запускать на достаточно мощном выделенном сервере, если он обрабатывает большой объем данных. Веб-интерфейс Ganglia написан на PHP и использует графики, генерируемые gmetad, для отображения исторической информации. Он был протестирован на различных Unix-системах (преимущественно Linux) с веб-сервером Apache и модулем PHP5.