Project ARA - это бесплатная система мониторинга состояний серверов в режиме реального времени.

Задача: Мониторинг состояний серверов в режиме реального времени. Основные параметры мониторинга: нагрузка центрального процессора (ЦП), нагрузка оперативной памяти, загруженность жестких дисков.

 

Рис. 1 Схема работы системы

 

Архитектура системы:

1. Серверная БД (СБД): СБД (MySQL), в которую поступает и хранится информация о текущем состоянии серверов (серверных машин).

3. Адаптер: преобразует данные, хранящиеся на СБД в формате JSON.

2. Клиентские приложения (КП): клиентские приложения запускаются на серверных машинах, среди которых требуется проведение мониторинга. КП посылают данные о состоянии машин на сервер БД.

4. WEB-сервер: веб-оболочка для представления данных пользователю. Он не является обязательным, но сильно упрощает процесс мониторинга. Пользователи могут в браузере (в режиме реального времени) следить за состоянием своих серверов (смотрите рис. 2).

5. Конечное представление у пользователя: в каком виде пользователи системы просматривают данные. В нашем случае, это удобная HTML страница с AJAX элементами для динамического обновление данных.

Процесс работы системы:

1. Клиентское приложение, при первом запуске на устройстве, регистрируется на СБД. Дальнейшей ее задачей является: мониторинг за параметрами системы (состояние загруженности ЦП, оперативной памяти и жестких дисков), и передача этих данных на сервер.

2. Сервер базы данных хранит поступающие данные от клиентских приложений,  и организует безопасный доступ к ним.

3. Адаптер получает каждые 2 секунды данные с СБД, и сохраняет их в формате JSON (в файле response.txt текущего каталога). Основным условием является доступность файла response.txt конечному пользователю через GET запрос. По этой причине рекомендуется запускать адаптер на самом веб-сервере.

4. Веб-сервер формирует HTML страницу мониторинга системы (конечную оболочку системы).

5. Страница мониторинга (html) формирует у конечного пользователя данные в удобном для анализа виде. Страница в режиме реального времени (посредством AJAX запросов) обращается к файлу response.txt (хранящемуся на веб-сервере), и отображает данные пользователю.

Рис. 2  Веб-интерфейс системы

 

Благодарности:

Особую благодарность хочу выразить Мамедбекову Артуру за помощь в реализации веб-интерфейса системы и Магомедову Магди в реализации адаптера для веб-сервера

 

Дополнительные ссылки:

1. Ссылка для скачивания системы: https://yadi.sk/d/j1BaRjlWeX67i

2. Ссылка на Github проект ВЕБ-сервера: https://github.com/GebekovAS/ProjectAra.git

 

Другие статьи:

1. Project ARA: Установка сервера

2. Project ARA: Установка клиента

3. Project ARA: Установка WEB-оболочки

4. Project ARA v2