Этот проект представляет собой панель мониторинга сервера в реальном времени, построенную на 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
- Клонируйте репозиторий:
git clone https://github.com/kaurcev/node-server-stat.git
cd node-server-stat
- Установите зависимости:
npm install
- Создайте файл конфигурации на основе шаблона:
cp .env.template .env
- При необходимости отредактируйте файл
.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 для памяти
- Оптимизированные вызовы системных команд
- WebSockets для мгновенной передачи данных
- История данных для плавных графиков
- Эффективное обновление клиентов
- Поддержка мобильных устройств
- Современный дизайн с анимациями
- Интерактивные графики Chart.js
Этот проект распространяется под лицензией GNU General Public License. Подробности см. в файле LICENSE.
Для доработок, исправления багов или расширения функционала всегда можно написать в Telegram: @kaurcev