Initial commit: InfoUser Monitor with FastAPI, agent, Docker, JWT auth, notifications, filters and CSV export

This commit is contained in:
2026-07-16 11:53:51 +07:00
commit cf2727da2b
31 changed files with 1957 additions and 0 deletions
+104
View File
@@ -0,0 +1,104 @@
# InfoUser Agent
Агент собирает базовые метрики компьютера и отправляет их на сервер InfoUser Monitor каждый час.
## Установка (Linux)
```bash
cd agent
sudo bash install.sh
```
Установка выполняет следующие действия:
1. Копирует файлы `agent.py`, `config.json`, `requirements.txt` в `/opt/info-user-agent/`.
2. Устанавливает Python-зависимости.
3. Создаёт `systemd` сервис `info-user-agent.service` и таймер `info-user-agent.timer`.
4. Запускает таймер и включает его автозапуск при загрузке.
Проверка статуса:
```bash
sudo systemctl status info-user-agent.timer
sudo systemctl list-timers info-user-agent.timer
```
## Ручной запуск
```bash
python3 agent.py
```
## Конфигурация
Файл `config.json`:
```json
{
"server_url": "http://your-server-ip-or-hostname",
"agent_token": "your-agent-token-here",
"interval_minutes": 60,
"send_public_ip": false
}
```
- `server_url` — адрес сервера InfoUser Monitor.
- `agent_token` — токен, должен совпадать с `AGENT_TOKEN` на сервере.
- `interval_minutes` — интервал отправки (при использовании Task Scheduler / cron вручную).
- `send_public_ip` — отправлять ли публичный IP (`true`/`false`).
## Собираемые данные
| Поле | Описание |
|------|----------|
| `hostname` | Имя компьютера |
| `username` | Имя текущего пользователя |
| `os_info` | Операционная система |
| `local_ip` | Локальный IP адрес |
| `public_ip` | Публичный IP (опционально) |
| `uptime_sec` | Время работы с момента загрузки |
| `cpu_percent` | Загрузка CPU, % |
| `ram_percent` | Загрузка RAM, % |
| `ram_total_gb` | Объём RAM в GB |
| `disk_info` | Список дисков с использованием |
| `cpu_temp` | Температура CPU, °C |
| `load_avg` | Средняя загрузка (Linux) |
| `processes` | Top-10 процессов по CPU |
## Установка на Windows
1. Установите Python 3.11+ и зависимости:
```powershell
pip install -r requirements.txt
```
2. Отредактируйте `config.json`.
3. Создайте задачу в Task Scheduler:
- **Trigger**: Daily, repeat every 1 hour.
- **Action**: `python.exe` с аргументом `C:\path\to\agent.py`.
- **Run with highest privileges** (опционально, для сбора данных всех пользователей).
## Установка на macOS
Аналогично Linux, но вместо systemd можно использовать `launchd` plist или cron:
```bash
0 * * * * /usr/bin/python3 /opt/info-user-agent/agent.py
```
## Логи и отладка
При ручном запуске ошибки выводятся в консоль. При установке через systemd журнал доступен:
```bash
sudo journalctl -u info-user-agent.service
```
## Безопасность
- Храните `agent_token` в секрете и не выкладывайте в публичные репозитории.
- Используйте HTTPS для `server_url` в production.
- Для публичного IP-адреса включайте `send_public_ip` только при необходимости.