Skip to content

Дашборд (Серверная + клиентская части) для получения базовой статистики сервера на дистрибутиве Debian

License

Notifications You must be signed in to change notification settings

kaurcev/node-server-stat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-server-stat

Static Badge GitHub top language GitHub GitHub Repo stars GitHub issues

Этот проект представляет собой панель мониторинга сервера в реальном времени, построенную на Node.js, Express и WebSockets. Приложение предоставляет статистику использования ресурсов сервера, включая CPU, память, сеть и процессы.

Клиентская часть реализована как пример отображения данных с вебсокета, но кому будет интересно, можете реализовать нативные клиенты для этой серверной части. Данную реализацию стоит использовать в "закрытом" контуре в корпоративных сетях. В иных целях нужно делать доработку

Особенности

  • Реальное время обновления данных через WebSockets
  • Визуализация истории использования CPU, памяти и сети
  • Отображение топ-процессов по использованию CPU
  • Адаптивный дизайн для мобильных устройств
  • Настраиваемые параметры через файл .env
  • Автоматическое определение сетевого интерфейса

Технологии

  • Backend: Node.js, Express
  • Real-time коммуникация: WebSockets (ws)
  • Cистемная информация: systeminformation
  • Frontend: HTML5, CSS3, Chart.js
  • Environment: dotenv

Требования

  • Node.js (v18 или выше)
  • Debian 12 (или аналогичный Linux-дистрибутив)

Установка

Для установки необходимо установить NodeJS

  1. Клонируйте репозиторий:
git clone https://github.com/kaurcev/node-server-stat.git
cd node-server-stat
  1. Установите зависимости:
npm install
  1. Создайте файл конфигурации на основе шаблона:
cp .env.template .env
  1. При необходимости отредактируйте файл .env
Переменная Значение по умолчанию Описание
PORT 7787 Порт HTTP-сервера
STATS_INTERVAL 1000 Интервал сбора статистики (мс)
HISTORY_LENGTH 60 Количество хранимых точек данных
NETWORK_INTERFACE Сетевой интерфейс для мониторинга
PROCESSES_LIMIT 4 Количество отображаемых процессов
WS_PATH Кастомный путь для WebSocket (опционально)

Использование

Запустите сервер:

npm start

Откройте в браузере:

http://localhost:7787

Структура проекта

node-server-stat
├── imgs/              # Статические для README.md
├── public/            # Статические файлы
│   ├── app.js         # Инциализатор воркера
│   ├── code.js        # JavaScript код самого дашборда
│   ├── style.css      # Стили дашборда
│   └── index.html     # HTML-файл дашборда
├── .env.template      # Шаблон переменных окружения
├── index.js           # Основной серверный код
├── package.json       # Зависимости и скрипты
└── README.md          # Документация

Скриншот

Скриншот панели статистики

Особенности реализации

Эффективный сбор данных:

  • Использование /proc/stat для CPU
  • Нативные методы Node.js для памяти
  • Оптимизированные вызовы системных команд

Real-time обновление:

  • WebSockets для мгновенной передачи данных
  • История данных для плавных графиков
  • Эффективное обновление клиентов

Адаптивный интерфейс:

  • Поддержка мобильных устройств
  • Современный дизайн с анимациями
  • Интерактивные графики Chart.js

Лицензия

Этот проект распространяется под лицензией GNU General Public License. Подробности см. в файле LICENSE.

Обратная связь

Для доработок, исправления багов или расширения функционала всегда можно написать в Telegram: @kaurcev

About

Дашборд (Серверная + клиентская части) для получения базовой статистики сервера на дистрибутиве Debian

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published