Update README with current features: sessions, timezone, RAM/swap, RBAC, audit
This commit is contained in:
@@ -1,26 +1,34 @@
|
|||||||
# InfoUser Monitor
|
# InfoUser Monitor
|
||||||
|
|
||||||
Мониторинг состояния ПК (Windows/Linux/macOS). Агент на каждом компьютере отправляет метрики на сервер раз в час, а веб-интерфейс показывает список машин, пользователей, IP, CPU/RAM, диски и процессы.
|
Мониторинг состояния ПК (Windows/Linux/macOS). Агент на каждом компьютере отправляет метрики на сервер раз в час, а веб-интерфейс показывает список машин, пользователей, IP, CPU/RAM/swap, диски, процессы и активные пользовательские сессии.
|
||||||
|
|
||||||
## Возможности
|
## Возможности
|
||||||
|
|
||||||
- **Дашборд** с фильтрами по статусу, пользователю и поиском по хосту/IP/OS
|
- **Дашборд** с фильтрами по статусу, пользователю и поиском по хосту/IP/OS
|
||||||
- **Графики** CPU/RAM за 24 часа на странице ПК
|
- **Детали ПК**: графики CPU/RAM/swap за 24 часа, активные сессии, топ процессов, история heartbeats
|
||||||
|
- **Активные сессии**: кто и с какого IP залогинен прямо сейчас
|
||||||
- **Уведомления** об офлайн-ПК (in-app + webhook + Telegram)
|
- **Уведомления** об офлайн-ПК (in-app + webhook + Telegram)
|
||||||
- **Экспорт** списка ПК в CSV
|
- **Экспорт** списка ПК в CSV
|
||||||
- **JWT-авторизация** с ролями admin/viewer
|
- **JWT-авторизация** с ролями admin/viewer
|
||||||
|
- **RBAC и аудит-лог**: управление пользователями, запись действий админов
|
||||||
|
- **Настройки через веб**: токен агента, порог офлайна, уведомления, часовой пояс
|
||||||
|
- **Часовой пояс**: хранение в UTC, отображение в выбранном поясе
|
||||||
|
- **RAM и swap**: использование в GB и процентах
|
||||||
|
|
||||||
## Структура
|
## Структура
|
||||||
|
|
||||||
```
|
```
|
||||||
info-user/
|
info-user/
|
||||||
├── server/ # FastAPI + веб-интерфейс
|
├── server/ # FastAPI + веб-интерфейс
|
||||||
│ ├── routes/
|
│ ├── routes/ # API и веб-роуты
|
||||||
│ ├── templates/
|
│ ├── templates/ # Jinja2-шаблоны
|
||||||
│ ├── static/
|
│ ├── static/ # CSS/JS
|
||||||
|
│ ├── database.py # SQLite и миграции
|
||||||
|
│ ├── models.py # SQLAlchemy-модели
|
||||||
|
│ ├── schemas.py # Pydantic-схемы
|
||||||
│ ├── Dockerfile
|
│ ├── Dockerfile
|
||||||
│ └── main.py
|
│ └── main.py
|
||||||
├── agent/ # Python-агент
|
├── agent/ # Python-агент (ручная установка)
|
||||||
│ ├── agent.py
|
│ ├── agent.py
|
||||||
│ ├── config.json
|
│ ├── config.json
|
||||||
│ └── install.sh
|
│ └── install.sh
|
||||||
@@ -28,6 +36,7 @@ info-user/
|
|||||||
├── data/ # SQLite БД (создаётся при запуске)
|
├── data/ # SQLite БД (создаётся при запуске)
|
||||||
├── docker-compose.yml
|
├── docker-compose.yml
|
||||||
├── nginx.conf
|
├── nginx.conf
|
||||||
|
├── info-user-agent_*.deb
|
||||||
└── README.md
|
└── README.md
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -75,7 +84,7 @@ http://localhost
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Установить .deb пакет
|
# Установить .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
|
sudo info-user-agent-setup
|
||||||
@@ -84,7 +93,7 @@ sudo info-user-agent-setup
|
|||||||
sudo nano /opt/info-user-agent/config.json
|
sudo nano /opt/info-user-agent/config.json
|
||||||
```
|
```
|
||||||
|
|
||||||
Либо через репозиторий (добавив его в `/etc/apt/sources.list.d/`).
|
Либо через собственный apt-репозиторий, если он настроен на сервере.
|
||||||
|
|
||||||
### Вручную (любой Linux)
|
### Вручную (любой Linux)
|
||||||
|
|
||||||
@@ -113,10 +122,13 @@ sudo bash install.sh
|
|||||||
- Имя хоста, текущий пользователь, локальный IP
|
- Имя хоста, текущий пользователь, локальный IP
|
||||||
- Операционная система
|
- Операционная система
|
||||||
- Uptime
|
- Uptime
|
||||||
- Загрузка CPU и RAM
|
- Загрузка CPU
|
||||||
|
- RAM: процент, использовано/доступно/всего в GB
|
||||||
|
- Swap: процент, использовано/свободно/всего в GB
|
||||||
- Информация по дискам
|
- Информация по дискам
|
||||||
- Температура CPU (если доступна)
|
- Температура CPU (если доступна)
|
||||||
- Top-10 процессов по CPU
|
- Top-10 процессов по CPU/RAM
|
||||||
|
- Активные пользовательские сессии (`who -u`)
|
||||||
|
|
||||||
## API
|
## API
|
||||||
|
|
||||||
@@ -124,11 +136,31 @@ sudo bash install.sh
|
|||||||
- `GET /api/computers` — список компьютеров (с фильтрами `status`, `user`, `search`, `sort`, `order`)
|
- `GET /api/computers` — список компьютеров (с фильтрами `status`, `user`, `search`, `sort`, `order`)
|
||||||
- `GET /api/computers/export/csv` — экспорт в CSV
|
- `GET /api/computers/export/csv` — экспорт в CSV
|
||||||
- `GET /api/computers/{id}` — детали ПК с историей
|
- `GET /api/computers/{id}` — детали ПК с историей
|
||||||
|
- `DELETE /api/computers/{id}` — удалить ПК (admin)
|
||||||
- `GET /api/notifications` — уведомления
|
- `GET /api/notifications` — уведомления
|
||||||
- `POST /api/notifications/{id}/read` — отметить прочитанным
|
- `POST /api/notifications/{id}/read` — отметить прочитанным
|
||||||
- `POST /api/notifications/read-all` — отметить все прочитанными
|
- `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/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] Уведомления об офлайн-ПК (in-app + webhook + Telegram)
|
||||||
- [X] Экспорт в CSV
|
- [X] Экспорт в CSV
|
||||||
- [X] JWT-авторизация
|
- [X] JWT-авторизация
|
||||||
|
- [X] Ролевая модель admin/viewer
|
||||||
|
- [X] Аудит-лог
|
||||||
|
- [X] Runtime-настройки через веб
|
||||||
|
- [X] Активные пользовательские сессии
|
||||||
|
- [X] RAM и swap в GB/%
|
||||||
|
- [X] График swap
|
||||||
|
- [X] Часовой пояс в веб-интерфейсе
|
||||||
- [ ] Email-уведомления (SMTP)
|
- [ ] Email-уведомления (SMTP)
|
||||||
- [ ] Интеграция с Telegram-ботом (двусторонняя)
|
- [ ] Интеграция с Telegram-ботом (двусторонняя)
|
||||||
- [ ] Ролевая модель для уведомлений (какие роли получают какие типы уведомлений)
|
- [ ] Ролевая модель для уведомлений (какие роли получают какие типы уведомлений)
|
||||||
|
|||||||
Reference in New Issue
Block a user