wiki:UseCaseUC1PrototypeImplementation

Version 2 (modified by 231118, 6 hours ago) ( diff )

--

Use-case UC1 Prototype Implementation – Испраќање и обработка на податоци

Актер кој го иницира:

  • Клиентска апликација (Agent / Collector)

Други актери:

  • Администратор

Опис

Клиентската апликација периодично собира системски информации од компјутерот и ги испраќа до серверот преку POST барање. Серверот го валидира X-Env-Token, го пронаоѓа или креира компјутерот и ги зачувува сите примени информации во базата.

Сценарио

Чекор 1

Корисник

Клиентската апликација испраќа POST барање кон серверот со X-Env-Token и собраните податоци.

Систем

Го проверува токенот и го пронаоѓа Environment-от.

SQL

SELECT env_name,
       tenant_id
FROM env_tokens
WHERE token = ?
AND (expires_at IS NULL
     OR expires_at > datetime('now'))
LIMIT 1;

Чекор 2

Системот проверува дали компјутерот веќе постои.

SQL

SELECT id
FROM computers
WHERE tenant_id = ?
AND name = ?
LIMIT 1;

Чекор 3

Доколку компјутерот веќе постои, се ажурираат неговите информации.

SQL

UPDATE computers
SET
    user=?,
    ip=?,
    os=?,
    last_seen=?,
    sysmon_available=?,
    env_name=?
WHERE
    id=?
AND
    tenant_id=?;

Доколку компјутерот не постои, се додава нов запис.

SQL

INSERT INTO computers
(
tenant_id,
env_name,
name,
user,
ip,
os,
first_seen,
last_seen,
sysmon_available
)
VALUES
(
?,
?,
?,
?,
?,
?,
?,
?,
?
);

Чекор 4

Системот ги зачувува моменталните перформанси.

SQL

INSERT INTO computer_history
(
computer_id,
cpu_usage,
ram_usage,
disk_usage,
network_sent_mb,
network_recv_mb,
timestamp
)
VALUES
(
?,
?,
?,
?,
?,
?,
?
);

Чекор 5

Системот ги освежува тековните процеси.

Најпрво ги брише старите.

SQL

DELETE
FROM computer_processes_current
WHERE computer_id=?;

Потоа ги внесува новите.

SQL

INSERT INTO computer_processes_current
(
computer_id,
pid,
name,
cpu_percent,
memory_mb,
username,
cmdline,
timestamp
)
VALUES
(
?,
?,
?,
?,
?,
?,
?,
?
);

Чекор 6

Доколку е овозможено чување на историја, процесите се зачувуваат и во history.

SQL

INSERT INTO computer_processes_history
(
computer_id,
pid,
name,
cpu_percent,
memory_mb,
username,
cmdline,
timestamp
)
VALUES
(
?,
?,
?,
?,
?,
?,
?,
?
);

Чекор 7

Системот ги зачувува Sysmon настаните.

SQL

INSERT INTO sysmon_events
(
computer_id,
event_id,
event_type,
message,
timestamp,
details
)
VALUES
(
?,
?,
?,
?,
?,
?
);

Чекор 8

Системот ги зачувува мрежните конекции.

SQL

INSERT INTO network_connections
(
computer_id,
pid,
local_address,
remote_address,
status,
process_name,
timestamp
)
VALUES
(
?,
?,
?,
?,
?,
?,
?
);

Чекор 9

Системот успешно ја обработува испратената информација и враќа успешен одговор.

Attachments (9)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.