Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XLIII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 28 июня 2016 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Кромников А.Э. УДАЛЁННЫЙ МОНИТОРИНГ ПК // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XLIII междунар. студ. науч.-практ. конф. № 6(42). URL: https://sibac.info/archive/technic/6(42).pdf (дата обращения: 29.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 1 голос
Дипломы участников
У данной статьи нет
дипломов

УДАЛЁННЫЙ МОНИТОРИНГ ПК

Кромников Алексей Эдуардович

студент 4 курса, Факультет информационных систем и технологий, ПГУТИ, г. Самара

При работе с сервером или кластером серверов, требуется непрерывная работа каждого из них. Выход из строя хотя бы одного сервера, может существенно повлиять на работу всей системы. Сбой может произойти по разным причинам: недостаточно места на жёстком диске, ненужный процесс который потребляет много ресурсов, таких причин бесчисленное множество. Что бы решить данную проблему необходим сервис, который будет производить мониторинг системы круглосуточно и сообщать о превышении значения какой-либо метрики снятой с определённого сервера (ПК).

System Monitoring (SM) – это приложение, позволяющее непрерывно отслеживать состояние хоста, снимать значения его метрик, предоставлять это все в удобном для пользователя виде и оповещать пользователя о проблемах связанных с доступностью хостов или со значениями метрик. UI (Пользовательский интерфейс) реализован в виде веб сайта, это удобно тем, что пользователь в любой момент из любого места (где есть выход в интернет) сможет использовать данный сервис.

Архитектура SM

Архитектуру можно разбить на несколько частей (Рис.1):

  1. UI – интерфейс пользователя.
  2. Controllers – слой который обеспечивает связь между пользователем и системой.
  3. Agents – Агенты отвечающие за определённые сервисы.
  4. DB – Слой базы данных, для хранения необходимой информации.

Рисунок 1. Архитектура приложения

 

Доступ к базе данных разделён на два способа:

  1. Через реализацию IStorageController.
  2. Через интерфейс JPA.

Сервис “SchedulerTask” запускает по расписанию Агентов, которые отвечают за подключение к хосту, считывание значений метрик с хостов и за отправку уведомлений.

Контроллеры обеспечивают связь между пользователем и системой: контролируют ввод данных пользователем и используют модель и представление для реализации необходимой реакции.

Слой UI представлен в виде Web интерфейса, который использует технологию Thymeleaf для построения страниц.

Детальный дизайн ядра системы

Центральной частью ПО является Spring Framework, который отвечает за управление жизненным циклом объектов: создание объектов, вызов методов инициализации и конфигурирование объектов путем связывания их между собой. Конфигурирование контейнера осуществляется путем аннотаций и класса DatabaseConfig, содержащих информацию, необходимую для создания bean’ов.

После запуска приложения Spring разворачивает Web сервер и инициализирует beans, далее с помощью аннотации Scheduler, каждые 10 секунд сервис “ScheduledTask” запускает считывание метрик с удалённых хостов. Диаграмма классов для сервиса “ScheduledTask” представлена на Рис.2

Рисунок 2.Диаграмма классов ScheduledTask

 

Сервис “ScheduledTask” поочерёдно считывает информацию о каждом хосте, которая хранится в базе, создаёт объект класса SSHAgent, который по сетевому протоколу SSH подключается к удалённому хосту.

Если подключение не удалось установить, то с помощью сервиса “RouteAlarms” происходит отправка сообщения об ошибке (Рис.3).

Рисунок 3. Оповещение пользователя о неудачной попытке подключения

 

После успешного подключения IStorageController возвращает List<InstanceMetric> для данного хоста. С каждой метрики SSHAgent считывает и передаёт команду в созданный канал. После выполнения команды, хост возвращает результат её выполнения. После обработки результата, IStorageController заносит его в базу данных (Рис.4).

Рисунок 4. Снятие значений метрик с хоста

 

