# Руководство пользования системой RMM # Анотация Программный комплекс **RMM** (Remote Monitoring and Management) предназначен для централизованного удалённого мониторинга и управления устройствами в компьютерной сети. Система состоит из серверной части, реализованной на языке Python с использованием фреймворка Flask, и клиентского агента, разработанного на языке Rust. \ \ Сервер обеспечивает регистрацию агентов, хранение информации об устройствах, обработку команд, обмен данными по WebSocket, а также предоставляет административную панель и REST API. Агент устанавливается на удалённое устройство, поддерживает постоянное соединение с сервером, отправляет heartbeat-сообщения и выполняет полученные команды.\ \ Система может использоваться в локальных сетях организаций, учебных лабораториях, тестовых инфраструктурах и средах администрирования для автоматизации контроля и управления удалёнными узлами. --- # Введение В современных условиях стремительного развития информационных технологий и увеличения количества сетевых устройств возрастает необходимость централизованного мониторинга и удалённого управления компьютерными системами. Организации, учебные учреждения и частные администраторы сталкиваются с необходимостью оперативного контроля состояния удалённых устройств, автоматизации обслуживания инфраструктуры и обеспечения безопасного взаимодействия между клиентскими узлами и сервером управления.\ \ Системы класса RMM (Remote Monitoring and Management) предназначены для решения задач удалённого администрирования, мониторинга состояния устройств, автоматизированного выполнения команд и централизованного сбора информации о работе оборудования. Использование подобных систем позволяет существенно сократить время реагирования на инциденты, повысить эффективность сопровождения инфраструктуры и упростить процессы технического обслуживания.\ \ В рамках данного проекта разработан программный комплекс удалённого мониторинга и управления, состоящий из серверной части и клиентского агента. Серверная часть реализована с использованием языка программирования Python и фреймворка Flask, что обеспечивает гибкость разработки, поддержку REST API и возможность масштабирования системы. Клиентский агент разработан на языке Rust, обеспечивающем высокую производительность, безопасность работы с памятью и стабильность сетевого взаимодействия.\ \ Разработанная система поддерживает регистрацию агентов, двустороннее взаимодействие по WebSocket, передачу управляющих команд, сбор системной информации и ведение журналов аудита. Для обеспечения безопасности используются механизмы TLS/mTLS, JWT-аутентификация и ограничение количества запросов.\ \ Актуальность разработки обусловлена необходимостью создания безопасного и расширяемого решения для централизованного управления удалёнными устройствами, которое может применяться как в учебных целях, так и в небольших корпоративных инфраструктурах.\ \ Целью разработки является создание программного комплекса удалённого мониторинга и управления устройствами, обеспечивающего безопасное взаимодействие между сервером и агентами, централизованное выполнение команд и контроль состояния подключённых узлов.\ --- ## Область применения Программный комплекс RMM применяется для удалённого администрирования и мониторинга компьютеров и серверов, подключённых к сети. Система ориентирована на использование: - в корпоративных локальных сетях; - в учебных и исследовательских лабораториях; - в тестовых инфраструктурах; - в системах централизованного администрирования; - в проектах автоматизации обслуживания удалённых устройств. Комплекс позволяет администраторам централизованно получать информацию о состоянии подключённых устройств, отправлять управляющие команды и контролировать сетевую активность агентов. --- ## Краткое описание возможностей Основные возможности программного комплекса: - регистрация и хранение информации об агентах; - централизованное управление удалёнными устройствами; - обмен сообщениями между сервером и агентами по WebSocket; - отправка и выполнение команд на удалённых устройствах; - периодическая отправка heartbeat-сообщений; - сбор системной информации об устройствах; - журналирование действий пользователей и агентов; - загрузка и хранение файлов; - REST API для интеграции с внешними системами; - использование JWT-аутентификации; - защита соединений с помощью TLS/mTLS; - ограничение запросов с использованием rate limiting; - административная веб-панель управления. --- ## Перечень эксплуатационной документации В состав эксплуатационной документации входят: - руководство пользователя; - руководство администратора; - руководство программиста; - описание архитектуры системы; - программа и методика испытаний; - инструкция по установке и настройке; - описание REST API; - описание конфигурационных файлов. --- # Назначение и условия применения Программный комплекс RMM предназначен для удалённого мониторинга и управления устройствами в компьютерной сети. Система обеспечивает: - централизованное управление агентами; - контроль состояния подключённых устройств; - выполнение удалённых команд; - защищённый обмен данными между сервером и агентами; - хранение информации о действиях пользователей и агентов. \ Условия применения системы: - Docker Или: - наличие установленного Python версии 3.11 или выше; - наличие Rust и Cargo для сборки агента; - наличие базы данных PostgreSQL; А также: - наличие сетевого соединения между сервером и агентами; - поддержка TLS-соединений; - операционная система семейства Windows или Linux. Минимальные требования к серверу: - процессор: 2 ядра; - оперативная память: от 2 ГБ; - свободное место на диске: от 1 ГБ; - Docker или установленный PostgreSQL или другая поддерживаемая СУБД. --- # Установка становка серверной части с использованием Docker: 1. Перейти в каталог сервера: 2. Написать команду в терминале ```Docker-compose up -d``` Установка серверной части без Docker: - [ ] 1. Перейти в каталог сервера ```cd server``` - [ ] 2. Создать виртуальное окружение ```python -m venv venv``` - [ ] 3. Активировать виртуальное окружение ```venv\Scripts\activate``` - [ ] 4. Установить зависимости ```pip install -r requirements.txt``` - [ ] 5. Настроить файл ```.env```. - [ ] 6. Запустить сервер ```python run.py``` Установка агента 1. Перейти в каталог агента ```cd agent``` 2. Настроить файл ```config.json```. 3. Выполнить сборку ```cargo build --release``` 4. Запустить агент \