Changes between Version 1 and Version 2 of NETIntel-СЦ1-Испраќање-податоци
- Timestamp:
- 01/21/26 00:48:50 (3 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
NETIntel-СЦ1-Испраќање-податоци
v1 v2 2 2 3 3 == Опис 4 Клиентската апликација периодично испраќа JSON пакет со системски метрики, процеси, Sysmon настани и мрежни конекции до сервер. 4 Клиентската апликација (Agent/Collector) периодично испраќа JSON пакет со системски 5 перформансни метрики, активни процеси, безбедносни (Sysmon) настани и мрежни конекции 6 до серверот. Автентикацијата на клиентот се врши преку временски валиден Env Token. 5 7 6 8 == Актери 7 * Клиентска апликација (Agent /Collector)9 * Клиентска апликација (Agent / Collector) 8 10 * Сервер (API) 9 11 10 12 == Предуслови 11 * Постојат environment и валиден token во env_tokens. 12 * Клиентот го праќа header-от **X-Env-Token**. 13 * Постојно environment поврзано со одреден tenant. 14 * Валиден и неистечен token зачуван во табелата `env_tokens`. 15 * Клиентот го испраќа HTTP header-от `X-Env-Token`. 13 16 14 17 == Главен тек 15 1. Клиентот повикува POST /receive со JSON payload. 16 2. Серверот го валидира X-Env-Token и го одредува env_name. 17 3. Серверот проверува дали компјутерот постои во computers (по name). 18 4. Ако постои → UPDATE computers (last_seen, ip, os, sysmon_available, env_name). 19 5. Ако не постои → INSERT во computers. 20 6. INSERT во computer_history (метрики). 21 7. INSERT во computer_processes (процеси). 22 8. INSERT во sysmon_events (Sysmon настани). 23 9. INSERT во network_connections (конекции). 24 10. Серверот враќа JSON {status: success, computer_id, event_count}. 18 1. Клиентската апликација повикува `POST /receive` со JSON payload. 19 2. Серверот го валидира `X-Env-Token` и од табелата `env_tokens` ги добива 20 `env_name` и `tenant_id`. 21 3. Серверот проверува дали компјутерот постои во табелата `computers` 22 (според `name` и `tenant_id`). 23 4. Доколку компјутерот постои, серверот ги ажурира следните полиња: 24 * `last_seen` 25 * `ip` 26 * `os` 27 * `sysmon_available` 28 * `env_name` 29 5. Доколку компјутерот не постои, серверот креира нов запис во табелата `computers` 30 со поврзување кон соодветниот `tenant_id` и `env_name`. 31 6. Серверот внесува нов запис во `computer_history` со перформансните метрики. 32 7. Серверот внесува записи во `computer_processes` за тековните процеси. 33 8. Серверот внесува записи во `sysmon_events` за безбедносните настани. 34 9. Серверот внесува записи во `network_connections` за активните мрежни конекции. 35 10. Серверот враќа JSON одговор од облик: 36 `{ status: "success", computer_id, event_count }`. 25 37 26 38 == Алтернативни текови / Грешки 27 * Не ма token или невалиден token → 401 Missing or invalid X-Env-Token28 * Не ма data во body → 400 No data29 * Проблем со DB → 500 error39 * Недостасува или е невалиден `X-Env-Token` → HTTP 401 (Unauthorized) 40 * Недостасува или е невалиден JSON payload → HTTP 400 (Bad Request) 41 * Проблем при запишување во база на податоци → HTTP 500 (Internal Server Error) 30 42 31 43 == Табели што се засегаат … … 35 47 * sysmon_events 36 48 * network_connections 49 * env_tokens 37 50 38 51 == Пример SQL (логички) 39 * INSERT/UPDATE во computers 40 * INSERT во останатите табели 52 * INSERT / UPDATE во `computers` 53 * INSERT во `computer_history` 54 * INSERT во `computer_processes` 55 * INSERT во `sysmon_events` 56 * INSERT во `network_connections`