Сервис “ScheduledTask” сравнивается полученное значения с пороговыми записанными в InstanceMetric. При необходимости с помощью сервиса “RouteAlarms” происходит отправка сообщения об ошибке.

Для работы с БД Spring Framework создаёт, хранит и инжектит в необходимые нам классы сервис “IStorageController”, отвечающий за логику работы с БД. Все действия пользователя через Web интерфейс обрабатываются определённым контроллером, который в свою очередь использует сервис “ IStorageController ” (Рис. 5).

Рисунок 5. Диаграмма классов IStorageController

 

Например, пользователь заходит на страницу со всеми проблемами (Рис.6).

Рисунок 6. Информация о проблемах

 

Для построения данной страницы выполняется некоторая последовательность действий:

  1. Spring предоставляет в контроллер, отвечающий за данную страницу, необходимую реализацию интерфейса IStorageController.
  2. Контроллер вызывает метод IStorageController.getMetricProblems().
  3. Данный метод обращается в базу, результатом запроса будет список List<Map<String, Object>>.
  4. Реализация IStorageController возвращает в контроллер список проблем с метриками List<MetricState>.
  5. Данный список помещается в ModelAndView и передаётся на обработку в thymeleaf.
  6. После обработки пользователю возвращается HTML страница.

Для проблем связанных с хостами аналогичная последовательность.

В приложении реализовано графическое представление для снятых значений метрик (Рис.7).

Рисунок 7. Графическое представление снятых значений

 

Данная функция реализована с помощью Highcharts. Highcharts — библиотека для создания чартов написанная на языке JavaScript [1].

Для построения графика выполняется ajax запрос, который при обращении в базу получает последовательность точек и с помощью Highcharts происходит отрисовка графика (Рис.8):

Рисунок 8. Отрисовка графика

 

Так, как количество ‘точек’ за некоторый период может быть очень большим, то необходима агрегация данных. Агрегация производится для “масштаба” час, день, неделя, месяц и год. Для агрегации высчитывается среднее арифметическое за предыдущий “уровень” масштаба и производится запись этого значения и времени в объект Map<Long, Object>. Если не производился съём значений метрики на некотором промежутке времени, то вместо значения записывается null, это необходимо для обрыва графика в данном месте. При необходимости пользователь может поменять масштаб графика прокруткой колёсика мыши. При прокрутке колёсика javascript, в зависимости от значения атрибута “zoomCount”, вызывается метод контроллера, который отвечает за определённый масштаб графика.

Данные в базе логически разделены на две части, с одной из которых взаимодействует реализация интерфейса IStorageController, с другой доступ реализован через hibernate. ER-model базы данных представлена на рисунке 9.

Рисунок 9. Схема базы данных

 

В системе предусмотрена защита ввода в адресную строку адреса недоступного для данного пользователи, а также “инжекции” в файл javascript функции, которая может получить данные доступные только администратору. При попытки доступа к данным обычным пользователем, он будет перенаправлен на страницу с кодом ошибки 404 (Рис.10).

Рисунок 10. Страница 404

 

Данная ошибка не отражает ошибку связанную с правами доступа, но такой подход был выбран для того, что бы пользователь не мог точно знать существует ли данная функция на сервере. Также на UI пользователя скрыто меню администратора (Рис.11).

Рисунок 11. Скрытое меню

 

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

 

Список литературы:

  1. Highcharts: Interactive JavaScript charts for your webpage. [Электронный ресурс]. – Режим доступа: http://www.highcharts.com (дата обращения: 04.05.16)
  2. Spring Security : Customize 403 access denied page. [Электронный ресурс]. – Режим доступа: http://www.mkyong.com/spring-security/customize-http-403-access-denied-page-in-spring-security (дата обращения: 04.05.16)
Проголосовать за статью
Конференция завершена
Эта статья набрала 1 голос
Дипломы участников
У данной статьи нет
дипломов

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