Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Dashboard (Server + client side) for obtaining basic server statistics on the Debian distribution

License

Notifications You must be signed in to change notification settings

kaurcev/node-server-stat

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

AltStyle によって変換されたページ (->オリジナル) /