UI: explain scan pipeline, live status line, device table; README scan logic.
Made-with: Cursor
This commit is contained in:
@@ -80,6 +80,20 @@ http://localhost:8080/
|
||||
По умолчанию используется `STORE_BACKEND=memory`.
|
||||
SNMP-проверка по умолчанию включена (`SNMP_ENABLED=true`, community `public`).
|
||||
|
||||
## Логика одного scan (что делает программа)
|
||||
|
||||
Один запуск scan — это **одна фоновая задача** (`runner`), без отдельных фаз «только ping» / «только LLDP» в API.
|
||||
|
||||
1. По полю `cidrs` строится список IP (с учётом `exclude_ips`).
|
||||
2. Параллельно (ограничение `max_parallel_hosts`) для каждого IP:
|
||||
- **ping** (ICMP через системную утилиту `ping`);
|
||||
- если хост «вверх» и включён port-scan — проверка **TCP-портов** из `options.ports`;
|
||||
- если хост «вверх» и `SNMP_ENABLED=true` — **SNMP v2c** (sysName, sysDescr, sysObjectID) и сразу **обход LLDP-MIB** (соседи, локальный/удалённый порт и т.д.). Это не отдельная кнопка: LLDP выполняется в том же проходе, что и базовый SNMP.
|
||||
3. Статус задачи: `queued` → `running` (поле `progress` 0…100, `stats.hosts_total` / `stats.hosts_up`) → `done` или `failed`.
|
||||
4. Результаты читаются через API: `/hosts`, `/ports`, `/snmp`, `/lldp`, агрегированный граф — `/topology`.
|
||||
|
||||
В веб-UI после **«Создать scan и ждать»** опрашивается статус, показывается расшифровка в строке состояния, по завершении обновляется таблица **найденных устройств** (ping + SNMP) и строится граф по кнопке **«Загрузить»** (или автоматически после ожидания).
|
||||
|
||||
## PostgreSQL без Docker
|
||||
|
||||
### Вариант A: macOS (Homebrew)
|
||||
|
||||
Reference in New Issue
Block a user