Update README with current features: sessions, timezone, RAM/swap, RBAC, audit
This commit is contained in:
@@ -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-ботом (двусторонняя)
|
||||
- [ ] Ролевая модель для уведомлений (какие роли получают какие типы уведомлений)
|
||||
|
||||
Reference in New Issue
Block a user