Please use this identifier to cite or link to this item: https://er.chdtu.edu.ua/handle/ChSTU/7288
Title: Система моніторингу та управління великими кластерами в розподілених обчислювальних середовищах
Authors: ТАЗЕТДІНОВ, Валерій
МІЩЕНКО, Максим
Keywords: МОНІТОРИНГ СЕРВЕРІВ;РОЗПОДІЛЕНІ ОБЧИСЛЮВАЛЬНІ СЕРЕДОВИЩА;КЛАСТЕРИ;СИСТЕМА УПРАВЛІННЯ;НАВАНТАЖЕННЯ НА СЕРВЕРИ;БЕЗПЕКА ДАНИХ;ШИФРУВАННЯ;ПРОТОКОЛ HTTPS;АВТЕНТИФІКАЦІЯ;ДАЖБОРД
Issue Date: 2025
Abstract: Метою виконання даної кваліфікаційної роботи на здобуття освітнього ступеня «бакалавр» є розробка системи моніторингу та управління великими кластерами в розподілених обчислювальних середовищах, яка забезпечить ефективний контроль за станом серверів, виявлення аномалій та сповіщення про збої, а також гарантуватиме безпеку даних при їх передачі і доступу до системи. Загальний обсяг роботи становить 87 сторінок. У роботі 9 рисунків, 1 таблиця. Для виконання роботи використано 31 літературних джерел. Головне завдання полягає в розробці ефективної системи моніторингу та управління для великих кластерів в розподілених обчислювальних середовищах. Система повинна забезпечити моніторинг стану серверів, виявлення аномальних ситуацій, управління ресурсами, а також бути здатною до масштабування при збільшенні кількості серверів та складності інфраструктури. Крім того, важливим завданням є забезпечення безпеки даних при їх передачі між компонентами системи та реалізація надійної системи авторизації доступу до дажборда для адміністраторів. Стислий опис розділів кваліфікаційної роботи бакалавра складається з аналізу предметної області та постановки задачі; вибору технологій та інструментальних засобів; розробка системи моніторингу та управління для великих кластерів в розподілених обчислювальних середовищах та реалізація механізмів захисту системи.
URI: https://er.chdtu.edu.ua/handle/ChSTU/7288
Appears in Collections:123 Комп’ютерна інженерія (Комп'ютерні системи та мережі)

Files in This Item:
File Description SizeFormat 
1_ТИТУЛКА_Міщенко-merged.pdf
  Restricted Access
2.02 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.

Extracted text
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
ФАКУЛЬТЕТ ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ І СИСТЕМ
КАФЕДРА ІНФОРМАЦІЙНОЇ БЕЗПЕКИ ТА КОМП’ЮТЕРНОЇ ІНЖЕНЕРІЇ
ПОЯСНЮВАЛЬНА ЗАПИСКА
до кваліфікаційної роботи бакалавра
на тему: «Система моніторингу та управління
великими кластерами в розподілених
обчислювальних середовищах»
ЧДТУ.252302.007 ПЗ
Виконав: студент 4 курсу, групи КМ-2105
спеціальності 123 – «Комп’ютерна інженерія»
за освітньою програмою – «Комп’ютерні системи
та мережі»
Максим МІЩЕНКО
Керівник
к.т.н., доцент
Валерій ТАЗЕТДІНОВ
Рецензент
доцент кафедри інформаційних систем та
організації заходів цивільного захисту
навчально-наукового інституту цивільного
захисту НУЦЗ України, к.т.н., доцент
Віталій ЗАЖОМА
«ЗАХИСТ ДОЗВОЛЯЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор ___________ Віра БАБЕНКО
Черкаси 2025 року
Форма № Н-9.01
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ
Факультет: інформаційних технологій і систем
Кафедра: інформаційної безпеки та комп’ютерної інженерії
Освітньо-кваліфікаційний рівень: Бакалавр
Спеціальність 123 – Комп’ютерна інженерія
Освітня програма Комп’ютерні системи та мережі
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор _____________ Віра БАБЕНКО
«28» лютого 2025 року
ЗАВДАННЯ
на кваліфікаційну роботу бакалавра студенту
МіщенкоМаксиму Олександровичу
(прізвище, ім‘я, по батькові)
1. Тема роботи: Система моніторингу та управління великими кластерами в
розподілених обчислювальних середовищах
Керівник роботи:к.т.н., доцент Тазетдінов Валерій Абударович
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання)
затверджені наказом університету від «25» лютого 2025 р. № 53/03-03
2. Строк подання студентом роботи:
3. Вихідні дані до роботи:
ОС -Linux; Мова програмування C++, Java - фреймворк SpringBoot;
Розробка агентів моніторингу -фреймворк Boost.Asio;Протокол передачі даних - HTTPS,
Автентифікація користувачів через соціальні мережі; БД – MongoDB;
Візуалізації даних про стан системи – дажборд.
4. Зміст розрахунково-пояснювальної записки (перелік питань, що їх належить розробити):
Вступ
1. Аналіз предметної області та постановка задачі
2. Вибір технологій та інструментальних засобів
3. Розробка системи моніторингу та управління великими кластерами в розподілених
обчислюваних середовищах
4. Захист системи моніторингу та управління великими кластерами в розподілених
обчислюваних середовищах
5. Висновки
Список використаних джерел. Додатки
5. Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень, плакатів):
Додаток А Специфікація
Додаток Б Текст програм
Додаток В Інструкція користувача
6. Консультанти розділів роботи:
Розділ Прізвище, ініціали Підпис, дата
консультанта завдання видав завдання прийняв
7. Дата видачі завдання: 28 лютого 2025 року
КАЛЕНДАРНИЙ ПЛАН
Термін
№ з/п Назва етапів роботи виконання Примітка
етапів роботи
1 Збір матеріалу 01.03 – 14.03 виконано
2 Обробка матеріалу 15.03 – 20.03 виконано
3 Обґрунтування актуальності виконання досліджень 21.03 - 25.03 виконано
4 Оцінка стану проблеми, виокремлення дослідницьких виконано
задач, постановка задачі дослідження 26.03 – 01.04
5 Викладення сутності і результатів дослідження 03.04 - 08.04 виконано
6 Практичне застосування результатів дослідження 09.04 - 27.04 виконано
7 Оформлення результатів в пояснювальну записку 28.04 - 02.05 виконано
8 Подання роботи на відгук та рецензування 15.05 - 20.05 виконано
Студент ___________________________ Максим МІЩЕНКО
(підпис)
Керівник роботи ___________________________ ВалерійТАЗЕТДІНОВ
(підпис)
АНОТАЦІЯ
Метою виконання даної кваліфікаційної роботи на здобуття освітнього
ступеня «бакалавр» є розробка системи моніторингу та управління великими
кластерами в розподілених обчислювальних середовищах, яка забезпечить
ефективний контроль за станом серверів, виявлення аномалій та сповіщення
про збої, а також гарантуватиме безпеку даних при їх передачі і доступу до
системи.
Загальний обсяг роботи становить 87 сторінок. У роботі 9 рисунків,
1 таблиця. Для виконання роботи використано 31 літературних джерел.
Головне завдання полягає в розробці ефективної системи моніторингу та
управління для великих кластерів в розподілених обчислювальних
середовищах. Система повинна забезпечити моніторинг стану серверів,
виявлення аномальних ситуацій, управління ресурсами, а також бути здатною
до масштабування при збільшенні кількості серверів та складності
інфраструктури. Крім того, важливим завданням є забезпечення безпеки даних
при їх передачі між компонентами системи та реалізація надійної системи
авторизації доступу до дажборда для адміністраторів.
Стислий опис розділів кваліфікаційної роботи бакалавра складається з
аналізу предметної області та постановки задачі; вибору технологій та
інструментальних засобів; розробка системи моніторингу та управління для
великих кластерів в розподілених обчислювальних середовищах та реалізація
механізмів захисту системи.
Ключові слова: МОНІТОРИНГ СЕРВЕРІВ, РОЗПОДІЛЕНІ
ОБЧИСЛЮВАЛЬНІ СЕРЕДОВИЩА, КЛАСТЕРИ, СИСТЕМА УПРАВЛІННЯ,
НАВАНТАЖЕННЯ НА СЕРВЕРИ, БЕЗПЕКА ДАНИХ, ШИФРУВАННЯ,
ПРОТОКОЛ HTTPS, АВТЕНТИФІКАЦІЯ, ДАЖБОРД.
ANOTATION
The purpose of this qualification work for the degree of Bachelor is to develop
a system for monitoring and managing large clusters in distributed computing
environments, which will provide effective control over the state of servers, detect
anomalies and notify about failures, and also guarantee data security during their
transfer and access to the system.
The total volume of the work is 87 pages. The work contains 9 figures, 1 table.
31 literary sources were used to perform the work.
The main task is to develop an effective monitoring and management system
for large clusters in distributed computing environments. The system must provide
monitoring of the state of servers, detect abnormal situations, manage resources, and
be capable of scaling with an increase in the number of servers and the complexity of
the infrastructure. In addition, an important task is to ensure data security during their
transfer between system components and implement a reliable system for authorizing
access to the dashboard for administrators.
A brief description of the sections of the bachelor's qualification work consists
of an analysis of the subject area and problem statement; selection of technologies
and tools; development of an effective monitoring and management system for large
clusters in distributed computing environments and system protection.
Key words: SERVER MONITORING, DISTRIBUTED COMPUTING
ENVIRONMENTS, CLUSTERS, MANAGEMENT SYSTEM, SERVER LOAD,
DATA SECURITY, ENCRYPTION, HTTPS PROTOCOL, AUTHENTICATION,
DASHBOARD.
ЗМІСТ
ВСТУП……………………………………………………………………………..4
1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА ЗАДАЧІ…….…..7
1.1 Аналіз існуючих систем………………………...………….………….7
1.2 Постановка задачі………...………………………………………...…17
1.3 Висновок до розділу…… ………………………………….…………20
2 ВИБІР ТЕХНОЛОГІЙ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ………......22
2.1 Огляд існуючих технологій……………………………….………….22
2.2 Обґрунтування вибору…..………………………………………...….30
2.3 Висновок до розділу ……………………………………….…………35
3 РОЗРОБКАСИСТЕМИ МОНІТОРИНГУ ТА УПРАВЛІННЯ ВЕЛИКИМИ
КЛАСТЕРАМИ В РОЗПОДІЛЕНИХ ОБЧИСЛЮВАЛЬНИХ
СЕРЕДОВИЩАХ…………………………………………………………....36
3.1 Структура системи……………...………………………………..…...36
3.2 Опис функцій системи………………………………………………..41
3.3 Технічні вимоги для роботи з системою…………………………….45
3.4 Оцінка ефективності………………………………………………….48
3.5 Висновки до розділу………………………………………………….50
4 ЗАХИСТ СИСТЕМИ МОНІТОРИНГУ ТА УПРАВЛІННЯ ВЕЛИКИМИ
КЛАСТЕРАМИ В РОЗПОДІЛЕНИХ ОБЧИСЛЮВАЛЬНИХ
СЕРЕДОВИЩАХ……………………………………………..…..……...….51
4.1 Огляд існуючих рішень …………………..………….………………51
4.2 Реалізація захисту даних користувачів……………………….….….57
4.3 Висновки до розділу…………..…………………………….…….….60
ВИСНОВКИ……………………………………………………………………...62
ЧДТУ.252302.007 ПЗ
Змн. Арк. № докум. Підпис Дат
РозрКобив Міщенко М.О а Система моніторингу та Літ. Лист Листів
Керівник ТазетдіновВ.А. управління великими 2 87
Рецеанзент Зажома В.М.. кластерами в розподілених
Н.Контроль Гресько С.О. обчислювальних середовищах Кафедра ІБ та КІ
ф Пояснювальна записка
Затвердив Бабенко В.Г. гр. КМ-2105
е
д
р
а
К
К
-
0
6
ДОДАТКИ:
А – 482.ЧДТУ.52302-01 Система моніторингу та управління великими
кластерами в розподілених обчислювальних середовищах
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………...………..85
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 3
а
ВСТУП
Актуальність теми. Сучасні обчислювальні системи дедалі частіше
використовують розподілені середовища для забезпечення високої
продуктивності, масштабованості та відмовостійкості. Зі зростанням
кількості серверів і складності інфраструктур виникає потреба у створенні
ефективних систем моніторингу та управління, які дозволяють контролювати
стан кластерів у режимі реального часу, оперативно виявляти збої, а також
швидко реагувати на надзвичайні ситуації.
Наявність централізованої системи моніторингу забезпечує підвищення
надійності всієї ІТ-інфраструктури, оптимізацію використання ресурсів і
зменшення часу простою. Оскільки більшість серверних систем
функціонують під керуванням операційної системи Linux, розроблене
програмне забезпечення повинно бути адаптоване саме для цієї платформи,
враховуючи її особливості.
Крім того, у сучасних умовах особливого значення набувають питання
безпеки даних при передачі інформації між системами, а також захист
доступу до панелі управління. Використання протоколів безпечної передачі
даних, реалізація системи авторизації та автентифікації є невід’ємними
елементами розробки надійних рішень.
Таким чином, тема проєктування системи моніторингу та управління
великими кластерами є актуальною та важливою для забезпечення стабільної
роботи розподілених обчислювальних середовищ в умовах зростаючих вимог
до надійності, безпеки та продуктивності інформаційних систем.
Метою кваліфікаційної роботиє розробка системи моніторингу та
управління великими кластерами в розподілених обчислювальних
середовищах, яка забезпечить ефективний контроль за станом серверів,
виявлення аномалій та сповіщення про збої, а також гарантуватиме безпеку
даних при їх передачі і доступі до системи.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 4
а
Для досягнення сформульованої мети необхідно вирішити такі задачі:
- Дослідити сферу моніторингу та управління великими кластерами в
розподілених обчислювальних середовищах.
- Виконати аналіз існуючих рішень та технологій у галузі моніторингу
серверних систем.
- Обґрунтувати вибір програмно-технічних засобів для розробки системи
моніторингу.
- Розробити програмне забезпечення для збору, обробки та візуалізації
даних моніторингу.
- Реалізувати механізми захисту даних при передачі та зберіганні.
- Провести тестування розробленої системи та оцінити її ефективність.
Тему моніторингу та управління великими кластерами в розподілених
обчислювальних середовищах гарно розкриває книга “Designing Data-
Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable
Systems” Мартіна Клеппмана. Вона охоплює основи проектування великих
розподілених систем, зокрема архітектуру, надійність, масштабованість та
обробку великих обсягів даних. Автор надає глибоке розуміння принципів
роботи з базами даних, зокрема NoSQL, які є важливими для створення таких
систем. Також у книзі розглядаються методи обробки, зберігання та передачі
даних між компонентами, що є критично важливими для моніторингу стану
серверів у великих кластерах.
Одержані в кваліфікаційній роботі результати мають практичне
значення, суть якогополягає в розробці ефективної та надійної системи
моніторингу та управління для великих кластерних середовищ, що дозволяє
підвищити надійність та продуктивність розподілених обчислювальних
систем. Реалізація такої системи дозволяє оперативно виявляти аномалії у
роботі серверів, що зменшує ризики збоїв та аварій, що можуть призвести до
значних фінансових витрат або втрати даних.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 5
а
Важливим аспектом є забезпечення безпеки при передачі даних, що
дозволяє захистити інформацію про стан серверів від несанкціонованого
доступу. Створення зручного та інтуїтивно зрозумілого дажборда для
відображення основних показників роботи серверів полегшує
адміністраторам ІТ-систем ефективне управління інфраструктурою та
швидке реагування на інциденти. Таким чином, розробка системи
моніторингу має велике значення для підприємств і організацій, які
використовують розподілені обчислювальні середовища, а також для всіх,
хто прагне оптимізувати свою ІТ-інфраструктуру.
Кваліфікаційна робота складається з 4-х розділів, яких подається
інформація про:
1. Обрану предметну область дослідження та про постановку проблема.
2. Огляд існуючих технологій, за допомогою яких можна реалізувати
подібну систему та обґрунтування вибору тієї чи іншої технології.
3. Реалізацію системи: відображення структури системи, опис функцій
кожної частини системи, технічні вимоги до системи а також
практична оцінка ефективності роботи.
4. Розробка захисту системи.
Використана література, під час написання кваліфікаційної роботи,
досить добре розкриває основні методики та підходи для розробки подібних
автоматизованих систем.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 6
а
РОЗДІЛ 1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ ТА ПОСТАНОВКА
ЗАДАЧІ
1.1 Аналіз існуючих систем
У великих розподілених обчислювальних середовищах [21] кластери
серверів виступають ключовою інфраструктурною основою для забезпечення
обчислювальних ресурсів, зберігання даних та надання різноманітних
сервісів. Із постійним зростанням кількості серверів, збільшенням складності
мережевих взаємодій та обсягів даних питання ефективного моніторингу та
логування стає одним із пріоритетних завдань для забезпечення стабільності,
безпеки та продуктивності систем.
Моніторинг серверів дає змогу виявляти проблеми на ранніх стадіях
їхнього виникнення шляхом постійного спостереження за ключовими
параметрами, такими як завантаження центрального процесора,
використання оперативної памʼяті, стан дискових ресурсів та показники
мережевої активності. Це дозволяє оперативно фіксувати аномальну
поведінку системних компонентів та вживати заходів до того, як виникнуть
критичні збої чи втрати доступності сервісів [21-27].
Ефективна система моніторингу також сприяє оптимізації
використання обчислювальних ресурсів. Аналізуючи дані про навантаження,
можливо здійснювати перерозподіл робочих процесів між вузлами кластера,
виявляти неефективно задіяні сервери та своєчасно планувати
масштабування інфраструктури. Важливим аспектом є і підвищення рівня
інформаційної безпеки, оскільки система моніторингу дозволяє своєчасно
виявляти підозрілу активність, зокрема аномальні стрибки трафіку чи масові
спроби несанкціонованого доступу.
Логування серверів забезпечує централізовану реєстрацію важливих
подій у системі, таких як збої у роботі програмного забезпечення, зміни
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 7
а
конфігураційних файлів, запуск або зупинка критичних сервісів, а також
результати спроб автентифікації користувачів. Наявність повного та
структурованого журналу подій є критично важливою умовою для
детального аналізу інцидентів, встановлення причин збоїв та вжиття
відповідних заходів щодо їх усунення і недопущення у майбутньому.
Окрім вирішення завдань оперативного реагування, логування
виступає важливою складовою дотримання вимог інформаційної безпеки та
стандартів аудиту. Реєстрація та зберігання подій дозволяє здійснювати
ретельні перевірки роботи інформаційної системи, оцінювати ефективність
заходів захисту та доводити відповідність встановленим нормам безпеки.
Додатково, аналіз історичних даних із логів дає змогу здійснювати
прогнозування навантаження на систему, що є основою для стратегічного
планування розвитку інфраструктури [21-27].
Інтеграція процесів моніторингу та логування у межах єдиної
платформи є необхідною умовою для створення сучасної системи управління
кластерними обчислювальними середовищами. Наявність централізованого
інтерфейсу у вигляді інтерактивного дажборду дозволяє візуалізувати
поточний стан усіх серверів у реальному часі, оперативно отримувати
сповіщення про аномальні події та, за необхідності, забезпечувати швидкий
доступ до проблемних вузлів через інтегрований механізм підключення по
SSH.
Таким чином, організація повноцінного моніторингу та логування
серверів є фундаментальною передумовою забезпечення високої доступності,
продуктивності та безпеки функціонування великих розподілених
обчислювальних систем.
Хмарні обчислювальні платформи, такі як AmazonWebServices (AWS)
та MicrosoftAzure, пропонують широкий спектр інструментів і сервісів для
моніторингу серверів, що забезпечують високий рівень контролю,
автоматизації та аналітики у розподілених обчислювальних середовищах.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 8
а
Завдяки інтеграції спеціалізованих сервісів моніторингу хмарні провайдери
дозволяють організувати централізоване відстеження стану інфраструктури,
своєчасно виявляти проблеми та оперативно реагувати на інциденти[1].
В екосистемі AWS основним сервісом моніторингу є
AmazonCloudWatch. Зовнішній вигляд сервісу зображено на рисунку 1.1.
Рисунок 1.1 – AmazonCloudWatch
Він забезпечує збір та збереження метрик, логів та подій для усіх
ресурсів, розгорнутих у хмарі. CloudWatch автоматично агрегує дані про
навантаження на процесори, використання пам’яті, дисковий простір,
мережеву активність та інші критичні параметри серверів (EC2-інстансів) і
служб. Користувачі мають можливість налаштовувати персоналізовані
дашборди для візуалізації ключових показників у реальному часі, створювати
кастомні метрики для моніторингу специфічних аспектів роботи додатків, а
також автоматизувати реагування на події через функціонал
CloudWatchAlarms. Наприклад, можна налаштувати автоматичне
масштабування кластеру або перезапуск інстансів при перевищенні
встановлених порогових значень навантаження.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 9
а
Додатково AWS пропонує AWSCloudTrail, який відповідає за
логування дій користувачів та сервісів у рамках облікового запису. Це дає
змогу здійснювати аудит змін у конфігураціях, аналізувати підозрілу
активність та відповідати вимогам інформаційної безпеки. Сервіси
моніторингу інтегруються також із механізмами автоматичного сповіщення
за допомогою AmazonSNS (SimpleNotificationService), що забезпечує
надсилання сповіщень у вигляді SMS, електронної пошти або HTTP-запитів.
MicrosoftAzure надає потужний набір інструментів для моніторингу
через AzureMonitor. Зовнішній вигляд сервісу зображено на рисунку 1.2.
Рисунок 1.2 – AzureMonitor
Цей сервіс здійснює збір телеметрії з усіх ресурсів Azure, гібридних
середовищ та локальних серверів. AzureMonitor дозволяє відстежувати
продуктивність віртуальних машин, баз даних, контейнерів, мережевої
інфраструктури та додатків, аналізуючи мільйони подій щодня. Система
підтримує створення аналітичних запитів через KustoQueryLanguage (KQL),
що дозволяє гнучко обробляти великі обсяги даних [2].
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 10
а
Користувачі можуть будувати інтерактивні візуалізації через
AzureDashboards або використовувати Workbooks для глибокого
аналітичного аналізу. Важливою перевагою є інтеграція AzureMonitor із
AzureAlerts та ActionGroups, які дозволяють створювати складні сценарії
реагування на певні події, наприклад, автоматичне масштабування,
надсилання повідомлень у MicrosoftTeams або запуск скриптів для
самовідновлення систем.
Крім того, AzureLogAnalytics, що є складовою частиною AzureMonitor,
забезпечує централізоване збирання та кореляцію логів із серверів,
мережевих пристроїв та додатків, дозволяючи створювати складні системи
аудиту та відповідності вимогам інформаційної безпеки. Для розширення
можливостей моніторингу гібридних середовищ Microsoft пропонує
AzureArc, що дає змогу підключати локальні або мультихмарні сервери до
єдиного інтерфейсу управління.
Обидві платформи AWS і Azure підтримують інтеграцію з
технологіями машинного навчання для інтелектуального виявлення
аномалій. Наприклад, CloudWatchAnomalyDetection у AWS автоматично
навчається на історичних даних метрик і створює моделі нормальної
поведінки ресурсів, що дозволяє з високою точністю виявляти відхилення. В
Azure аналогічні можливості реалізуються через SmartDetection у рамках
ApplicationInsights.
Таким чином, хмарні сервіси AWS та Azure надають широкі
можливості для комплексного моніторингу серверів, що включають збір
метрик та логів у реальному часі, автоматичне масштабування
інфраструктури, прогнозування навантаження, інтеграцію із системами
оповіщення, проведення аналітики інцидентів і забезпечення високого рівня
інформаційної безпеки. Використання таких платформ значно спрощує
адміністрування великих кластерів та забезпечує підвищення ефективності
розподілених обчислювальних систем.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 11
а
У сучасних розподілених обчислювальних середовищах ефективний
моніторинг та аналіз даних є критично важливими для забезпечення
стабільної роботи інфраструктури. Для цих цілей розроблено велику
кількість спеціалізованих рішень, серед яких особливу популярність здобули
системи Kibana, Grafana, Prometheus та Datadog. Кожна з них має власні
особливості, функціональні можливості та сфери оптимального
використання.
Kibana є інструментом візуалізації та аналізу даних, який працює у
зв’язці з пошуковим рушієм Elasticsearch. Система дозволяє будувати
інтерактивні графіки, гістограми, діаграми та карти на основі великого
обсягу логів і структурованих даних. Інтерфейс Kibana зображено на рисунку
1.3.
Рисунок 1.3 – Інтерфейс Kibana
Kibana використовується переважно для аналізу подій, що
реєструються у розподілених інформаційних системах, виявлення інцидентів
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 12
а
безпеки, відстеження змін у поведінці користувачів або додатків. Основними
перевагами Kibana є підтримка складних аналітичних запитів, гнучке
налаштування дашбордів і можливість інтеграції з іншими сервісами
екосистеми ElasticStack для створення комплексних рішень із збору, обробки
та візуалізації логів.
Grafana є відкритою платформою для моніторингу та візуалізації
метрик у реальному часі. Вона підтримує підключення до різноманітних
джерел даних, таких як Prometheus, InfluxDB, Elasticsearch, а також до
хмарних рішень, наприклад, AWS CloudWatch чи Azure Monitor. Інтерфейс
Grafanaзображено на рисунку 1.4.
Рисунок 1.4 – Інтерфейс Grafana
Grafana надає інструменти для побудови гнучких, динамічних
дашбордів із різноманітними типами візуалізацій — графіками, таблицями,
тепловими картами тощо [3]. Однією з ключових особливостей Grafana є
система оповіщень, яка дозволяє створювати складні правила для надсилання
нотифікацій при виявленні відхилень у роботі системи. Завдяки своїй
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 13
а
гнучкості та широкій підтримці плагінів Grafana широко використовується як
для моніторингу серверної інфраструктури, так і для візуалізації бізнес-
показників у реальному часі.
Prometheus– це система моніторингу та збору метрик із відкритим
кодом, яка була спочатку розроблена компанією SoundCloud. Вона
орієнтована на збір числових метрик у часових рядах через механізм pull-
запитів до цільових систем. Prometheus має власну мову запитів PromQL, яка
дозволяє здійснювати складну агрегацію та аналіз даних. Система зберігає
дані у власному оптимізованому форматі і не залежить від сторонніх баз
даних, що робить її зручною для розгортання у середовищах із великою
кількістю серверів та мікросервісів. Інтерфейс Prometheus зображено на
рисунку 1.5.
Рисунок 1.5 – ІнтерфейсPrometheus
Prometheus також забезпечує базову функціональність оповіщення
через компонент Alertmanager, який можна інтегрувати з зовнішніми
системами повідомлень.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 14
а
Datadog є комерційною платформою моніторингу та аналітики, яка
об’єднує збір метрик, логів, трасування запитів та моніторинг безпеки в
єдиному рішенні. Datadog підтримує інтеграцію із сотнями сторонніх сервісів
та інструментів, серед яких хмарні платформи[28], бази даних, контейнери,
серверні додатки та системи кібербезпеки. Завдяки потужним можливостям
побудови дашбордів, налаштуванню алертів та аналітичних запитів Datadog
дозволяє швидко отримувати комплексну картину стану інфраструктури і
прикладних сервісів. Інтерфейс Datadog зображено на рисунку 1.6.
Рисунок 1.6 – ІнтерфейсDatadog
Важливою особливістю Datadog є підтримка функцій машинного
навчання для виявлення аномалій та прогнозування навантаження, що
дозволяє покращувати точність моніторингу складних розподілених систем.
Таким чином, існуючі системи моніторингу та візуалізації даних, такі
як Kibana, Grafana, Prometheus і Datadog, забезпечують широкі можливості
для збору, обробки, аналізу та візуалізації даних у реальному часі. Вибір
конкретного інструменту залежить від специфіки проєкту, вимог до
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 15
а
масштабованості, рівня інтеграції з іншими компонентами інфраструктури та
бажаного рівня автоматизації процесів моніторингу.
При виборі системи моніторингу для розподілених обчислювальних
середовищ важливу роль відіграє оцінка вартості впровадження та
експлуатації рішень. Хоча деякі платформи позиціонуються як безкоштовні
або з відкритим кодом, реальні витрати на їх використання можуть суттєво
варіювати залежно від масштабу інфраструктури, обсягу даних та потреб в
інтеграції і підтримці.
Kibana сама по собі є безкоштовною при використанні у зв’язці з
відкритою версією Elasticsearch. Проте реальні витрати пов’язані із
забезпеченням працездатності великого кластера Elasticsearch, який вимагає
значних ресурсів процесора, памʼяті та дискової підсистеми. Крім того, для
великих обсягів логів часто потрібна комерційна ліцензія Elastic (Elastic
Cloud або Enterprise Edition), яка надає розширені можливості безпеки,
аналітики та підтримки. Вартість таких ліцензій може становити сотні або
тисячі доларів США на місяць залежно від обсягу даних та кількості нод у
кластері.
Grafana також є відкритим програмним забезпеченням і може бути
розгорнута безкоштовно у власній інфраструктурі. Однак у разі
використання Grafana Cloud або комерційних версій (Grafana Enterprise)
виникають додаткові витрати [4]. Платні плани Grafana Cloud залежать від
обсягу зібраних метрик, кількості запитів і кількості користувачів. При
великій кількості метрик та підключених джерел даних щомісячна вартість
може досягати кількох тисяч доларів, особливо якщо включено додаткові
функції, такі як розширена аналітика або SLA-підтримка.
Prometheus надається як відкритий проєкт без ліцензійних зборів, але
його розгортання та підтримка у масштабованих середовищах може бути
дороговартісним. Велика кількість метрик, збереження історичних даних
протягом тривалого часу, реплікація даних для відмовостійкості та
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 16
а
горизонтальне масштабування вимагають значних обчислювальних ресурсів.
Крім того, для ефективного використання Prometheus часто залучаються
додаткові компоненти, такі як Thanos або Cortex, що підвищує складність
архітектури і потребує додаткових витрат на адміністрування та технічну
підтримку.
Datadog є комерційним продуктом із чіткою системою тарифікації.
Вартість використання Datadog залежить від кількості хостів, обсягу логів,
кількості спостережуваних додатків та активованих модулів (наприклад,
моніторинг безпеки або APM — Application Performance Monitoring). Базові
плани моніторингу можуть починатися від кількох десятків доларів США за
хост на місяць, проте при розширенні функціоналу та обсягу даних сукупна
вартість часто сягає кількох тисяч доларів на місяць. Datadog також стягує
окрему плату за зберігання логів і трейсів понад певний ліміт часу, що
необхідно враховувати при плануванні бюджету.
Таким чином, хоча системи Kibana, Grafana та Prometheus за своєю
суттю можуть бути безкоштовними на базовому рівні, реальні витрати на їх
використання у великих або критичних середовищах можуть бути значними
через потребу в ресурсах, адмініструванні та додаткових компонентах.
Datadog як комерційний продукт забезпечує спрощене розгортання та
інтеграцію, проте має високі прямі фінансові витрати.
1.2 Постановка задач
Хмарні провайдери, такі як AmazonWebServices (AWS) та
MicrosoftAzure, надають власні інтегровані сервіси для моніторингу стану
ресурсів, продуктивності додатків і управління інфраструктурою. Попри
зручність використання та високу інтеграцію із внутрішніми компонентами
хмарних середовищ, вартість цих сервісів може стати суттєвим
навантаженням на бюджет при масштабуванні системи.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 17
а
У середовищі AWS основним сервісом моніторингу є Amazon
CloudWatch. Цей сервіс дозволяє збирати метрики про стан інстансів EC2,
баз даних RDS, контейнерних кластерів ECS і багатьох інших компонентів.
Однак CloudWatch використовує модель оплати за обсяг зібраних метрик,
кількість запитів до API, обсяг збережених логів та обсяг переданих даних.
При активному використанні моніторингу в кластері із великою кількістю
серверів або при необхідності тривалого зберігання логів витрати можуть
швидко зрости до сотень або навіть тисяч доларів на місяць. Особливо
значним фактором є плата за аналітику логів та збереження детальної
історичної інформації, що є критичним для комплексного аналізу аномалій та
розслідування інцидентів [5].
MicrosoftAzure пропонує аналогічні можливості через сервіс
AzureMonitor, який включає моніторинг метрик, логів, трасування додатків і
створення оповіщень. Вартість AzureMonitor також залежить від кількості
метрик, частоти збору даних, обсягу логів та терміну їх зберігання. Для
великих інфраструктур з високою частотою оновлення даних вартість
використання AzureMonitor може стати дуже значною, зокрема через оплату
за обробку даних у LogAnalytics та використання додаткових компонентів,
таких як AzureApplicationInsights для моніторингу прикладних сервісів.
Таким чином, незважаючи на технологічні переваги вбудованих
інструментів моніторингу у хмарних платформах AWS і Azure, їхнє активне
використання у великих або інтенсивно працюючих середовищах є досить
дорогим. Тому при проєктуванні системи моніторингу важливо уважно
оцінювати прогнозовані витрати, враховуючи не тільки кількість серверів,
але й частоту збору даних, обсяг логів та необхідний період зберігання
історичних даних. Таблиця порівняння вартості AWSCloudWatch і
AzureMonitor для 100 серверів зображено в таблиці 1.1.
У сучасних розподілених обчислювальних середовищах велика
кількість систем моніторингу розгортається не у великих хмарних
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 18
а
платформах, а на звичайних віртуальних приватних серверах (VPS). Це
пояснюється як економічною доцільністю, так і гнучкістю налаштування
інфраструктури під конкретні потреби.
Таблиця 1.1 – ВартістьAWS CloudWatch і Azure Monitor
Загальні
Хмарний Вартість Додаткові
Вартість збору метрик витрати для
сервіс збору логів витрати
100 серверів
~$0.50 за 1 ГБ Від $300 до
AWS $0.30 за Аналітика логів,
збережених $1000+ на
CloudWatch метрику/сервер/місяць додаткові алерти
логів місяць
Запити аналітики, Від $400 до
Azure Включено в тариф VM ~$2.50 за 1 ГБ
довготривале $1200+ на
Monitor (стандартні метрики) логів
зберігання місяць
Віртуальний приватний сервер (VPS) – це віртуалізоване середовище,
що імітує повноцінний фізичний сервер із власною операційною системою,
виділеними обчислювальними ресурсами та ізольованим простором для
виконання програм. На одному фізичному сервері може бути створено
декілька незалежних VPS, кожен з яких має власні параметри процесора
(vCPU), оперативної памʼяті (RAM), дискового простору та мережевих
ресурсів. Користувачі VPS отримують повний адміністративний доступ до
своїх віртуальних серверів і можуть самостійно встановлювати необхідне
програмне забезпечення, змінювати конфігурації та керувати мережею.
Однією з головних причин використання VPS для розміщення систем
моніторингу є їхня відносна дешевизна порівняно з хмарними сервісами типу
AWS чи Azure. Базовий VPS із достатніми характеристиками для запуску
систем типу Prometheus, Grafana або Zabbix може коштувати всього кілька
доларів на місяць. При цьому відсутня оплата за обсяг переданих даних у
межах встановлених лімітів, і витрати є прогнозованими [6].
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 19
а
Ще однією перевагою VPS є контроль над середовищем. Оскільки
власник має повний доступ до серверної частини, він може тонко
налаштовувати систему моніторингу під специфіку свого кластера:
оптимізувати частоту збору даних, адаптувати системи нотифікацій,
налаштовувати політики безпеки відповідно до власних вимог.
Водночас використання VPS має і певні обмеження: обмеження
ресурсів, залежність від провайдера VPS у питаннях доступності сервера,
потреба у самостійному адмініструванні та забезпеченні безпеки. Проте для
середніх та невеликих систем моніторингу VPS залишається популярним
вибором завдяки своїй доступності, гнучкості і відсутності прихованих
витрат.
Віртуальні приватні сервери (VPS) є базовою складовою
інфраструктури багатьох сучасних інформаційних систем. Вони
використовуються для розміщення вебсервісів, баз даних, систем
моніторингу та інших критично важливих компонентів. Незважаючи на
ізольоване середовище та виділені ресурси, VPS вимагають постійного
моніторингу для забезпечення стабільності їх роботи та підтримання високої
якості наданих послуг.
Моніторинг VPS дає змогу відстежувати основні параметри
продуктивності, такі як завантаження центрального процесора, використання
оперативної памʼяті, заповнення дискового простору та інтенсивність
мережевого трафіку. Регулярне збирання та аналіз цих даних дозволяє
виявляти ситуації, що можуть призвести до перевантаження системи або
зниження її швидкодії. Крім того, контроль доступності сервісів дозволяє
своєчасно реагувати на можливі відмови в роботі вебсерверів, баз даних чи
інших додатків, що допомагає уникнути тривалих простоїв.
Окрему увагу слід приділяти питанням безпеки. Моніторинг незвичних
активностей, підозрілих підключень або нетипових змін у навантаженні на
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 20
а
сервер є важливим заходом для раннього виявлення потенційних загроз,
таких як спроби несанкціонованого доступу чи шкідливої активності.
Таким чином, систематичний моніторинг віртуальних приватних
серверів є необхідною умовою підтримання стабільності роботи
інформаційних систем, попередження можливих збоїв і забезпечення
належного рівня продуктивності, доступності та безпеки.
1.3 Висновки до розділу
У цьому розділі було обґрунтовано важливість впровадження систем
моніторингу та логування серверів для підтримки стабільної роботи
обчислювальних середовищ. Розглянуто можливості моніторингу на базі
хмарних сервісів AWS та Azure, а також популярні інструменти, такі як
Kibana, Grafana, Prometheus і Datadog. Проаналізовано недоліки
використання готових рішень, зокрема їх високу вартість у довгостроковій
перспективі.
Встановлено, що через фінансові обмеження багато систем працюють
на звичайних VPS, що потребує ретельної організації моніторингу для
забезпечення безпеки, доступності та ефективного використання ресурсів.
Узагальнення проведеного аналізу визначає основні вимоги до майбутньої
системи моніторингу – надійність, доступність та економічна ефективність.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 21
а
РОЗДІЛ 2 ВИБІР ТЕХНОЛОГІЇ ТА ІНСТРУМЕНТАЛЬНИХ ЗАСОБІВ
РОЗРОБКИ СИСТЕМИ
2.1 Огляд існуючих технологій
Моніторинг у сфері інформаційних технологій – це процес
безперервного спостереження за станом систем, додатків, мереж, серверів та
інших елементів інфраструктури з метою виявлення проблем, оптимізації
продуктивності та забезпечення безперебійної роботи. Моніторинг дозволяє
вчасно реагувати на несправності, запобігати серйозним збоям і
підтримувати високий рівень доступності сервісів.
Одним із важливих видів є моніторинг програмного забезпечення. Він
полягає у відстеженні стану роботи додатків, їх продуктивності, обробки
запитів, використання ресурсів та помилок у виконанні. Такий моніторинг
допомагає розробникам і адміністраторам виявляти вузькі місця у роботі
застосунків, оцінювати їхню стабільність і якість обслуговування
користувачів. Наприклад, моніторинг вебдодатку може включати збір
інформації про час відповіді на запити або кількість оброблених транзакцій
за певний період.
Моніторинг серверів фокусується на відстеженні ключових показників
фізичних або віртуальних серверів. До таких показників належать
навантаження на процесор, обсяг використаної оперативної пам’яті,
доступний дисковий простір та інтенсивність мережевого трафіку. Завдяки
цьому можна виявити потенційні проблеми на ранніх етапах, наприклад,
перевантаження сервера або нестачу пам’яті для коректної роботи процесів.
Типовий приклад — встановлення системи Prometheus для збору метрик
серверів і їх візуалізації через Grafana.
Моніторинг доступності сервісів передбачає регулярну перевірку того,
чи доступні певні сервіси або сайти для користувачів. Йдеться про
надсилання тестових запитів до вебсерверів, баз даних, API або будь-яких
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 22
а
інших компонентів інфраструктури. Основна мета такого моніторингу —
оперативне виявлення відмов або уповільнення сервісу. Наприклад, система
може кожні п’ять хвилин перевіряти, чи повертає вебсайт код відповіді 200
(успішний доступ), і у разі помилки одразу надсилати сповіщення
адміністратору.
Окрему категорію становить моніторинг мережі. Він дозволяє
контролювати якість з’єднання між різними частинами інфраструктури,
пропускну здатність каналів зв’язку, затримки у передачі даних та можливі
втрати пакетів. Мережевий моніторинг дає змогу швидко ідентифікувати
місця перевантаження каналів або наявність проблем у мережевому
обладнанні. Прикладом такого підходу є використання системи Zabbix або
Datadog для контролю стану маршрутизаторів і комутаторів у реальному
часі.
Моніторинг баз даних є ще одним критично важливим напрямком. Він
включає відстеження часу відгуку запитів, рівня використання індексів,
кількості активних з’єднань, споживання ресурсів і потенційних блокувань.
Моніторинг дозволяє підтримувати оптимальну продуктивність баз даних,
що особливо важливо для високонавантажених систем [7]. Наприклад,
використання спеціальних модулів для моніторингу PostgreSQL або MySQL
допомагає попередити ситуації, коли база даних перестає обробляти запити
вчасно.
Існують також спеціалізовані види моніторингу, такі як моніторинг
безпеки (відстеження несанкціонованого доступу або аномальної поведінки
користувачів) і моніторинг контейнерних середовищ (наприклад, Kubernetes),
що дозволяє контролювати стан кластерів, подів і сервісів у хмарній
інфраструктурі.
Таким чином, моніторинг охоплює широкий спектр процесів і
технологій, кожен із яких має свою специфіку, але всі вони спрямовані на
забезпечення стабільності, безпеки та високої продуктивності ІТ-систем.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 23
а
Комплексний підхід до моніторингу дозволяє побудувати надійну
обчислювальну інфраструктуру, здатну адаптуватися до змін та швидко
реагувати на потенційні загрози.
Більшість серверних систем сьогодні працюють на Linux, оскільки ця
операційна система володіє рядом переваг, які роблять її оптимальним
вибором для розгортання серверних інфраструктур. Linux відома своєю
стабільністю та надійністю, що дозволяє безперебійно працювати в умовах
високих навантажень, що є критично важливим для серверних рішень.
Завдяки своїй здатності функціонувати без перезавантаження протягом
тривалого часу, Linux є ідеальним вибором для кластерних систем, де
безперервна робота та мінімальні збої мають особливу вагу.
Ще однією важливою перевагою Linux є її високий рівень безпеки.
Завдяки відкритому коду, фахівці з усього світу можуть перевіряти та
вдосконалювати систему, швидко реагуючи на потенційні вразливості.
Вбудовані засоби для налаштування прав доступу, фаєрволів та шифрування
даних дозволяють забезпечити високий рівень захисту для серверів і даних,
що обробляються в кластерних середовищах.
Linux також дає можливість гнучко налаштовувати систему під
конкретні потреби завдяки відкритому коду, що є важливим аспектом при
розробці серверних рішень для великих кластерів. Вибір дистрибутивів Linux
дозволяє адаптувати операційну систему для різних задач, таких як обробка
великих даних або масштабовані веб-сервіси. Це робить Linux ідеальною
платформою для серверних інфраструктур, де необхідна висока ефективність
та адаптація до різних робочих середовищ.
Крім того, Linux є стандартом для багатьох сучасних дата-центрів і
хмарних інфраструктур, таких як AmazonWebServices (AWS), MicrosoftAzure
та GoogleCloud [8]. Оскільки більшість серверних систем, що працюють в
цих інфраструктурах, використовують саме Linux, програмне забезпечення
для моніторингу та управління такими системами повинно бути сумісним з
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 24
а
цією операційною системою для забезпечення максимального рівня
ефективності та інтеграції.
Системи моніторингу та управління, які використовуються для Linux-
серверів, мають доступ до широкого спектру інструментів і утиліт, таких як
Prometheus, Grafana, Nagios, Zabbix та інших, які спеціально розроблені для
роботи з цією платформою. Ці інструменти дозволяють ефективно
моніторити та управляти великими кластерами серверів, що підвищує
ефективність управлінських процесів і дозволяє швидко реагувати на
потенційні проблеми.
Окрім того, зростаюча популярність контейнеризації, наприклад через
Docker і Kubernetes, також зміцнює позиції Linux як основної платформи для
серверних рішень. Технології контейнеризації дозволяють масштабувати та
автоматизувати роботу великих обчислювальних середовищ, а Linux, як
основна платформа для цих технологій, забезпечує їх оптимальну роботу та
інтеграцію.
Завдяки відкритому коду та низьким витратам на ліцензії, Linux є
економічно ефективною платформою для великих кластерів серверів. Вона
дозволяє масштабувати інфраструктуру без значних фінансових витрат, що є
важливою характеристикою для розподілених обчислювальних середовищ,
які потребують високої продуктивності та масштабованості.
З огляду на всі ці переваги, програмне забезпечення для моніторингу та
управління великими кластерами в розподілених обчислювальних
середовищах має бути орієнтоване на Linux, оскільки це основна платформа,
що забезпечує стабільність, безпеку, гнучкість та економічність для
розгортання серверних рішень.
Розроблене програмне забезпечення повинно бути реалізоване мовою
програмування C++, оскільки ця мова надає розробникам можливість
отримувати безпосередній доступ до ресурсів операційної системи сервера.
На відміну від багатьох високорівневих мов, які працюють через проміжні
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 25
а
шари абстракції, C++ дозволяє працювати максимально близько до
апаратного рівня, що особливо важливо у випадках, коли потрібно
здійснювати моніторинг системних ресурсів, ефективно управляти пам’яттю,
контролювати процеси або взаємодіяти з файловими системами та
мережевими стеком.
Мова C++ має велику кількість інструментів для роботи з системними
викликами, що дозволяє реалізувати такі функції, як збір даних про
навантаження на процесор, обсяг використаної оперативної пам’яті,
моніторинг мережевих з’єднань і стану дисків. Завдяки цим можливостям
програма може отримувати максимально точну і своєчасну інформацію про
стан серверів у кластері, що є основною задачею для системи моніторингу.
Крім доступу до системних ресурсів, C++ забезпечує високу
продуктивність роботи додатка. У серверних середовищах надзвичайно
важливо, щоб програма для моніторингу працювала швидко і споживала
мінімальну кількість ресурсів, не створюючи додаткового навантаження на
систему. C++ дозволяє розробити ефективне, оптимізоване рішення, яке
здатне обробляти великі обсяги даних у режимі реального часу без істотних
затримок.
Ще однією важливою перевагою використання C++ є можливість
гнучкого масштабування та розширення функціональності програмного
забезпечення. Завдяки об’єктно-орієнтованому підходу і великій кількості
доступних бібліотек, C++ дозволяє легко додавати нові можливості в систему
– наприклад, підтримку нових типів серверів, вдосконалені алгоритми
виявлення аномалій чи інтеграцію з зовнішніми інструментами моніторингу
та нотифікацій [8].
У контексті роботи на Linux-серверах C++ також є одним із найбільш
зручних варіантів, оскільки операційна система надає розвинуті інструменти
для компіляції та оптимізації програмного забезпечення, написаного цією
мовою. Велика кількість відкритих бібліотек та системних API дозволяє
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 26
а
інтегрувати рішення на базі C++ безпосередньо в середовище Linux, що ще
більше підвищує ефективність розробки і продуктивність кінцевого
продукту.
Таким чином, вибір C++ для розробки системи моніторингу та
управління великими кластерами є обґрунтованим і необхідним, оскільки ця
мова дозволяє створити високопродуктивне, гнучке, безпечне та глибоко
інтегроване в операційну систему серверне програмне забезпечення.
Серверна частина системи, яка буде отримувати показники стану від
інших систем, може бути реалізована на будь-якій сучасній мові
програмування. Це пояснюється тим, що роль цього сервера полягає у
прийомі, обробці та збереженні даних, а не у безпосередньому доступі до
низькорівневих ресурсів операційної системи. Його основні функції
полягають у забезпеченні стійкої комунікації між агентами моніторингу та
користувацьким інтерфейсом, обробці запитів і відповіді на події, що
дозволяє використовувати ширший спектр технологій для побудови такої
логіки.
Однією з популярних мов для реалізації серверної логіки є Java. Вона
забезпечує високу продуктивність, підтримує багатопоточність і має велику
кількість готових бібліотек для роботи з мережею, базами даних та обробкою
повідомлень. Java часто використовується для побудови високонавантажених
серверних додатків, що є важливою перевагою при роботі з великими
кластерами, де одночасно передаються тисячі метрик від різних серверів.
Ще одним популярним вибором є C#. Ця мова, разом із
платформою .NET, дозволяє швидко створювати надійні серверні застосунки
з високим рівнем безпеки і зручністю розробки. C# добре підходить для
побудови API-серверів і систем обробки подій, що важливо для швидкого
реагування на зміни у стані кластерів і передачі сповіщень на
користувацький інтерфейс.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 27
а
Node.js також є відмінною платформою для створення серверної
частини системи моніторингу. Завдяки своїй подієвій архітектурі і
можливості обробки великої кількості одночасних з’єднань із мінімальним
споживанням ресурсів, Node.js ідеально підходить для систем реального
часу, де важливо швидко отримувати та обробляти оновлення стану серверів.
Крім того, використання JavaScript як основної мови відкриває можливість
легкої інтеграції з фронтендом системи.
Ще однією популярною мовою для реалізації серверної частини є
Python. Python має простий синтаксис і велику кількість бібліотек для
обробки даних, роботи з базами даних, мережевої взаємодії та розробки
REST API [9]. Завдяки фреймворкам на кшталт Django чи Flask, можна
швидко створити гнучкий сервер для обробки вхідних запитів, збору метрик
та інтеграції з іншими частинами системи моніторингу.
Важливо зазначити, що вибір мови для розробки серверної частини
залежить від вимог до продуктивності, масштабованості, складності
розгортання і досвіду команди розробників. У будь-якому випадку, сервер,
який отримує показники з інших систем, має бути здатним ефективно
обробляти великий обсяг даних, бути стійким до збоїв та легко інтегруватися
з іншими компонентами моніторингової інфраструктури незалежно від
вибраної мови програмування.
Для зберігання даних, отриманих від серверів у кластері, можна
використовувати неструктуровану або слабо структуровану модель даних
[22], оскільки показники системного моніторингу зазвичай є різнорідними,
часто змінюють свою структуру і можуть містити різні типи інформації
залежно від сервера, налаштувань або специфіки обладнання. У такому
випадку найбільш придатним варіантом буде використання бази даних
MongoDB [23], яка є документоорієнтованою системою і дозволяє зберігати
дані у форматі BSON (розширений варіант JSON).
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 28
а
MongoDB дає можливість гнучко працювати з різними форматами
даних без необхідності створювати заздалегідь чітко визначену схему, що
дуже зручно в умовах, коли дані про стан серверів можуть містити різний
набір полів: на одному сервері може бути більше мережевих інтерфейсів, на
іншому – додаткові дискові підсистеми або специфічні метрики. Такий підхід
дозволяє швидко адаптувати систему під нові вимоги без значних змін у
структурі бази даних. Також MongoDB добре масштабується горизонтально,
що є важливим для великих кластерних середовищ, де обсяги даних швидко
зростають.
Однак варто зазначити, що окрім MongoDB існують і класичні
реляційні системи управління базами даних, такі як MySQL та PostgreSQL.
Вони орієнтовані на роботу зі строго структурованими даними, де наперед
визначені всі таблиці, поля, типи даних і зв’язки між ними. Такі бази даних
прекрасно підходять для зберігання інформації, яка має чітку і стабільну
структуру — наприклад, облікових записів користувачів, історії сповіщень,
прав доступу, логів авторизації чи системної конфігурації.
Використання MySQL або PostgreSQL доцільне тоді, коли дані мають
стабільний формат, а також коли потрібно забезпечити складні транзакції,
сувору цілісність даних або використовувати складні запити для аналізу
інформації через мову SQL. PostgreSQL, зокрема, має розширені можливості
для роботи з великими обсягами даних, складними індексами, геоданими, а
також підтримує гібридну роботу зі структурованими і
напівструктурованими даними через типи JSONB [10].
Тому для зберігання телеметричних даних, метрик навантаження,
журналів системних подій та інших динамічних показників найбільш
логічним і ефективним буде використання MongoDB. А для зберігання чітко
структурованої інформації, яка вимагає суворого контролю структури та
цілісності, краще обрати MySQL або PostgreSQL, розділивши таким чином
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 29
а
обробку неструктурованих та структурованих даних у системі моніторингу
та управління кластерами.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 30
а
2.2 Обґрунтування вибору
У процесі розробки системи моніторингу та управління великими
кластерами в розподілених обчислювальних середовищах критично
важливим є попереднє визначення набору технологій, що будуть
застосовуватися як на обчислювальних вузлах (для збору та передачі даних
моніторингу), так і на центральному сервері збору та обробки інформації.
Відповідний вибір технологічних засобів визначає ефективність
функціонування системи, її масштабованість, надійність та адаптивність до
змінних умов експлуатації.
Більшість серверних систем, що використовуються у розподілених
обчислювальних середовищах, функціонують на базі операційних систем
сімейства Linux, що обумовлено їх високою стабільністю, гнучкістю
налаштувань, розвиненою підтримкою мережевих сервісів та широкими
можливостями для автоматизації адміністрування.
Для розробки програмного забезпечення, що здійснюватиме збір даних
про стан системи та їх передачу на централізований сервер, доцільно
використовувати мову програмування C++. Ця мова є оптимальним вибором
завдяки високій продуктивності, гнучкості, широкій підтримці в середовищі
Linux, а також здатності забезпечувати низькорівневий доступ до системних
ресурсів, що є критичним для створення ефективних, легковагових та
надійних агентів моніторингу.
Оскільки розробка програмного забезпечення на чистому C++ може
бути трудомістким і тривалим процесом через необхідність ручного
опрацювання багатьох аспектів роботи з мережею, потоками та системними
ресурсами, доцільним є використання відповідного програмного
фреймворку. Вибір фреймворку дозволяє значно спростити розробку,
прискорити створення стабільного програмного забезпечення та підвищити
його підтримуваність.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 31
а
Одним із найкращих варіантів для розробки програмного забезпечення
на C++ у середовищі Linux є використання фреймворку Boost.Asio.
Boost.Asio забезпечує ефективну підтримку асинхронної роботи з
мережевими з'єднаннями, таймерами та операціями вводу/виводу, що є
критично важливим для систем моніторингу в розподілених середовищах.
Крім того, Boost є одним з найбільш авторитетних і стабільних проєктів у
C++ екосистемі, підтримується широкою спільнотою розробників і є
фактичним стандартом для створення високопродуктивних рішень.
Враховуючи ці фактори, саме Boost.Asio слід обрати як основний інструмент
для розробки агентів моніторингу, що забезпечить надійність,
масштабованість та ефективність реалізованого рішення.
Фреймворк Boost.Asio не лише забезпечує зручні механізми для
реалізації асинхронних мережевих з'єднань, але також надає інструменти для
ефективної роботи з системними ресурсами. Використовуючи можливості
Boost.Asio у поєднанні з системними викликами Linux, можна реалізувати
функціонал збору показників навантаження на процесор (CPU),
використання оперативної пам'яті (RAM) та стану дискової підсистеми.
Отримані дані можуть у реальному часі передаватися на централізований
сервер моніторингу через стабільні асинхронні канали зв'язку, що істотно
підвищує надійність і швидкодію системи [11].
Передача даних між основним сервером моніторингу та вузлами, на
яких здійснюється збір інформації, може здійснюватися через захищений
протокол HTTPS. Використання HTTPS забезпечує шифрування переданих
даних, що підвищує загальну безпеку системи. Оскільки в рамках задачі
моніторингу немає потреби у відображенні показників у режимі реального
часу з затримкою в межах однієї секунди, протокол HTTPS є оптимальним
вибором, поєднуючи достатню швидкодію та високий рівень захисту
інформації.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 32
а
Важливим етапом у розробці системи моніторингу є визначення
технологій для центрального сервера, який буде виконувати функції збору,
обробки та зберігання даних моніторингу. Цей сервер відіграватиме ключову
роль у взаємодії з усіма агентами моніторингу, що працюють на серверах
вузлів. Він не лише отримуватиме дані про стан систем (завантаження
процесора, пам'яті, дискової підсистеми та інші метрики), але й
здійснюватиме їх зберігання в базі даних, забезпечуючи адміністратору
можливість доступу до них через зручний інтерфейс.
Вибір відповідних технологічних рішень для такого сервера є критично
важливим для забезпечення ефективності та надійності всієї системи. Це
включає в себе вибір серверної операційної системи, програмного
середовища для обробки запитів та бази даних для зберігання отриманих
даних. Також важливо враховувати вимоги до масштабованості системи,
оскільки з часом може знадобитися обробка значно більших обсягів даних
через розширення інфраструктури або додавання нових серверів
моніторингу. Використання сучасних веб-фреймворків для розробки
інтерфейсів управління та доступу до даних дозволяє створити зручні
інтерфейси для адміністраторів, які отримуватимуть зведену інформацію та
зможуть здійснювати налаштування системи моніторингу в реальному часі.
Крім того, необхідно забезпечити високий рівень доступності сервера,
оскільки його втрата або відключення може призвести до втрати важливої
інформації про стан інфраструктури. Для цього може бути використано
реплікацію даних або використання кластерних рішень для збереження
цілісності та доступності моніторингової інформації навіть у випадку
відмови окремих компонентів системи.
Для реалізації центрального сервера, який буде збирати та обробляти
дані моніторингу, доцільно обрати мову програмування Java. Java є
популярним вибором для розробки серверних рішень завдяки своїй
універсальності, надійності та широким можливостям для створення веб-
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 33
а
сервісів. Однією з основних переваг Java є потужні інструменти для
створення інтерфейсів API, зокрема за допомогою фреймворків, таких як
Spring Boot, що значно спрощує створення RESTful API для доступу до
моніторингових даних. Це дозволяє швидко і ефективно реалізувати
інтеграцію між сервером моніторингу та адміністративними панелями або
іншими системами для збору та аналізу даних.
Крім того, Java має багатий екосистему бібліотек та фреймворків, що
дозволяє забезпечити надійність і масштабованість системи. Завдяки
принципу «write once, run anywhere», додатки на Java можна без проблем
запускати на різних платформах, що є додатковою перевагою для
розподілених обчислювальних середовищ.
Мова програмування Java також надає потужні можливості для роботи
з різними базами даних завдяки використанню технологій ORM (Object-
Relational Mapping), таких як Hibernate або JPA (Java Persistence API). Ці
технології дозволяють зручно інтегрувати об'єктно-орієнтовану модель
додатка з реляційними базами даних, автоматизуючи процеси зберігання та
отримання даних. ORM-бібліотеки спрощують роботу з базами даних,
оскільки дозволяють розробникам працювати з об'єктами в коді замість
написання складних SQL-запитів, що значно підвищує ефективність і знижує
ймовірність помилок.
Крім того, Java підтримує роботу з різними типами баз даних – від
класичних реляційних СУБД (MySQL, PostgreSQL, Oracle) до NoSQL рішень
(MongoDB, Cassandra), що дозволяє вибрати оптимальну базу даних для
конкретних потреб системи [12]. Завдяки цьому Java є гнучким та
масштабованим рішенням для розробки серверів моніторингу, де потрібно
обробляти та зберігати великі обсяги даних.
Дані, отримані з серверів моніторингу, можуть бути у вигляді
неструктурованих даних, таких як журнали, текстові файли або інші
формати, що не підлягають чіткій таблиці. У зв'язку з цим, доцільно
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 34
а
зберігати ці дані в неструктурованій базі даних або в системі, що підтримує
зберігання великих обсягів неструктурованої інформації, наприклад, у
NoSQL базах даних (таких як MongoDB, Cassandra, Elasticsearch).
Неструктуровані бази дозволяють зберігати дані у вигляді документів або
індексованих записів, що дає гнучкість у зберіганні різних типів даних і
забезпечує зручний доступ до них через запити за допомогою фільтрації та
агрегації.
Використання NoSQL баз також дозволяє ефективно масштабувати
систему при великому обсязі вхідних даних, оскільки ці технології
підтримують горизонтальне масштабування та швидке додавання нових
серверів для зберігання даних, що особливо важливо для розподілених
обчислювальних середовищ.
Ідеальним представником неструктурованої бази даних є MongoDB,
яка є документно-орієнтованою базою даних, що дозволяє зберігати дані у
вигляді документів у форматі JSON або BSON. MongoDB забезпечує високу
гнучкість при зберіганні неструктурованих даних, таких як журнали,
метадані або інші формати, що не підлягають строгій таблиці. Ця база даних
дозволяє ефективно обробляти великі обсяги даних завдяки своїй можливості
масштабуватися горизонтально, що особливо важливо для систем
моніторингу в розподілених обчислювальних середовищах.
Крім того, MongoDB підтримує індексацію, агрегацію та складні
запити, що забезпечує швидкий доступ до неструктурованих даних для
аналізу та пошуку, роблячи її ідеальним вибором для зберігання
моніторингової інформації, де дані можуть мати різні формати або змінювати
свою структуру з часом.
Для розробки користувацького інтерфейсу (UI) системи моніторингу
важливо правильно обрати технологію для створення клієнтських додатків,
оскільки від цього залежить зручність взаємодії адміністратора з системою та
швидкість відображення даних. Angular є одним з найкращих варіантів для
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 35
а
таких завдань завдяки своїм потужним можливостям для створення
інтерактивних веб-додатків. Angular пропонує повноцінний фреймворк для
розробки односторінкових додатків (SPA), що дозволяє ефективно обробляти
дані в реальному часі, забезпечувати високу продуктивність при великих
обсягах даних і зручний інтерфейс для користувачів.
Однією з основних переваг Angular є наявність інтегрованої системи
двосторонньої прив'язки даних (two-way data binding), що дозволяє в
реальному часі синхронізувати зміни між інтерфейсом і даними, отриманими
з серверу моніторингу. Крім того, Angular має потужну екосистему бібліотек
і інструментів для розробки, тестування та оптимізації веб-додатків, що
робить його ідеальним вибором для створення ефективних і масштабованих
інтерфейсів моніторингу.
2.3 Висновки до розділу
У результаті аналізу було обрано оптимальні технології для розробки
системи моніторингу та управління великими кластерами. Оскільки
більшість серверних систем працюють на Linux, програмне забезпечення
агентів моніторингу розроблятиметься для цієї ОС мовою C++ із
використанням фреймворку Boost.Asio. Сервер збору даних може бути
реалізований на будь-якій сучасній мові програмування – Java, C#, Node.js
або Python. Для зберігання неструктурованих даних обрано базу даних
MongoDB, а для структурованих даних можуть використовуватися MySQL
або PostgreSQL. Для забезпечення безпеки даних передбачено використання
захищеного протоколу HTTPS і обов’язкову авторизацію користувачів при
доступі до системи.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 36
а
РОЗДІЛ 3 СИСТЕМАМОНІТОРИНГУ ТА УПРАВЛІННЯ
ВЕЛИКИМИ КЛАСТЕРАМИ В РОЗПОДІЛЕНИХ
ОБЧИСЛЮВАЛЬНИХ СЕРЕДОВИЩАХ
3.1 Структура системи
Розроблена система є комплексним рішенням для моніторингу великих
кластерів серверів, що включає кілька ключових модулів: модуль збору
даних, додаток для відправки інформації з серверів кластерів, а також
додаток для перегляду та аналізу даних моніторингу. Система забезпечує
ефективний процес збору, передачі та візуалізації даних, що дозволяє
здійснювати моніторинг стану інфраструктури в реальному часі, сприяючи
підвищенню ефективності та надійності управління серверними
середовищами.
Для реалізації цієї системи була розроблена модульна архітектура, що
дозволяє модулю збору даних отримувати інформацію з усіх серверів
кластеру. Такий підхід забезпечує гнучкість і масштабованість системи,
дозволяючи додавати нові сервери до кластеру без необхідності значних змін
в основній логіці збору та обробки даних. Модуль збору даних взаємодіє з
кожним сервером кластеру, забезпечуючи централізований збір інформації
про стан системи.
Розроблена система включає модуль, який відповідає за отримання та
обробку всіх даних від серверів кластеру. Цей модуль забезпечує
централізований збір інформації, що надходить від кожного сервера,
включаючи показники стану системи, такі як навантаження на процесор,
використання пам'яті, стан дисків та інші критичні параметри. Після збору
даних вони обробляються, фільтруються та агрегуються для забезпечення
точності та коректності інформації. Оброблені дані передаються на дажборд,
де вони відображаються у вигляді графіків, діаграм і таблиць, що дозволяє
адміністраторам та користувачам ефективно аналізувати стан серверної
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 37
а
інфраструктури та оперативно реагувати на будь-які аномалії чи проблеми в
системі.
Цей модуль побудований на базі мови програмування Java, що
дозволяє йому бути високопродуктивним і масштабованим. Завдяки
використанню Java, модуль має можливість легко інтегруватися з різними
технологіями та платформами. Модуль може бути розгорнутий як в
хмарному середовищі, так і на VPS сервісі, що дає змогу забезпечити високу
доступність і гнучкість розміщення. Це дозволяє адаптувати систему до
різних умов експлуатації та забезпечує її ефективну роботу в умовах змінних
навантажень або масштабів інфраструктури.
Модуль отримує запити від серверів, на яких виконується моніторинг
системи, за допомогою HTTPS протоколу. Дані передаються у форматі JSON,
що забезпечує зручність обробки та інтеграції з іншими компонентами
системи. Використання HTTPS гарантує захищену передачу даних між
серверами, а формат JSON дозволяє ефективно обробляти та зберігати
отриману інформацію для подальшого аналізу та відображення на дажборді.
Всі отримані дані зберігаються в базі даних MongoDB у форматі JSON.
Завдяки використанню неструктурованої бази даних, як MongoDB, система
має можливість ефективно зберігати великі обсяги даних у вигляді
документів, що відповідають формату JSON. Це забезпечує гнучкість у
зберіганні та подальшому доступі до даних, а також дозволяє легко
масштабувати систему при зростанні кількості серверів і даних для
моніторингу.
Сервери, на яких має виконуватися моніторинг, повинні встановити
спеціальний модуль програмного забезпечення, розроблений на мові
програмування C++. Цей модуль відповідає за збір даних про стан системи та
передачу цієї інформації на основний сервер для подальшого аналізу і
відображення. Використання C++ досягло високої продуктивності та
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 38
а
ефективності при обробці даних на сервері, що критично важливо для
моніторингу великих кластерів серверів.
Розроблена система надаватиме можливість всім охочим користувачам
скачати клієнтський додаток, що відповідає за моніторинг серверів. Однак
серверний додаток, який здійснює отримання та обробку інформації від
серверів, не буде доступним для загального завантаження. Це додаток, що
відповідає за збір та аналіз даних, буде доступний лише розробникам
системи, які мають ексклюзивні права на його використання. Такий підхід
гарантує контроль над сервісами, що здійснюють обробку даних, і забезпечує
безпеку та стабільність системи.
Завдяки використанню C++ у розробці додатка, забезпечується прямий
доступ до навантаження системи, таких як процесор, пам'ять, дискові
ресурси тощо. Це дозволяє отримувати необхідну інформацію без потреби у
використанні додаткових утиліт або сторонніх програм. Мова C++
забезпечує високий рівень інтеграції з операційною системою, що дозволяє
отримувати дані безпосередньо з ядра системи, забезпечуючи високу
точність і ефективність моніторингу.
Клієнтський додаток з'єднується з сервером через HTTPS протокол, що
забезпечує захищену передачу даних між клієнтом і сервером. При цьому
додаткової авторизації не використовується, оскільки доступ до сервера
здійснюється на основі статичної IP-адреси сервера. Це є умовою
використання додатків, оскільки лише сервери з дозволеною статичною
адресою можуть підключатися до основного сервера для передачі
моніторингових даних.
Адміністратор сервера має можливість вказати, які саме дані сервера
надсилати до серверу для обробки моніторингової інформації,
використовуючи конфігураційні файли додатка. Ці файли дозволяють
налаштувати, які параметри системи, такі як навантаження на процесор,
використання пам'яті, стан дискових пристроїв та інші показники, що будуть
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 39
а
передаватися на сервер для подальшого аналізу. Такий підхід дає змогу
гнучко налаштовувати моніторинг відповідно до потреб конкретного сервера
та оптимізувати обсяг даних, щопередаються.
Адміністратор сервера отримує інформацію про моніторинг через
вебсайт, який працює в тісній інтеграції з сервером моніторингу. Цей вебсайт
надає інтерфейс для перегляду даних у реальному часі, де адміністратор
може аналізувати різні показники системи, такі як навантаження на
процесор, використання пам'яті, стан дискових пристроїв та інші критичні
параметри. Зв'язок між вебсайтом та сервером моніторингу забезпечує
надійну передачу даних і дає змогу здійснювати оперативний моніторинг та
управління серверною інфраструктурою.
Під реальним часом мається на увазі інформація, отримана з серверів за
останню 1 секунду або більше. Отримувати дані з частотою меншою за одну
секунду не є доцільним, оскільки це створювало б непотрібне навантаження
на систему та мережу, а також значно ускладнило б обробку даних. Таке
значення інтервалу забезпечує баланс між точністю моніторингу та
ефективністю системи, дозволяючи отримувати актуальну інформацію без
перевантаження ресурсів [30,31].
Дажборд системи надає можливість додавати сервери безпосередньо
через інтерфейс користувача, що робить систему динамічною. Це означає, що
немає необхідності додавати кожен сервер окремо через адміністратора.
Користувач може швидко і зручно додавати нові сервери до системи,
забезпечуючи гнучкість та масштабованість у процесі моніторингу, що
значно спрощує управління інфраструктурою і підвищує ефективність
роботи системи.
Сервер отримання даних моніторингу може бути розгорнутий як в
хмарному середовищі [29], так і на VPS системі. Така гнучкість дозволяє
адаптувати систему до різних умов експлуатації та масштабів
інфраструктури, забезпечуючи високу доступність і надійність незалежно від
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 40
а
вибору платформи для розміщення сервера. Це дає змогу обирати
оптимальне середовище в залежності від потреб бізнесу чи організації, а
також від можливостей для масштабування систем.Структура розробленою
системизображена на рисунку 3.1
Сервер 1 Сервер 2 Сервер 3 Сервер N
HTT
HTT HTT Ps
Ps Ps HTTPs
Модуль збору даних
моніторингу БД
Серверне середовище
Дажборд адміністратора
Рисунок 3.1 – Структура розробленої системи
Розроблена система побудована таким чином, що вона може бути легко
перенесена на serverless платформи, що дозволяє значно зменшити витрати
на обслуговування. Використання serverless архітектури усуває потребу в
управлінні фізичними або віртуальними серверами, оскільки ресурси
автоматично масштабуються відповідно до навантаження. Це забезпечує
високу ефективність та гнучкість, а також дозволяє знижувати витрати на
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 41
а
інфраструктуру, так як оплата здійснюється тільки за фактичне використання
ресурсів.
3.2 Опис функцій системи
Основною функцією системи є моніторинг серверів та їх ресурсів,
таких як процесор, пам'ять, дискові пристрої та інші критичні параметри.
Система забезпечує збір та обробку даних в реальному часі, що дозволяє
адміністраторам ефективно відстежувати стан інфраструктури, виявляти
потенційні проблеми та вчасно реагувати на зміни в системі.
Під моніторингом мається на увазі перегляд поточного навантаження
систем, які були додані до платформи. Це включає відстеження параметрів,
таких як використання процесора, пам'яті, дискових ресурсів та інших
показників стану серверів, що дозволяє адміністраторам здійснювати
контроль за ефективністю та стабільністю роботи інфраструктури в
реальному часі.
Моніторинг поточного навантаження систем є надзвичайно важливим
для підтримки стабільної та ефективної роботи інфраструктури. Без
постійного відстеження параметрів, таких як використання процесора,
пам'яті, дискових ресурсів та інших важливих показників, можна не помітити
перевантаження серверів або появу несправностей, які можуть призвести до
збоїв чи зниження продуктивності. Регулярний моніторинг дозволяє
адміністраторам своєчасно виявляти аномалії, аналізувати тенденції
навантаження та вжити необхідних заходів для оптимізації роботи системи.
Завдяки моніторингу можна виявити і усунути потенційні проблеми ще
до того, як вони спричинять серйозні технічні проблеми або простої, що є
критично важливим для підтримки високої доступності та безпеки сервісів.
Крім того, це дозволяє більш ефективно розподіляти ресурси, уникати їх
перевантаження, а також забезпечити максимальну продуктивність і
економічність. У результаті, моніторинг не тільки підвищує надійність і
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 42
а
стабільність роботи інфраструктури, але й дозволяє знизити операційні
витрати, що робить систему більш ефективною в довгостроковій перспективі.
Користувачами системи можуть бути як власники простих вебсайтів,
так і професійні хостинг-провайдери (хостмастери). Власники вебсайтів
використовуватимуть систему для базового моніторингу стану своїх серверів
та забезпечення стабільної роботи ресурсів. Натомість хостинг-провайдери
зможуть використовувати систему для комплексного моніторингу великої
кількості серверів і клієнтських систем, що дозволяє їм оперативно виявляти
потенційні проблеми та оптимізувати роботу інфраструктури на більшому
масштабі.
Перед початком роботи в системі користувач повинен пройти
авторизацію. Для цього достатньо скористатися Google або Facebook
логіном. Ця функція дозволяє або авторизувати вже існуючого користувача,
або створити новий обліковий запис, якщо користувач ще не зареєстрований
у системі. Такий підхід спрощує процес входу, забезпечуючи зручний та
швидкий доступ до функцій моніторингу без необхідності запам'ятовувати
додаткові облікові дані.Екран входу в систему зображено на рисунку 3.2.
Рисунок 3.2 – Екран входу в систему
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 43
а
Для того, щоб скористатися функціями системи, користувач має обрати
та оплатити підписку, яка надасть йому доступ до розширених можливостей,
включаючи можливість додавати сервери до списку серверів для
моніторингу. Після активації підписки користувач отримує можливість
налаштувати систему моніторингу для своїх серверів, що дає змогу
ефективно відстежувати стан інфраструктури та управляти ресурсами.
Система підписок у розробленій платформі реалізована через
платіжний сервіс LiqPay. Це дозволяє забезпечити безпечний та зручний
процес оплати для користувачів, а також автоматизувати активацію підписки
після успішного проведення транзакції. Завдяки інтеграції з LiqPay
користувачі можуть швидко оформити підписку та отримати доступ до всіх
функцій системи без зайвих затримок.
Наступним кроком для користувача після активації підписки є
додавання серверу до системи моніторингу. Для цього необхідно виконати
декілька простих дій. Передусім потрібно вказати IP-адресу серверу, з якого
надходитиме інформація про стан системи. Цей етап є обов'язковим для
коректного встановлення з'єднання між сервером моніторингу та
платформою збору даних, а також для забезпечення безпеки комунікації між
ними.
Після додавання IP-адреси, користувач має встановити спеціальний
додаток на сервер, який відповідатиме за збір інформації про стан системи та
передачу цих даних на платформу моніторингу. Додаток працюватиме у
фоновому режимі, автоматично зчитуючи ключові показники навантаження
сервера та надсилаючи їх через захищене з'єднання [26, 27]. Таким чином,
процес моніторингу стає безперервним і не потребує додаткового втручання
користувача після первинного налаштування.
Після виконання всіх необхідних кроків – додавання IP-адреси,
встановлення додатку та налаштування з'єднання – користувач зможе
переглядати інформацію про сервер у системі моніторингу. На
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 44
а
інтерактивному інтерфейсі платформи будуть відображатися метрики
сервера, такі як завантаження процесора, обсяг використаної оперативної
пам'яті, стан дискових ресурсів та інші важливі показники, що дозволяє
оперативно контролювати стан інфраструктури.Головна сторінка дажборду
зображено на рисунку 3.3.
Рисунок 3.3 – Головна сторінка дажборду
На додаток до базового моніторингу, користувач має можливість
налаштувати систему сповіщень (alerts) для реагування на специфічні стани
серверної інфраструктури. Це дозволяє отримувати повідомлення у випадку
виникнення критичних або нестабільних ситуацій, що потребують негайної
уваги.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 45
а
Наприклад, користувач може створити сповіщення у випадку:
- перевищення навантаження на процесор понад 90% протягом певного
часу;
- використання оперативної пам’яті більше 95%;
- заповнення дискового простору на понад 90%;
- втрати з’єднання з сервером або тривалої відсутності даних.
Завдяки гнучкому механізму налаштування alert-ів система дозволяє
користувачеві оперативно виявляти і реагувати на критичні зміни в роботі
серверів, що значно підвищує рівень надійності та стабільності всієї
інфраструктури.
3.3 Технічні вимоги для роботи з системою
При роботі з системою необхідно чітке розуміння того, як користувачі
можуть її використовувати. Це включає врахування сумісності з їх
пристроями та програмним забезпеченням, розуміння вимог до інтерфейсу та
навігації, а також забезпечення наявності необхідної підтримки для
безперешкодного використання системи. Необхідно також врахувати вимоги
до безпеки та конфіденційності даних, що дозволяє користувачам
забезпечити впевненість у захисті їх інформації.
Розроблена система, призначена для використання тільки в
операційних системах Linux, потім вона була оптимізована і налаштована
саме для цього середовища. Усі її компоненти та залежність були
протестовані та працюють найкраще в умовах Linux, що забезпечує
стабільність та ефективність роботи. Інші операційні системи, такі як
Windows чи macOS, не підтримуються, і спроби запустити системи на них
можуть призвести до несправностей або непередбачуваних помилок.
Рекомендується використовувати актуальні версії дистрибутивів Linux, щоб
забезпечити коректну роботу всіх функцій системи.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 46
а
Наразі система не підтримує сервери Windows. Проте, після програми,
написаної на C++, у майбутньому є можливість адаптувати її для запуску на
серверах Windows. Це вимагає додаткової роботи з налаштуваннями
середовища та врахуванням конкретних особливостей Windows, але, як
правило, це може бути реалізовано для забезпечення більш широкої
сумісності в майбутніх версіях.
Для початку роботи системи у користувача повинна бути можливість
підключитися до сервера через SSH. Це необхідно для того, щоб здійснити
процес встановлення додатка та забезпечити коректну настройку системи.
Підключення через SSH дозволяє захистити команду встановлення та
налаштування на сервері, що є етапом для початку роботи програми.
З’єднання з сервером через SSH дозволяє встановлення додатку через
консоль сервера. Це забезпечує доступ до командного рядка на сервері, де
можна виконувати всі необхідні команди для завантаження, налаштування та
інсталяції програмного забезпечення. Такий підхід дозволяє ефективно
керувати процесом установки, використовуючи ресурси та інструменти
сервера без потреби в додаткових графічних інтерфейсах.
Наразі відсутня можливість використання даного додатка на спільних
хостингах, де одночасно працює багато веб-сайтів. Це може бути пов'язано з
обмеженнями ресурсів, які доступні на таких хостингах, а також з
конфліктами між різними веб-сайтами, що працюють на одному сервері. Для
оптимальної роботи рекомендується використовувати виділені сервери або
хмарні платформи з більшою гнучкістю та ресурсами.
У користувача сервера є можливість запускати даний додаток у Docker
контейнері, якщо моніторинг виконується на ECS кластерах. Це дозволяє
ефективно ізолювати додаток та забезпечити його масштабованість, при
цьому зберігаючи контроль над ресурсами та конфігурацією контейнера.
Також важливо звернути увагу на необхідність налаштування
фаєрволів, оскільки вони можуть блокувати трафік між сервером та
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 47
а
розробленим сервісом. Для забезпечення коректної роботи додатка потрібно
налаштувати відповідні правила доступу, щоб дозволити трафік на необхідні
порти та забезпечити безпечну комунікацію між компонентами системи.
Не варто нехтувати правилами безпеки та відкривати доступ до всіх
портів. Для забезпечення захищеності системи необхідно дозволяти доступ
лише до тих портів, які використовує програмний додаток. Це допоможе
зменшити ризики потенційних атак та забезпечити належний рівень безпеки,
обмежуючи несанкціонований доступ до ресурсів сервера.
Щоб забезпечити максимальну ефективність роботи з веб-додатком,
необхідно дотримуватись технічної вимоги щодо використання актуальних
версій браузерів. Оновлені браузери забезпечують не лише високу сумісність
з сучасними веб-технологіями, такими як HTML5, CSS3, JavaScript, але й
покращену підтримку безпеки. Використання старих версій браузерів може
призводити до непередбачуваних помилок при взаємодії з веб-додатками, а
також збільшувати ризик вразливостей, які можуть бути використані для
атак.
Актуальні браузери, такі як останні версії Chrome, Firefox, Safari чи
Edge, включають виправлення багів, нові можливості для оптимізації роботи
додатків та кращу підтримку нових стандартів інтерфейсів. Це дозволяє
вебмастеру виконувати моніторинг у реальному часі з більшою точністю та
стабільністю, що сприяє безперебійній роботі системи та підвищеній
ефективності. У разі використання застарілих браузерів можуть виникати
труднощі з відображенням інтерфейсу, а також потенційні проблеми з
безпекою, оскільки старі браузери часто не підтримують останні патчі та
оновлення для захисту від зловмисників.
Регулярне оновлення браузера є важливим кроком для забезпечення
безпечного та продуктивного моніторингу, що дає змогу вебмастерам
працювати з додатком без обмежень і з найкращими результатами.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 48
а
3.4 Оцінка ефективності
Важливо провести оцінку ефективності системи після її розробки,
оскільки, це дозволяє визначити, наскільки добре система відповідає
поставленим вимогам та цілям. Оцінка ефективності дає змогу виявити
слабкі місця, з'ясувати, які компоненти працюють не оптимально, і виявити
можливості для покращення. Це критично важливо для забезпечення
стабільної та безперебійної роботи системи в реальних умовах експлуатації.
Проводити оцінку ефективності після розробки системи необхідно,
щоб зібрати зворотний зв'язок щодо її функціонування та вчасно виявити
можливі проблеми, перш ніж система буде запущена в повноцінну
експлуатацію. Це дозволить мінімізувати ризики та забезпечити високу
якість кінцевого продукту.
Розроблена система відповідає всім поставленим задачам. Вона
ефективно збирає дані з серверів, зберігає їх у базі даних та надає
адміністратору можливість переглядати ці дані через зручний інтерфейс.
Система забезпечує надійне зберігання інформації та її доступність для
подальшого аналізу, що дозволяє адміністратору здійснювати моніторинг у
реальному часі та отримувати необхідні звіти для прийняття обґрунтованих
рішень.
Розроблена система дозволяє адміністраторам ефективно управляти
своїми серверами у разі виникнення небезпечних ситуацій, таких як високе
навантаження, закінчення ресурсів або інші критичні події. Для цього в
системі реалізована система нотифікацій, яка миттєво сповіщає
адміністраторів про будь-які аномалії або порушення нормальної роботи
серверів. Це дає змогу оперативно реагувати на проблеми, вжити необхідних
заходів для їх усунення та забезпечити стабільність та безпеку всієї
інфраструктури.
Розроблена система має базовий набір функцій, який можна порівняти
з аналогічним у відомих системах моніторингу, таких як Grafana. Вона
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 49
а
забезпечує збір та візуалізацію даних, дозволяє налаштовувати інтерфейси
для моніторингу в реальному часі, а також надає можливість встановлювати
оповіщення та нотифікації для оперативного реагування на критичні ситуації.
Завдяки цьому, система забезпечує ефективний моніторинг і керування
серверами, аналогічно провідним інструментам на ринку.
Звичайно, дана система не може повноцінно конкурувати з такими
відомими інструментами, як Grafana, оскільки її функціональність поки що
обмежена базовим набором можливостей. Однак, це також визначає її значно
нижчу вартість використання порівняно з аналогами. Ціна буде залишатися
значно меншою до того моменту, поки функціональність системи не досягне
рівня більш розвинутих рішень, таких як Grafana, з усіма їх перевагами та
можливостями для масштабування та налаштувань.
Якщо порівнювати дану систему з аналогами, можна відзначити, що
вона має значно простіший вхід. Встановлення та налаштування системи
відбувається в три кліки, що робить її доступною навіть для користувачів без
глибоких технічних знань. Це значно спрощує процес інтеграції та
використання, порівняно з більш складними рішеннями, які вимагають
значних зусиль на налаштування та конфігурацію.
Система не має навантаженої візуальної частини, що робить її
інтерфейс простим і зручним для користувача. Вона фокусується на показі
тільки основних метрик, що дозволяє швидко оцінити ситуацію без зайвих
відволікань. Такий підхід дозволяє зосередитися на ключових показниках
ефективності та стану системи, забезпечуючи зручний доступ до необхідної
інформації без перевантаження користувача зайвими деталями.
Система також має вбудовану систему нотифікацій, яка дозволяє
користувачу отримувати сповіщення про спрацювання alert. Це дає змогу
оперативно реагувати на критичні ситуації та зміни в системі, забезпечуючи
миттєве інформування про важливі події, такі як високі навантаження чи інші
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 50
а
аномалії. Завдяки цьому користувач може швидко вжити необхідних заходів
для виправлення ситуації або попередження потенційних проблем.
Враховуючи всі ці фактори, система є конкурентною, хоча й менш
функціональною порівняно з аналогами. Її простота в налаштуванні, низька
вартість та зручний інтерфейс роблять її привабливим варіантом для
користувачів, які шукають ефективне рішення з базовими функціями для
моніторингу без складнощів у впровадженні. Хоча функціональність наразі
не досягає рівня більш потужних систем, таких як Grafana, вона все ж
забезпечує необхідні можливості для виконання основних завдань, що робить
її хорошим вибором для менш складних сценаріїв.
3.5 Висновки до розділу
У цьому розділі було визначено загальну структуру системи
моніторингу та управління, описано основні її функції, технічні вимоги та
проведено оцінку ефективності розробленого рішення. Система забезпечує
збір, обробку та збереження інформації про стан серверів, надає можливість
оперативного доступу через зручний інтерфейс та дозволяє швидко
реагувати на відхилення в роботі кластерів. Враховуючи технічні
характеристики та результати оцінки ефективності, запропоноване рішення є
надійним, масштабованим та придатним для використання в реальних
розподілених обчислювальних середовищах.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 51
а
РОЗДІЛ 4 ЗАХИСТ СИСТЕМИМОНІТОРИНГУ ТА УПРАВЛІННЯ
ВЕЛИКИМИ КЛАСТЕРАМИ В РОЗПОДІЛЕНИХ
ОБЧИСЛЮВАЛЬНИХ СЕРЕДОВИЩАХ
4.1Огляд існуючих рішень
Захист інформації є одним із ключових аспектів у розробці будь-якої
сучасної інформаційної системи, особливо якщо йдеться про серверні
середовища та розподілені обчислювальні системи. У таких системах
зберігаються і передаються дані, які можуть мати критичне значення для
стабільності бізнес-процесів, безпеки інфраструктури і навіть відповідати за
захист персональних або комерційно чутливих відомостей.
По-перше, інформація є цінним ресурсом. У багатьох організаціях саме
дані складають основу роботи: це конфігурації серверів, облікові записи
користувачів, лог-файли, метрики навантаження, історія змін у системах
тощо. Втрата або компрометація такої інформації може призвести до
серйозних фінансових збитків, зупинки діяльності підприємства або
порушення вимог законодавства щодо зберігання і обробки даних.
По-друге, відкриття доступу до системної інформації стороннім особам
може дати зловмисникам можливість здійснювати атаки на інфраструктуру.
Дані про навантаження серверів, відкриті порти, структуру мережевих
з’єднань або версії встановленого програмного забезпечення можуть бути
використані для виявлення вразливостей та подальшого несанкціонованого
доступу до систем. Таким чином, навіть інформація, яка на перший погляд
здається несуттєвою, може стати інструментом для злому.
По-третє, захист інформації сприяє підтримці довіри користувачів та
партнерів. Компанії, що працюють із клієнтськими або партнёрськими
даними, повинні гарантувати, що інформація знаходиться у безпеці.
Порушення безпеки може серйозно підірвати репутацію організації,
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 52
а
призвести до втрати клієнтів і вимагати великих витрат на юридичне
врегулювання ситуацій або компенсації постраждалим сторонам.
Також важливо враховувати відповідність нормам і стандартам
інформаційної безпеки. У багатьох країнах діють закони, які вимагають
захисту персональних даних (наприклад, GDPR у Європейському Союзі)
[13]. Недотримання цих вимог може призвести до штрафів, заборон на
ведення діяльності або судових позовів.
Захист інформації включає в себе різноманітні заходи: аутентифікацію
і авторизацію користувачів, шифрування переданих і збережених даних,
контроль доступу до системних ресурсів, моніторинг підозрілої активності та
регулярне оновлення програмного забезпечення для закриття вразливостей.
Усі ці заходи допомагають мінімізувати ризики та забезпечити безперебійну і
безпечну роботу системи у довгостроковій перспективі.
Таким чином, захист інформації є не просто технічною вимогою, а
критично важливим фактором, який впливає на стійкість, ефективність і
репутацію всієї системи моніторингу та управління великими кластерами в
розподілених обчислювальних середовищах.
Інформація про стан є одним із найцінніших типів даних у контексті
адміністрування серверів, кластерів і розподілених обчислювальних
середовищ. Її захист має критичне значення з кількох причин.
Дані про стан системи можуть містити чутливу інформацію про
внутрішню інфраструктуру. Це відомості про IP-адреси серверів, відкриті
порти, рівень навантаження, використання ресурсів, версії встановленого
програмного забезпечення, специфіку налаштування безпеки. Якщо така
інформація потрапить до рук зловмисників, вона може бути використана для
планування і реалізації атак. Наприклад, знання про перевантажені сервери
або вразливі служби дозволяє зловмисникам ефективніше обирати вектори
проникнення.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 53
а
Системна інформація допомагає виявити слабкі місця в інфраструктурі.
Метрики про продуктивність, повідомлення про збої чи проблеми можуть
підказати стороннім особам, які частини системи працюють нестабільно або
погано захищені. Це значно полегшує проведення атак типу “відмова в
обслуговуванні” (DoS), спроби несанкціонованого доступу чи інших
деструктивних дій [14].
Витік інформації про стан системи може також негативно вплинути на
репутацію організації. Якщо організація обробляє дані клієнтів або працює в
сферах, де важливі високі стандарти безпеки (наприклад, фінанси, охорона
здоров’я, державні структури), втрата навіть технічних даних може
розглядатися як серйозне порушення. Це може призвести до втрати довіри
клієнтів, партнерів і серйозних фінансових наслідків.
Інформація про стан системи може бути використана для побудови
карти мережевої інфраструктури організації. Такі знання дозволяють
зловмисникам ідентифікувати критичні точки доступу та планувати атаки
глибше всередину мережі, оминаючи захисні механізми.
В умовах розподілених обчислювальних середовищ дані про стан
систем передаються мережею. Якщо передача не захищена (немає
шифрування чи перевірки автентичності даних), зловмисники можуть
перехоплювати інформацію, змінювати її або підробляти, що може
спричинити серйозні збої в роботі системи, неправильне реагування
адміністраторів і втрату контролю над інфраструктурою.
Захист інформації є обов’язковою умовою для побудови безпечної,
стабільної та надійної інфраструктури. Він забезпечує збереження технічної
та комерційної таємниці, мінімізує ризики внутрішніх і зовнішніх загроз,
підтримує цілісність моніторингових даних та сприяє захисту репутації
організації.
При передачі даних між різними системами, особливо в рамках
великих кластерів або розподілених обчислювальних середовищ,
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 54
а
забезпечення безпеки інформації має надзвичайно важливе значення.
Незахищені канали зв’язку можуть бути використані зловмисниками для
перехоплення, модифікації або підробки даних, що передаються, що може
призвести до серйозних наслідків – від втрати даних до повного контролю
над системою.
Основним стандартом захисту даних при передачі через мережу є
використання протоколу HTTPS. На відміну від HTTP, протокол HTTPS
використовує шифрування за допомогою SSL/TLS (Secure Sockets Layer /
Transport Layer Security), що гарантує кілька ключових аспектів безпеки:
конфіденційність даних (дані передаються у зашифрованому вигляді і не
можуть бути прочитані сторонніми особами), цілісність даних (захист від
зміни інформації під час передачі) та автентичність (перевірка справжності
сервера, з яким встановлюється з’єднання) [15].
Використання HTTPSдозволяє істотно знизити ризик атак типу «man-
in-the-middle» (MITM), коли зловмисник перехоплює або змінює дані між
клієнтом і сервером. Усі дані, що передаються через HTTPS, шифруються за
допомогою ключів, які обмінюються під час встановлення безпечного
з’єднання, тому навіть у випадку перехоплення трафіку, зловмисник отримає
лише набір зашифрованих, нерозбірливих даних.
Однак у деяких випадках, особливо коли передаються критично
важливі або чутливі дані (наприклад, службові команди для кластерів,
облікові дані, інформація про системні збої), одного HTTPS може бути
недостатньо. Для підвищення рівня безпеки застосовується додаткове
шифрування даних на рівні самого застосунку перед відправкою через
мережу. Це означає, що дані спочатку шифруються на стороні відправника за
допомогою певних криптографічних алгоритмів (наприклад, AES-256), а
потім передаються через HTTPS [16]. На стороні отримувача дані
розшифровуються тільки після отримання. Такий підхід забезпечує
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 55
а
подвійний захист: навіть якщо шифр HTTPS буде скомпрометований,
додатково зашифровані дані залишаться недоступними для зловмисника.
Також для безпечної передачі даних важливо впроваджувати
аутентифікацію учасників обміну інформацією. Це може бути реалізовано за
допомогою сертифікатів, токенів доступу або підписів повідомлень. Таким
чином можна гарантувати, що дані приймаються тільки від довірених джерел
і доставляються тільки уповноваженим системам.
Ще один важливий аспект – це правильна конфігурація шифрування:
використання сучасних версій TLS (мінімум TLS 1.2 або краще TLS 1.3),
заборона використання застарілих алгоритмів шифрування, таких як RC4 або
слабкі набори шифрів. Постійне оновлення сертифікатів безпеки і перевірка
їх дійсності також є обов’язковими заходами для підтримки належного рівня
захисту.
Тому для ефективного захисту даних при передачі між системами
необхідно комбінувати використання захищених мережевих протоколів
(HTTPS) з додатковим шифруванням даних на рівні додатків [17]. Це
гарантує, що передана інформація буде захищена від перехоплення, підробки
та несанкціонованого доступу, навіть в умовах агресивного мережевого
середовища.
Захист інформації при роботі з dashboard розробленої системи
моніторингу та управління кластерами є надзвичайно важливим аспектом
безпеки всієї інфраструктури. Оскільки dashboard є центральною точкою для
доступу до даних про стан серверів, перегляду метрик навантаження,
отримання повідомлень про аномалії та управління з’єднаннями, він повинен
бути надійно захищений від несанкціонованого доступу.
Першим і базовим механізмом захисту є впровадження системи
авторизації. Авторизація дозволяє контролювати, хто саме має доступ до
dashboard, і які саме дії користувач може виконувати. Без належної
авторизації зловмисник або навіть стороння особа всередині організації може
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 56
а
отримати доступ до критичної інформації, змінити налаштування
моніторингу або використати дані для здійснення атак на інфраструктуру.
На практиці система авторизації має включати кілька рівнів захисту.
Найперше, необхідно забезпечити автентифікацію користувачів — процес
перевірки особи користувача перед наданням доступу. Це може бути
реалізовано за допомогою класичного підходу з логіном і паролем. Важливо
вимагати використання складних паролів і забезпечити можливість
періодичної їх зміни. Для підвищення рівня безпеки рекомендується
впровадити багатофакторну автентифікацію (MFA), яка вимагає додаткового
підтвердження особи через SMS-код, мобільний додаток або апаратний
токен.
Після автентифікації повинна діяти система ролей і прав доступу [18]. Не
всім користувачам необхідно надавати повний доступ до всіх функцій
dashboard. Наприклад, оператори можуть мати право лише переглядати
інформацію про стан серверів, тоді як адміністратори повинні мати право
змінювати налаштування, підключати нові сервери або управляти
сповіщеннями. Такий підхід зводить до мінімуму можливі ризики при
компрометації окремого облікового запису.
Ще один важливий елемент захисту – це шифрування сеансу роботи
користувача. Весь трафік між браузером користувача та сервером, де працює
dashboard, має бути захищений за допомогою HTTPS-протоколу. Це
гарантує, що облікові дані та інші чутливі дані не будуть перехоплені під час
передачі.
Не менш важливо впровадити політику автоматичного завершення сеансу
після певного періоду бездіяльності. Це знижує ризик використання забутої
відкритої сесії третіми особами. Також слід передбачити механізми
обмеження кількості невдалих спроб входу в систему, щоб запобігти атакам
методом підбору пароля (brute-force)[19].
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 57
а
Крім цього, для захисту dashboard необхідно вести журнал усіх дій
користувачів: успішних і невдалих спроб входу, змін конфігурацій,
отримання доступу до чутливої інформації. Логування дозволяє вчасно
виявляти підозрілу активність і швидко реагувати на потенційні інциденти
безпеки.
Таким чином, захист інформації при роботі з dashboard повинен
базуватися на комплексному підході, що включає автентифікацію
користувачів, контроль прав доступу, шифрування даних, захист від
несанкціонованого доступу та моніторинг активності. Лише при реалізації
всіх цих заходів можна гарантувати безпечну роботу системи моніторингу та
управління кластерами.
4.2 Реалізація захисту користувачів
Захист користувачів є критично важливим аспектом при розробці будь-
якої системи, особливо коли йдеться про зберігання та обробку чутливих або
конфіденційних даних. Забезпечення безпеки користувачів гарантує, що їх
особисті дані, а також дані про систему або інфраструктуру, не будуть
доступні стороннім особам або зловмисникам. Належний захист включає
механізми автентифікації та авторизації, що дозволяють лише
уповноваженим користувачам доступати до необхідних ресурсів. Безпека
користувачів також допомагає зберегти цілісність даних та функціонування
системи, запобігаючи несанкціонованим змінам або маніпуляціям.
В системі моніторингу може здатися, що немає чого захищати,
оскільки в основному обробляються логи та графіки, що відображають
показники роботи серверів та інфраструктури. Однак, навіть ці дані можуть
містити чутливу інформацію, таку як деталі про продуктивність, структуру
системи або навіть потенційні вразливості в мережі. Крім того, доступ до
моніторингової інформації може дати зловмисникам можливість отримати
контроль над інфраструктурою або навіть здійснити атаки на систему.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 58
а
Тому важливо забезпечити належний захист таких даних, оскільки
вони можуть бути використані для збору інформації про слабкі місця в
системі або для маніпуляцій з її налаштуваннями. Підхід до безпеки має бути
комплексним, включаючи контроль доступу, шифрування даних та постійну
перевірку вразливостей, навіть якщо на перший погляд дані здаються не
надто чутливими.
Основні дані, які повинні бути захищені в системі моніторингу,
включають місце знаходження серверів, де здійснюється моніторинг, їх IP-
адреси, а також дані для входу в системи, такі як облікові записи, паролі та
інші конфіденційні відомості. Ці дані можуть дати зловмисникам можливість
отримати доступ до критичної інфраструктури або запустити атаки на
сервери. Інформація про місце розташування серверів і їх IP-адреси може
бути використана для націлених атак, зокрема для DDoS-атак або спроб
несанкціонованого доступу.
Важливо забезпечити надійний захист цих даних, зокрема за
допомогою шифрування, сильних механізмів автентифікації та моніторингу
доступу до системи, щоб запобігти несанкціонованим спробам доступу або
іншим загрозам безпеці.
Всі ці критичні дані в системі, зокрема місце знаходження серверів, їх
IP-адреси та дані для входу в системи, зберігаються в зашифрованому
вигляді. Це забезпечує додатковий рівень безпеки, оскільки навіть у разі
несанкціонованого доступу до бази даних або системи зберігання інформації,
ці дані залишаються недоступними для зловмисників без відповідного ключа
для дешифрування. Використання сучасних алгоритмів шифрування, таких
як AES (Advanced Encryption Standard), дозволяє гарантувати високий рівень
захисту конфіденційних відомостей і запобігти їх компрометації.
Для шифрування даних, що зберігаються в базі даних,
використовується алгоритм AES-256 (AdvancedEncryptionStandard з
довжиною ключа 256 біт). AES-256 є одним з найбільш безпечних та
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 59
а
ефективних методів симетричного шифрування, який гарантує високий
рівень захисту даних [20]. Використання цього алгоритму дозволяє
шифрувати чутливу інформацію, таку як облікові записи користувачів, IP-
адреси серверів та інші конфіденційні відомості, з максимальним рівнем
надійності та захисту навіть у разі несанкціонованого доступу до бази даних.
Ключі шифрування, які використовуються для захисту даних,
зберігаються таким чином, щоб вони були доступні лише адміністратору
системи. Це означає, що навіть у разі несанкціонованого доступу до бази
даних зловмисник не зможе розшифрувати збережені дані без відповідного
ключа. Такий підхід забезпечує додатковий рівень захисту, оскільки лише
авторизовані особи з відповідними правами доступу можуть отримати доступ
до ключів шифрування та здійснити дешифрування даних, гарантуючи таким
чином збереження конфіденційності та цілісності інформації.
В системі також реалізована система авторизації через соціальні
мережі, що додає додатковий рівень захисту. Використання таких механізмів,
як OAuth 2.0 для інтеграції з популярними соціальними платформами
(Google, Facebook), дозволяє значно знизити ризик несанкціонованого
доступу. Авторизація через соціальні мережі використовує вже перевірені
методи автентифікації, що забезпечують високий рівень безпеки, такі як
багатофакторна автентифікація або інші засоби захисту, надані
постачальниками соціальних мереж.
Даний підхід зменшує ймовірність використання слабких паролів або
несанкціонованого доступу до системи, оскільки користувачі, як правило,
використовують надійніші методи захисту своїх акаунтів у соціальних
мережах, ніж при створенні нових паролів для кожної системи.
Дані, які передаються з серверу моніторингу до основного сервера,
передаються через протокол HTTPS з використанням TLS сертифікату для
забезпечення безпечної передачі інформації. Використання HTTPS дозволяє
зашифрувати дані під час передачі, захищаючи їх від перехоплення або зміни
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 60
а
під час трансляції між серверами. TLS (Transport Layer Security) сертифікат
гарантує, що з'єднання є захищеним і що дані передаються між сервером
моніторингу та основним сервером в захищеному каналі, що забезпечує
конфіденційність та цілісність інформації.
Протокол HTTPS є розширенням стандартного HTTP і використовує
TLS (Transport Layer Security) для забезпечення захищеної передачі даних
між клієнтом і сервером. TLS = це криптографічний протокол, що забезпечує
конфіденційність і цілісність даних, переданих по відкритих мережах.
Першим етапом встановлення захищеного з'єднання є TLS handshake,
що включає кілька важливих кроків. TLS handshake є процесом обміну
криптографічними ключами та автентифікацією серверів, що дозволяє
клієнту впевнитися в ідентичності сервера. Під час handshake сервер надає
свій TLS сертифікат, що містить публічний ключ, який використовується для
шифрування подальших даних. Сертифікат також включає відомості про
видавця сертифіката, що дозволяє клієнту перевірити його справжність за
допомогою цифрового підпису.
Після автентифікації сертифіката клієнт і сервер обмінюються
симетричними ключами, що використовуватимуться для шифрування даних
протягом сесії. Обмін симетричними ключами через публічний канал
забезпечує швидке шифрування і дешифрування даних без необхідності
постійного використання публічного ключа.
Ці етапи забезпечують високий рівень захисту даних при їх передачі
через незахищені мережі, такі як Інтернет.
4.3 Висновки до розділу
У четвертому розділі було здійснено детальний огляд існуючих
підходів до захисту даних у системах моніторингу та управління великими
кластерами в розподілених обчислювальних середовищах. Проаналізовано
сучасні методи захисту інформації, включаючи використання шифрованих
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 61
а
протоколів передачі даних (HTTPS) та впровадження механізмів
автентифікації й авторизації для доступу до системи. У процесі реалізації
було обґрунтовано вибір технологій, що дозволяють гарантувати захист
даних від несанкціонованого доступу, втрати чи модифікації. Застосовані
заходи захисту забезпечують високий рівень інформаційної безпеки та
сприяють підвищенню загальної стійкості та надійності системи в умовах
роботи з великими обсягами даних і численними обчислювальними вузлами.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 62
а
ВИСНОВКИ
У процесі виконання роботи було досліджено та обґрунтовано вибір
технологій і інструментальних засобів для створення системи моніторингу та
управління великими кластерами в розподілених обчислювальних
середовищах. Аналіз існуючих технологій показав доцільність використання
операційної системи Linux, мови програмування C++ та бібліотеки
Boost.Asio для розробки агентів моніторингу, а також сучасних серверних
технологій і баз даних для забезпечення надійного зберігання і обробки
інформації.
У кваліфікаційній роботі розроблено структуру системи, визначено
основні функції, сформульовано технічні вимоги та оцінено ефективність
запропонованого рішення. Особливу увагу приділено захисту даних під час
збору, передачі та зберігання інформації, що дозволяє забезпечити високу
безпеку і стійкість системи до потенційних загроз.
Результати роботи свідчать про те, що запропонована система є
ефективним рішенням для моніторингу великих кластерних середовищ,
забезпечує своєчасне виявлення аномалій у роботі серверів і надає
інструменти для оперативного управління інфраструктурою.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 63
а
ДОДАТОК А
«ЗАТВЕРДЖУЮ»
Завідувач кафедри ІБ та КІ
д.т.н., професор Віра БАБЕНКО
__________________
«___» ____________ 2025 року
Система моніторингу та управління великими кластерами в
розподілених обчислювальних середовищах
Специфікація
482.ЧДТУ.52302-01
Листів 2
Розробник ______________ Максим МІЩЕНКО
Керівник ______________ Валерій ТАЗЕТДІНОВ
Черкаси 2025
2
482.ЧДТУ.52302-01
Позначення Найменування Примітка
Документація
482.ЧДТУ.52302-01 12 01 Текст програми
482.ЧДТУ.52302-01 34 01 Інструкція користувача
ДОДАТОК Б
Система моніторингу та управління великими кластерами в
розподілених обчислювальних середовищах
Текст програми
482.ЧДТУ.52302-01 12 01
Листів 15
Розробник: Максим МІЩЕНКО
Черкаси 2025
2
482.ЧДТУ.52302-01 12 01
#pragma once
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/system/error_code.hpp>
#include <memory>
#include <string>
#include <vector>
#include <map>
classSystemMonitor {
public:
structSystemStats {
doublecpuUsage;
doubleramUsage;
doublediskUsage;
structNetworkStats {
uint64_t bytesReceived;
uint64_t bytesSent;
doublebandwidth;
} network;
};
explicitSystemMonitor(boost::asio::io_context&ioContext);
~SystemMonitor();
voidstartMonitoring(unsignedintintervalSeconds = 1);
voidstopMonitoring();
3
482.ЧДТУ.52302-01 12 01
SystemStatsgetCurrentStats() const;
private:
voidscheduleNextUpdate();
voidupdateStats(constboost::system::error_code&error);
doublecalculateCPUUsage();
doublecalculateRAMUsage();
doublecalculateDiskUsage();
voidupdateNetworkStats();
structCPUStats {
unsignedlonglonguser;
unsignedlonglongnice;
unsignedlonglongsystem;
unsignedlonglongidle;
unsignedlonglongiowait;
unsignedlonglongirq;
unsigned long longsoftirq;
};
CPUStatsgetSystemCPUStats();
boost::asio::io_context&ioContext_;
boost::asio::steady_timertimer_;
boolisMonitoring_;
unsignedintintervalSeconds_;
SystemStatscurrentStats_;
4
482.ЧДТУ.52302-01 12 01
CPUStatslastCPUStats_;
// Storepreviousnetworkstatsforbandwidthcalculation
uint64_t lastBytesReceived_;
uint64_t lastBytesSent_;
std::chrono::steady_clock::time_pointlastNetworkCheck_;
};
#include "SystemMonitor.hpp"
#include <fstream>
#include <sstream>
#include <iostream>
#include <chrono>
#include <thread>
#include <cstring>
#ifdef _WIN32
#include <windows.h>
#include <psapi.h>
#else
#include <sys/sysinfo.h>
#include <sys/statvfs.h>
#include <unistd.h>
#endif
SystemMonitor::SystemMonitor(boost::asio::io_context&ioContext)
: ioContext_(ioContext)
, timer_(ioContext)
5
482.ЧДТУ.52302-01 12 01
, isMonitoring_(false)
, intervalSeconds_(1)
, lastBytesReceived_(0)
, lastBytesSent_(0) {
std::memset(&currentStats_, 0, sizeof(SystemStats));
std::memset(&lastCPUStats_, 0, sizeof(CPUStats));
}
SystemMonitor::~SystemMonitor() {
stopMonitoring();
}
void SystemMonitor::startMonitoring(unsigned int intervalSeconds) {
if (isMonitoring_) return;
intervalSeconds_ = intervalSeconds;
isMonitoring_ = true;
scheduleNextUpdate();
}
void SystemMonitor::stopMonitoring() {
isMonitoring_ = false;
timer_.cancel();
}
void SystemMonitor::scheduleNextUpdate() {
if (!isMonitoring_) return;
6
482.ЧДТУ.52302-01 12 01
timer_.expires_after(boost::asio::chrono::seconds(intervalSeconds_));
timer_.async_wait(
boost::bind(&SystemMonitor::updateStats, this, boost::asio::placeholders::error)
);
}
void SystemMonitor::updateStats(const boost::system::error_code& error) {
if (error) return;
currentStats_.cpuUsage = calculateCPUUsage();
currentStats_.ramUsage = calculateRAMUsage();
currentStats_.diskUsage = calculateDiskUsage();
updateNetworkStats();
scheduleNextUpdate();
}
SystemMonitor::SystemStatsSystemMonitor::getCurrentStats() const {
return currentStats_;
}
double SystemMonitor::calculateCPUUsage() {
#ifdef _WIN32
FILETIME idleTime, kernelTime, userTime;
if (GetSystemTimes(&idleTime, &kernelTime, &userTime)) {
ULARGE_INTEGER idle, kernel, user;
idle.LowPart = idleTime.dwLowDateTime;
7
482.ЧДТУ.52302-01 12 01
idle.HighPart = idleTime.dwHighDateTime;
kernel.LowPart = kernelTime.dwLowDateTime;
kernel.HighPart = kernelTime.dwHighDateTime;
user.LowPart = userTime.dwLowDateTime;
user.HighPart = userTime.dwHighDateTime;
static ULARGE_INTEGER prevIdle = {0}, prevKernel = {0}, prevUser =
{0};
ULARGE_INTEGER deltaIdle, deltaKernel, deltaUser;
deltaIdle.QuadPart = idle.QuadPart - prevIdle.QuadPart;
deltaKernel.QuadPart = kernel.QuadPart - prevKernel.QuadPart;
deltaUser.QuadPart = user.QuadPart - prevUser.QuadPart;
prevIdle = idle;
prevKernel = kernel;
prevUser = user;
ULARGE_INTEGER total;
total.QuadPart = deltaKernel.QuadPart + deltaUser.QuadPart;
if (total.QuadPart> 0) {
return 100.0 - (deltaIdle.QuadPart * 100.0 / total.QuadPart);
}
}
return 0.0;
#else
CPUStatscurrentStats = getSystemCPUStats();
8
482.ЧДТУ.52302-01 12 01
unsigned long longprevIdle = lastCPUStats_.idle + lastCPUStats_.iowait;
unsigned long long idle = currentStats.idle + currentStats.iowait;
unsigned long longprevNonIdle = lastCPUStats_.user + lastCPUStats_.nice +
lastCPUStats_.system + lastCPUStats_.irq +
lastCPUStats_.softirq;
unsigned long longnonIdle = currentStats.user + currentStats.nice +
currentStats.system + currentStats.irq +
currentStats.softirq;
unsigned long longprevTotal = prevIdle + prevNonIdle;
unsigned long long total = idle + nonIdle;
unsigned long longtotalDiff = total - prevTotal;
unsigned long longidleDiff = idle - prevIdle;
lastCPUStats_ = currentStats;
if (totalDiff == 0) return 0.0;
return (totalDiff - idleDiff) * 100.0 / totalDiff;
#endif
}
SystemMonitor::CPUStatsSystemMonitor::getSystemCPUStats() {
CPUStats stats;
std::memset(&stats, 0, sizeof(CPUStats));
#ifndef _WIN32
9
482.ЧДТУ.52302-01 12 01
std::ifstreamstatFile("/proc/stat");
std::string line;
if (std::getline(statFile, line)) {
std::istringstreamiss(line);
std::string cpu;
iss>> cpu
>>stats.user
>>stats.nice
>>stats.system
>>stats.idle
>>stats.iowait
>>stats.irq
>>stats.softirq;
}
#endif
return stats;
}
double SystemMonitor::calculateRAMUsage() {
#ifdef _WIN32
MEMORYSTATUSEX memInfo;
memInfo.dwLength = sizeof(MEMORYSTATUSEX);
if (GlobalMemoryStatusEx(&memInfo)) {
return static_cast<double>(memInfo.dwMemoryLoad);
}
return 0.0;
#else
struct sysinfosi;
10
482.ЧДТУ.52302-01 12 01
if (sysinfo(&si) == 0) {
unsigned long totalRam = si.totalram;
unsigned long freeRam = si.freeram;
return (1.0 - static_cast<double>(freeRam) / totalRam) * 100.0;
}
return 0.0;
#endif
}
double SystemMonitor::calculateDiskUsage() {
#ifdef _WIN32
ULARGE_INTEGER freeBytesAvailable, totalBytes, totalFreeBytes;
if (GetDiskFreeSpaceEx(
"C:\\",
&freeBytesAvailable,
&totalBytes,
&totalFreeBytes)) {
return (1.0 - static_cast<double>(totalFreeBytes.QuadPart) /
totalBytes.QuadPart) * 100.0;
}
return 0.0;
#else
struct statvfs fs;
if (statvfs("/", &fs) == 0) {
return (1.0 - static_cast<double>(fs.f_bfree) /
fs.f_blocks) * 100.0;
}
return 0.0;
11
482.ЧДТУ.52302-01 12 01
#endif
}
void SystemMonitor::updateNetworkStats() {
#ifdef _WIN32
// Windows implementation using GetIfTable or similar API
// This is a simplified version
currentStats_.network.bytesReceived = 0;
currentStats_.network.bytesSent = 0;
#else
std::ifstreamnetdev("/proc/net/dev");
std::string line;
uint64_t totalReceived = 0;
uint64_t totalSent = 0;
std::getline(netdev, line);
std::getline(netdev, line);
while (std::getline(netdev, line)) {
std::istringstreamiss(line);
std::string iface;
uint64_t received, sent;
iss>>iface;
if (iface.find("lo:") == std::string::npos) {
iss>> received;
for (int i = 0; i< 7; ++i)
iss.ignore(std::numeric_limits<std::streamsize>::max(), ' ');
12
482.ЧДТУ.52302-01 12 01
iss>> sent;
totalReceived += received;
totalSent += sent;
}
}
auto now = std::chrono::steady_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::seconds>(
now - lastNetworkCheck_).count();
if (duration > 0 &&lastNetworkCheck_ !=
std::chrono::steady_clock::time_point()) {
uint64_t receivedDiff = totalReceived - lastBytesReceived_;
uint64_t sentDiff = totalSent - lastBytesSent_;
currentStats_.network.bandwidth =
static_cast<double>(receivedDiff + sentDiff) / duration / 1024.0;
}
currentStats_.network.bytesReceived = totalReceived;
currentStats_.network.bytesSent = totalSent;
lastBytesReceived_ = totalReceived;
lastBytesSent_ = totalSent;
lastNetworkCheck_ = now;
#endif
}
13
482.ЧДТУ.52302-01 12 01
#include "SystemMonitor.hpp"
#include <iostream>
#include <iomanip>
void printStats(const SystemMonitor::SystemStats& stats) {
std::cout<<std::fixed <<std::setprecision(2)
<< "CPU Usage: " <<stats.cpuUsage<< "%\n"
<< "RAM Usage: " <<stats.ramUsage<< "%\n"
<< "Disk Usage: " <<stats.diskUsage<< "%\n"
<< "Network Stats:\n"
<<" Received: " <<stats.network.bytesReceived / 1024.0 / 1024.0 << " MB\n"
<<" Sent: " <<stats.network.bytesSent / 1024.0 / 1024.0 << " MB\n"
<<" Bandwidth: " <<stats.network.bandwidth<< " KB/s\n"
<<std::endl;
}
int main() {
try {
boost::asio::io_contextioContext;
SystemMonitor monitor(ioContext);
// Start monitoring with 2-second intervals
monitor.startMonitoring(2);
// Run for 30 seconds
boost::asio::steady_timerstopTimer(ioContext, boost::asio::chrono::seconds(30));
stopTimer.async_wait([&](const boost::system::error_code&) {
14
482.ЧДТУ.52302-01 12 01
monitor.stopMonitoring();
ioContext.stop();
});
// Print stats every 2 seconds
boost::asio::steady_timerprintTimer(ioContext);
std::function<void(const boost::system::error_code&)>printLoop;
printLoop = [&](const boost::system::error_code&) {
printStats(monitor.getCurrentStats());
printTimer.expires_after(boost::asio::chrono::seconds(2));
printTimer.async_wait(printLoop);
};
printTimer.expires_after(boost::asio::chrono::seconds(2));
printTimer.async_wait(printLoop);
ioContext.run();
}
catch (const std::exception& e) {
std::cerr<< "Error: " <<e.what() <<std::endl;
return 1;
}
return 0;
}
make_minimum_required(VERSION 3.10)
project(SystemMonitor)
15
482.ЧДТУ.52302-01 12 01
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Boost REQUIRED COMPONENTS system)
add_executable(system_monitor
main.cpp
SystemMonitor.cpp
)
target_link_libraries(system_monitor
PRIVATE
Boost::system
${CMAKE_THREAD_LIBS_INIT}
)
if(UNIX)
target_link_libraries(system_monitor PRIVATE pthread)
endif()
ДОДАТОК В
Система моніторингу та управління великими кластерами в
розподілених обчислювальних середовищах
Інструкція користувача
482.ЧДТУ.52302-01 34 01
Листів 4
Розробник: Максим МІЩЕНКО
Черкаси 2025
2
482.ЧДТУ.52302-01 34 01
Необхідно детально описати процес встановлення системи на сервери
моніторингу, що включає всі етапи налаштування та конфігурації
програмного забезпечення. Це є важливою частиною інструкції користувача,
яка допомагає адміністратору або іншому технічному персоналу правильно
здійснити процес розгортання системи. Інструкція повинна включати
покрокові інструкції щодо установки, налаштування мережевих з'єднань,
конфігурації бази даних, а також вимоги до системи і програмного
забезпечення, щоб забезпечити коректну роботу системи моніторингу.
Розроблена система є хмарним рішенням, і лише модуль моніторингу
доступний для завантаження користувачем. Основний сервер, що здійснює
збір та обробку даних з моніторингових серверів, не можна завантажити або
запустити самостійно. Це забезпечує централізовану архітектуру управління,
де основний сервер контролюється адміністраторами для гарантування
безпеки і стабільної роботи системи.
Для встановлення додатку моніторингу на сервер, користувач повинен
завантажити відповідний модуль на сервер і ініціювати процес встановлення.
Після завантаження файлів необхідно виконати запуск інсталяційного
процесу, слідуючи покроковим інструкціям, які забезпечують коректну
налаштування і конфігурацію моніторингової системи на сервері.
Під час інсталяції програма створить конфігураційний файл
config.yaml, який міститиме початкові налаштування для моніторингової
системи. Після завершення встановлення необхідно відредагувати цей файл,
вказавши адресу основного сервера, а також поточні властивості системи,
щоб програма могла працювати коректно. Це включає налаштування
мережевих параметрів, вказівку на сервер збору даних та інші важливі
параметри для стабільної роботи додатку.
3
482.ЧДТУ.52302-01 34 01
Важливо налаштувати файрвол сервера, щоб забезпечити можливість
відправлення даних на сервер збору моніторингових даних. Для цього
необхідно відкрити відповідні порти на файрволі, що дозволяють з'єднання з
основним сервером через протоколи, які використовуються для передачі
даних, такі як HTTPS. Невірно налаштований файрвол може блокувати
з'єднання, що призведе до неможливості передавання інформації між
серверами та вплине на коректну роботу моніторингової системи.
Важливо відкрити порт 443 на файрволі сервера, оскільки цей порт
використовується для з'єднань через протокол HTTPS, який забезпечує
захищену передачу даних між сервером моніторингу та сервером збору
моніторингових даних. Відкриття порту 443 гарантує, що сервер зможе
успішно передавати дані на основний сервер без блокувань з боку файрвола.
Після встановлення модулю моніторингу на сервер необхідно додати
цей сервер у налаштування основного серверу збору даних. Це потрібно для
того, щоб основний сервер міг ідентифікувати новий сервер моніторингу та
почати отримувати від нього дані. Для цього слід додати адресу нового
сервера в список серверів на основному сервері, що дозволить коректно
налаштувати процес моніторингу та забезпечити взаємодію між серверами.
У разі успішного встановлення та налаштування модулю моніторингу
на сервері, на дажборді сервера моніторингу почнуть з'являтися дані про стан
системи. Це свідчитиме про коректну роботу системи моніторингу, яка
почала збір та відображення інформації, такої як навантаження на процесор,
використання пам'яті, стан дискових пристроїв та інші показники, що
дозволяють відслідковувати працездатність сервера в реальному часі.
У додатковій авторизації немає необхідності, оскільки доступ до
отримання даних від сервера моніторингу здійснюється на основі IP-адреси.
Це означає, що лише сервери з дозволених IP-адрес можуть підключатися до
4
482.ЧДТУ.52302-01 34 01
основного сервера збору даних, що забезпечує контрольовану та безпечну
взаємодію між серверами без потреби у додатковій перевірці користувачів чи
систем.
Користувач у будь-який момент може зупинити отримання даних з
серверів, вимкнувши відповідні сервери в налаштуваннях. Це дає можливість
тимчасово припинити моніторинг та передачу даних на основний сервер,
забезпечуючи гнучкість у керуванні процесом збору інформації.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Andrew S. Tanenbaum, Maarten Van Steen. Distributed Systems: Principles
and Paradigms. Prentice Hall, 2007. 638 p.
2. Martin Kleppmann. Designing Data-Intensive Applications: The Big Ideas
Behind Reliable, Scalable, and Maintainable Systems. O’Reilly Media, 2017.
616 p.
3. Kristina Chodorow. MongoDB: The Definitive Guide. O’Reilly Media, 2019.
500 p.
4. Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. Operating System
Concepts. Wiley, 2018. 976 p.
5. William Stallings. Cryptography and Network Security: Principles and
Practice. Pearson, 2016. 784 p.
6. Anthony Williams. C++ Concurrency in Action: Practical Multithreading.
Manning Publications, 2019. 640 p.
7. David Beazley. Python Essential Reference. Addison-Wesley Professional,
2009. 717 p.
8. John Goerzen, Brandon Rhodes. Foundations of Python Network
Programming. Apress, 2010. 361 p.
9. José Macedo. Mastering Node.js: A Practical Guide to Building Maintainable,
High-Performance Web Application and Server-Side Software. Packt
Publishing, 2017. 370 p.
10. Ramez Elmasri, Shamkant B. Navathe. Fundamentals of Database Systems.
Pearson, 2016. 1272 p.
11. John Viega, Matt Messier, Pravir Chandra. Network Security with OpenSSL:
Cryptography for Secure Communications. O’Reilly Media, 2002. 384 p.
12. Allen Jeff, Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes. SSH,
The Secure Shell: The Definitive Guide. O’Reilly Media, 2005. 672 p.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 85
а
13. Martin Fowler. Patterns of Enterprise Application Architecture. Addison-
Wesley Professional, 2002. 560 p.
14. Tom White. Hadoop: The Definitive Guide. O’Reilly Media, 2015. 800 p.
15. Daniel P. Bovet, Marco Cesati. Understanding the Linux Kernel. O’Reilly
Media, 2005. 944 p.
16. Jeffrey Dean, Sanjay Ghemawat. MapReduce: Simplified Data Processing on
Large Clusters. Google Research Publication, 2004. 19 p.
17. Salvatore Loreto. Secure Real-time Transport Protocol (SRTP): A Profile for
RTP with Encryption, Message Authentication, and Integrity. RFC 3711,
2004. 46 p.
18. Eric Rescorla. HTTP Over TLS. RFC 2818, Internet Engineering Task Force,
2000. 19 p.
19. Tim Dierks, Eric Rescorla. The Transport Layer Security (TLS) Protocol
Version 1.2. RFC 5246, 2008. 74 p.
20. Paul Deitel, Harvey Deitel. C++ How to Program.Pearson, 2016. 1056 p.
21. Технології розподілених систем та паралельних обчислень: конспект
лекцій / Уклад. О. Л. Соловей. Київ: КНУБА, 2024. 98 с.
22. РадченкоК. О., ПетрашенкоА. В. Бази даних NoSQL. Електронне
мережне навчальне видання. Київ: КПІ ім. Ігоря Сікорського, 2023. 270
с.
23. Організація баз даних NoSQL [Електронний ресурс] : практикум / Н.В.
Ситник, І.С. Зінов’єва. К. КНЕУ, 2022. 167 с.
24. Жураковський Б.Ю., Зенів І.О. Комп'ютерні мережі. Частина 1: навч.
посіб. [Електронний ресурс]. Київ : КПІ ім. Ігоря Сікорського, 2020. 336
с.
25. Жураковський Б.Ю., Зенів І.О. Комп'ютерні мережі.Частина 2 : навч.
посіб. [Електронний ресурс]. Київ : КПІ ім. Ігоря Сікорського, 2020. 372
с.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 86
а
26. Комп'ютерні мережі: методичні вказівки / Уклад.: В.М. Вишняков.
Київ.: КНУБА, 2023. 32 с.
27. Комп’ютерні мережі. Частина 1. Моделювання комп’ютерних мереж:
Лабораторний практикум. / Укладачі: О. С. Яценко, О. І. Яценко.
Житомир: Вид-во ЖДУ ім. І. Франка, 2022. 76 с.
28. В.Я.Юрчишин. Хмарні та Грід-технології: комп’ютерний практикум
[Електронний ресурс] : навч. посіб. Київ : КПІ ім. Ігоря Сікорського,
2022. 67 с.
29. В.Я.Юрчишин. Хмарні та Грід-технології: конспект лекцій
[Електронний ресурс] : навч. посіб. Київ : КПІ ім. Ігоря Сікорського,
2019. 264 с.
30. Петровська І. Ю., Кучук Г. А. Розподіл обчислювальних ресурсів у
хмарних системах. Системи управління, навігації та зв'язку. 2022. Вип. 2
(68). С. 75–78. DOI: http://dx.doi.org/10.26906/SUNZ.2022.2.075.
31. Кучук Г.А., Коваленко А. А., Лукова-Чуйко Н. В. Метод мінімізації
середньої затримки пакетів у віртуальних з’єднаннях мережі підтримки
хмарного сервісу. Системи управління, навігації та зв’язку. Полтава .
ПНТУ, 2017. Вип. 2(42). С. 117-120.
Лист
ЧДТУ.252302.007 ПЗ т
Зм. Лист № докум. Підпис Дат 87
а