Тема: Разработка системы мониторинга и анализа производительности серверного ПО
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Постановка задачи 5
Используемые термины 6
Обзор литературы 8
Глава 1.Сбор требований 9
1.1. Анализ существующих решений 9
1.1.1 Prometheus 9
1.1.2 Graphite 11
1.1.3 InfluxDB 12
1.1.4 OpenTSDB 14
1.1.5 Nagios 15
1.1.6 Sensu 16
1.2. Итоги анализа 17
1.3. Выводы 19
Глава 2. Разработка 20
2.1. Архитектура 20
2.2. Модель данных 21
2.3. Технологический стек 22
2.3.1 Monitoring server 22
2.3.2 Database 23
2.3.3 Anomalies detector 25
2.3.4 Agent 25
2.3.5 Client 25
2.4. Реализация 26
2.4.1 Monitoring server 26
2.4.2 Обнаружение аномалий 34
2.4.3 Клиенты 36
2.4.4 Агенты 37
Глава 3. Тестирование 38
3.1. Ручное интеграционное функциональное тестирование . . 38
3.2. Автоматизированное интеграционное функциональное тестирование 41
3.3. Нагрузочное тестирование 42
Глава 4. Заключение 46
Список литературы 47
📖 Введение
Благодаря технологическому прорыву, плоды которого человечество особенно активно пожинает в течение нескольких последних десятков лет, сейчас уже практически невозможно представить себе человека, не пользующегося мобильным телефоном или Интернетом.
В Интернете существует множество сайтов и приложений, предлагающих широкий спектр услуг: просмотр образовательных онлайн-курсов, заказ продуктов, прослушивание аудиокниг, и прочее. Большая часть сервисов, предоставляющих эти услуги, работает “в облаке”. Это означает, что для их использования нет необходимости устанавливать на устройство какие-либо приложения помимо веб-браузера, поскольку они работают на серверах - других компьютерах, которые соединены с компьютером пользователя посредством сети Интернет.
С ростом уровня потребления услуг онлайн-сервисов, растёт и нагрузка на них, и, соответственно, инфраструктура, обеспечивающая их работу: закупаются дополнительные серверы, создаются новые сервисы, существующие сервисы дробятся на более мелкие для масштабирования системы и повышения её производительности и отказоустойчивости.
Укрупнение инфраструктуры ведёт к тому, что диагностировать проблемы, возникающие во время работы приложений, становится всё сложнее. В ситуации, когда у компании есть только пять серверов, и на каждом из которых запущено по одному приложению, за этими приложениями возможно следить в ручном режиме. Но когда счёт серверов и приложений идёт на десятки, сотни или даже тысячи, вовремя заметить проблему без автоматизации наблюдения становится невозможным.
От стабильности работы веб-сервисов зависит не только досуг их пользователей: например, приложения, обеспечивающие работу банков или фондовых бирж, вовсе не могут позволить себе долгих перебоев в работе - каждая минута простоя может напрямую или косвенно стоить колоссального количества денег. Таким образом, возможность автоматизированного наблюдения за работоспособностью системы является жизненно необходимой для бизнеса.
Постановка задачи
Целью данной работы является разработка системы мониторинга, предоставляющей функционал для слежения за работоспособностью и производительностью веб-приложений: сбором метрик, отображением собранных данных и оповещением администраторов системы в случае, если приложение работает некорректно. Для этого необходимо решить следующие подзадачи:
1. Ознакомление с существующими решениями подобных задач для вы-деления основных подходов, особенностей каждого решения;
2. Определение требований к разрабатываемой системе;
3. Проектирование архитектуры системы и разработка протокола взаимодействия системы с наблюдаемыми приложениями;
4. Выбор технологического стека;
5. Разработка системы;
6. Тестирование системы.
✅ Заключение
Разработаны все ключевые модули системы. Проведён и описан процесс функционального и нагрузочного тестирования. Нагрузочное тестирование показало результаты, которые можно считать удовлетворительными для современной системы мониторинга.
Разработанная система учитывает преимущества и недостатки существующих решений в сфере мониторинга, и её основными преимуществами являются простота использования, низкая стоимость мониторинга для клиентских приложений, гибкий язык запросов, позволяющий извлекать и агрегировать данные, использование алгоритмов поиска аномалий в данных метрик.
Исходный код компонентов системы доступен по следующим ссылкам:
1. Сервер мониторинга[43];
2. Клиентская библиотека для языка Java[44];
3. Агент[45];
4. Сервис обнаружения аномалий[46].



