Initial commit: InfoUser Monitor with FastAPI, agent, Docker, JWT auth, notifications, filters and CSV export
This commit is contained in:
@@ -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` только при необходимости.
|
||||
Reference in New Issue
Block a user