Update README with current features: sessions, timezone, RAM/swap, RBAC, audit

This commit is contained in:
2026-07-17 17:20:11 +07:00
parent 1560592af4
commit 3b5ac3d282
+50 -11
View File
@@ -1,26 +1,34 @@
# InfoUser Monitor
Мониторинг состояния ПК (Windows/Linux/macOS). Агент на каждом компьютере отправляет метрики на сервер раз в час, а веб-интерфейс показывает список машин, пользователей, IP, CPU/RAM, диски и процессы.
Мониторинг состояния ПК (Windows/Linux/macOS). Агент на каждом компьютере отправляет метрики на сервер раз в час, а веб-интерфейс показывает список машин, пользователей, IP, CPU/RAM/swap, диски, процессы и активные пользовательские сессии.
## Возможности
- **Дашборд** с фильтрами по статусу, пользователю и поиском по хосту/IP/OS
- **Графики** CPU/RAM за 24 часа на странице ПК
- **Детали ПК**: графики CPU/RAM/swap за 24 часа, активные сессии, топ процессов, история heartbeats
- **Активные сессии**: кто и с какого IP залогинен прямо сейчас
- **Уведомления** об офлайн-ПК (in-app + webhook + Telegram)
- **Экспорт** списка ПК в CSV
- **JWT-авторизация** с ролями admin/viewer
- **RBAC и аудит-лог**: управление пользователями, запись действий админов
- **Настройки через веб**: токен агента, порог офлайна, уведомления, часовой пояс
- **Часовой пояс**: хранение в UTC, отображение в выбранном поясе
- **RAM и swap**: использование в GB и процентах
## Структура
```
info-user/
├── server/ # FastAPI + веб-интерфейс
│ ├── routes/
│ ├── templates/
│ ├── static/
│ ├── routes/ # API и веб-роуты
│ ├── templates/ # Jinja2-шаблоны
│ ├── static/ # CSS/JS
│ ├── database.py # SQLite и миграции
│ ├── models.py # SQLAlchemy-модели
│ ├── schemas.py # Pydantic-схемы
│ ├── Dockerfile
│ └── main.py
├── agent/ # Python-агент
├── agent/ # Python-агент (ручная установка)
│ ├── agent.py
│ ├── config.json
│ └── install.sh
@@ -28,6 +36,7 @@ info-user/
├── data/ # SQLite БД (создаётся при запуске)
├── docker-compose.yml
├── nginx.conf
├── info-user-agent_*.deb
└── README.md
```
@@ -75,7 +84,7 @@ http://localhost
```bash
# Установить .deb пакет
sudo dpkg -i info-user-agent_1.0.0_all.deb
sudo dpkg -i info-user-agent_1.0.3_all.deb
# Настроить сервер и токен (интерактивно)
sudo info-user-agent-setup
@@ -84,7 +93,7 @@ sudo info-user-agent-setup
sudo nano /opt/info-user-agent/config.json
```
Либо через репозиторий (добавив его в `/etc/apt/sources.list.d/`).
Либо через собственный apt-репозиторий, если он настроен на сервере.
### Вручную (любой Linux)
@@ -113,10 +122,13 @@ sudo bash install.sh
- Имя хоста, текущий пользователь, локальный IP
- Операционная система
- Uptime
- Загрузка CPU и RAM
- Загрузка CPU
- RAM: процент, использовано/доступно/всего в GB
- Swap: процент, использовано/свободно/всего в GB
- Информация по дискам
- Температура CPU (если доступна)
- Top-10 процессов по CPU
- Top-10 процессов по CPU/RAM
- Активные пользовательские сессии (`who -u`)
## API
@@ -124,11 +136,31 @@ sudo bash install.sh
- `GET /api/computers` — список компьютеров (с фильтрами `status`, `user`, `search`, `sort`, `order`)
- `GET /api/computers/export/csv` — экспорт в CSV
- `GET /api/computers/{id}` — детали ПК с историей
- `DELETE /api/computers/{id}` — удалить ПК (admin)
- `GET /api/notifications` — уведомления
- `POST /api/notifications/{id}/read` — отметить прочитанным
- `POST /api/notifications/read-all` — отметить все прочитанными
- `GET /api/audit` — аудит-лог (admin)
- `GET /api/settings` — runtime-настройки (admin)
- `POST /api/settings` — изменить runtime-настройки (admin)
- `POST /api/auth/login` — вход в веб-интерфейс
- `POST /api/auth/register` — регистрация нового пользователя (viewer)
- `POST /api/auth/register` — регистрация нового пользователя (только если ещё нет admin)
- `GET /api/auth/users` — список пользователей (admin)
- `POST /api/auth/users/{id}/role` — сменить роль (admin)
- `DELETE /api/auth/users/{id}` — удалить пользователя (admin)
## Runtime-настройки
Администратор может менять настройки прямо в веб-интерфейсе (`/admin/settings`):
- `AGENT_TOKEN` — токен для агентов
- `OFFLINE_THRESHOLD_MINUTES` — через сколько минут без heartbeat ПК считается офлайн
- `NOTIFICATION_WEBHOOK_URL` — URL для webhook-уведомлений
- `NOTIFICATION_TELEGRAM_BOT_TOKEN` — токен Telegram-бота
- `NOTIFICATION_TELEGRAM_CHAT_ID` — ID чата для Telegram
- `TIMEZONE` — часовой пояс для отображения времени в веб-интерфейсе
Значения из БД переопределяют `.env` во время работы сервера.
## Уведомления об офлайн-ПК
@@ -159,6 +191,13 @@ sudo bash install.sh
- [X] Уведомления об офлайн-ПК (in-app + webhook + Telegram)
- [X] Экспорт в CSV
- [X] JWT-авторизация
- [X] Ролевая модель admin/viewer
- [X] Аудит-лог
- [X] Runtime-настройки через веб
- [X] Активные пользовательские сессии
- [X] RAM и swap в GB/%
- [X] График swap
- [X] Часовой пояс в веб-интерфейсе
- [ ] Email-уведомления (SMTP)
- [ ] Интеграция с Telegram-ботом (двусторонняя)
- [ ] Ролевая модель для уведомлений (какие роли получают какие типы уведомлений)