Newer
Older
hard-panel / README.md

GHard Monitor

Gnexus Hardware Monitor — сбор мониторинга всех серверов в одном месте.

┌───────────────┐   POST /api/v1/ingest   ┌────────────────────┐
│ hard-monitor  │ ─────────────────────► │  hard-panel        │
│ (агент,       │   метрики + ключ       │  FastAPI + SQLite  │
│  stateless)   │                        │  + Vue UI          │
└───────────────┘                        └────────────────────┘
  • panel/ — панель: приём метрик, SQLite, ивенты, алерты, веб-интерфейс (Vue 3 + gnexus-ui-kit + chart.js)
  • monitor/ — агент на серверах: psutil-сбор фактов, POST на панель. Агент stateless, вся логика (пороги, ивенты, скорость сети по дельте счётчиков) — на панели.

Стек

Часть Технологии
panel backend Python 3.12, FastAPI, aiosqlite (SQLite, WAL)
panel frontend Vue 3, gnexus-ui-kit, chart.js
monitor Python 3 (psutil, requests), systemd
Деплой Docker / docker-compose

Быстрый старт (panel)

cp panel/backend/.env.example .env   # задай GHARD_ADMIN_TOKEN
docker compose up -d --build

API: http://localhost:8000/docs (OpenAPI)

API (кратко)

  • POST /api/v1/servers — создать сервер, получить ключ агента (показывается один раз)
  • POST /api/v1/ingest — пакет метрик агента, заголовок X-Server-Key
  • GET /api/v1/servers — сводка для дашборда
  • GET /api/v1/servers/{id}/metrics?since=…&until=… — история для графиков
  • PATCH /api/v1/servers/{id} — имя / заметка

Статус

  • Этап 1 — скелет: FastAPI, SQLite-схема, ingest, servers API, docker
  • Этап 2 — hard-monitor агент + install.sh
  • Этап 3 — веб-интерфейс (Vue + ui-kit + chart.js)
  • Этап 4 — ивенты + алерты (Telegram, webhook)
  • Этап 5 — downsample истории (7 дней), финальный деплой