Skip to content

Repository files navigation

Веб-программа мониторинга компьютеров в сети.

Описание

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

Требования

  • Docker Desktop
  • Python 3.11+
  • Node.js
  • PostgreSQL

Быстрый запуск

Программа разделена на серверный (backend+frontend) и клиентский модуль (python программа).

  1. Запускаем Docker Desktop.

  2. Переходим в папку NetworkMonitor\server

  3. Запускаем start-backend.bat

  4. Переходим в папку NetworkMonitor\frontend

  5. Устанавливаем зависимости запуском depencies.bat

  6. После установки зависимостей запускаем frontend-start.bat.

  7. Переходим в папку NetworkMonitor\agent-collector

  8. Устанавливаем зависимости запуском agent-depencies.bat

  9. После установки зависимостей запускаем 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 файл клиента, иначе они не смогут соединиться;

Можно удалять записи мониторинга по датам от-до для экономии места.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages