Веб-программа мониторинга компьютеров в сети.
Веб-программа для мониторинга компьютеров в локальной сети в реальном времени. Сервер собирает данные с клиентских ПК и хранит их в базе данных, отображает графики и прочую информацию о компьютерах, реализуется система предупреждений на основе анализа данных. Программа поддерживает систему регистраций пользователей и разграничение прав доступа, позволяет отправлять запросы на решение проблем с ПК.
- Docker Desktop
- Python 3.11+
- Node.js
- PostgreSQL
Программа разделена на серверный (backend+frontend) и клиентский модуль (python программа).
-
Запускаем Docker Desktop.
-
Переходим в папку NetworkMonitor\server
-
Запускаем start-backend.bat
-
Переходим в папку NetworkMonitor\frontend
-
Устанавливаем зависимости запуском depencies.bat
-
После установки зависимостей запускаем frontend-start.bat.
-
Переходим в папку NetworkMonitor\agent-collector
-
Устанавливаем зависимости запуском agent-depencies.bat
-
После установки зависимостей запускаем start-agent.bat
Для подключений внешних ПК в сети требуется настройка .env в agent-collector: меняем переменную WS_URL=ws://(локальный ip):8000/ws/agent
папка server: docker-compose up --build
папка frontend: npm install python setup_ip.py npm start
папка agent-collector: (простой запуск) pip install -r requirements.txt python main.py
(запуск через виртуальное окружение)
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python main.py
Если серверная часть запущена на этом-же ПК: http://localhost:3000
Если используется другой ПК в локальной сети: http://(локальный ip):3000
Мониторинг ПК в реальном времени — загрузка CPU, памяти, объема дисков для всей сети и для конкретных ПК;
Удобная настройка промежутков обновления данных (1-60 секунд);
Мониторинг отдельных процессов и их нагрузка;
Отслеживание потери связи между клиентом и сервером;
Просмотр некоторой статический системной информации о ПК;
Просмотр истории метрик, настраиваемый промежуток времени;
Предупреждения: автоматические предупреждения при превышении порогов CPU/памяти/объема диска с ссылкой на проблемный ПК;
Удалённые скриншоты: снимок экрана агента по запросу. Это позволяет видеть что происходит на удаленном ПК;
Аудит действий: логирование важных операций на сайте;
Фильтрация таблиц аудита и отчетов о проблемах;
Переименование отслеживаемых клиентов для выделения конкретных ПК;
Настраиваемый дизайн метрик;
Адаптивность к разным размерам экрана;
Тёмная и светлая тема;
Схема сети: простой визуальный редактор с компьютерами, изображениями и областями. Можно вставить реальную схему здания и расставить компьютеры для удобной визуализации. Можно видеть базовые данные мониторинга при наведении на рабочие ПК в схеме;
Отчёты о проблемах: приём заявок от пользователей с привязкой к ПК на схеме, закрытие заявок;
Управление пользователями: подтверждение, блокировка, удаление, права администратора;
Управление ролями: разграничение прав для просмотра объектов на схеме.
Первый пользователь автоматически станет администратором. Все последующие пользователи должны быть утверждены администратором;
Сборщики данных подключаются через WebSocket — сервер управляет интервалом опроса;
frontend автоматически определяет локальный ip-адрес сервера через python скрипт;
Идентификация устройств по MAC-адресу, предотвращает проблему идентификации устройств в случае одинакового hostname;
Обычным пользователям доступен только мониторинг и схема сети. Администратор имеет больше вкладок на сайте;
Чтобы скрыть компьютеры в определенной области от пользователей без роли, требуется сначала привязать объекты ПК к реальным клиентам с сборщиком данных;
Мониторинг нагрузки CPU на сайте отличается от мониторинга диспетчера задач - это нормально. Для мониторинга используется библиотека psutil, которая учитивает простои ресурсов CPU от неравномерной нагрузки;
В настройках сайта есть возможность закрыть доступ всем обычным пользователям;
В настройках сайта можно поменять AGENT_SECRET, необходимый для аутентификации между сборщиком данных клиента и сервером. Этот ключ также должен быть передан в .env файл клиента, иначе они не смогут соединиться;
Можно удалять записи мониторинга по датам от-до для экономии места.