105 lines
3.6 KiB
Markdown
105 lines
3.6 KiB
Markdown
# 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` только при необходимости.
|