Sistemos Architektūra

Sentinel APM (monitorsrv.com v2.5) yra autonominė On-Premise telemetrijos, agentų valdymo ir kibernetinio saugumo platforma, suprojektuota veikti pilnai izoliuotoje kliento infrastruktūroje.

Architektūros pagrindas: Visi telemetrijos įrašai, SSH sesijos, procesų žurnalai ir tinklo srauto duomenys lieka jūsų privačioje infrastruktūroje (PostgreSQL / ClickHouse / Redis). monitorsrv.com licencijų serveris atlieka tik Ed25519 kriptografinį parašo tvirtinimą ir versijų atnaujinimus.

Pagrindiniai Komponentai

  • Go Centrinis Serveris: Ypatingai greitas, mažai resursų reikalaujantis serveris (Golang), aptarnaujantis tūkstančius lygiagrečių agentų ryšių per atvirkštinius WebSocket kanalus.
  • React Vartotojo Sąsaja: Šiuolaikiškas Shadcn/UI valdymo pultas su šviesios/tamsios temos palaikymu, realaus laiko grafikais ir integruotu Web SSH terminalu.
  • ClickHouse BigData Telemetrija: Stulbinančio greičio stulpelinė duomenų bazė metrikų saugojimui ir momentiniam agregavimui.
  • PostgreSQL & Redis: Saugi reliacinė duomenų bazė konfigūracijoms bei greita spartinančioji atmintis sesijoms.

Ed25519 Kriptografinis Licencijavimo Variklis

Licencijos pasirašomos asimetriniu Ed25519 raktu. Licencijos raktas turi griežtą struktūrą:

MSRV.<Base64URL_Payload>.<Base64URL_Ed25519_Signature>

Konteineryje integruotas viešasis raktas leidžia sistemai veikti visiškai izoliuotame tinkle (Air-Gapped) be interneto ryšio, automatiškai patvirtinant licencijos galiojimą ir mazgų kvotą.

Saugus Reversinis WebSocket/TLS Tunelis

Agentams nereikia atverti jokių įeinančių prievadų (No Inbound Ports). Kiekvienas agentas pats inicijuoja išeinantį saugų TLS wss:// ryšį į jūsų centrinį serverį. Šiuo kanalu perduodama telemetrija, vykdomos Web SSH sesijos ir saugus nuotolinis darbalaukis.

Serverio Diegimas (Docker & Compose)

1. Greitasis Diegimas (1-Liner Komanda)

Oficialus diegimo skriptas automatiškai patikrina Docker, autorizuojasi privačiame registre, sukonfigūruoja failus ir paleidžia Sentinel APM konteinerį:

curl -sSL https://monitorsrv.com/install.sh | bash -s -- --license="MSRV.eyJ..."

2. Docker Registry Autorizacija

Oficialūs Sentinel atvaizdai (registry.monitorsrv.com/sentinel-server:v2.5.0 ir :latest) saugomi privačiame registre. Prieš vykdant rankinį diegimą, autorizuokitės:

echo "SentinelDeployClient2026!" | docker login registry.monitorsrv.com -u client-deploy --password-stdin

3. Pilnas Gamybinis docker-compose.yml

Gamybinei aplinkai rekomenduojamas pilnas kaminas su PostgreSQL, ClickHouse ir Redis:

services:
  sentinel-server:
    image: registry.monitorsrv.com/sentinel-server:v2.5.0
    container_name: sentinel-server
    restart: unless-stopped
    ports:
      - "8080:8080"
      - "443:443"
    environment:
      - LICENSE_KEY=JŪSŲ_MSRV_LICENCIJOS_RAKTAS
      - POSTGRES_DSN=postgres://sentinel:secret123@postgres:5432/sentinel_db?sslmode=disable
      - CLICKHOUSE_ADDR=clickhouse:9000
      - REDIS_ADDR=redis:6379
      - PUBLIC_BASE_URL=https://sentinel.jusu-domenas.lt
    depends_on:
      - postgres
      - clickhouse
      - redis
    volumes:
      - ./data:/var/lib/sentinel

  postgres:
    image: postgres:16-alpine
    container_name: sentinel-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: sentinel_db
      POSTGRES_USER: sentinel
      POSTGRES_PASSWORD: secret123
    volumes:
      - ./pgdata:/var/lib/postgresql/data

  clickhouse:
    image: clickhouse/clickhouse-server:24.3-alpine
    container_name: sentinel-clickhouse
    restart: unless-stopped
    volumes:
      - ./chdata:/var/lib/clickhouse

  redis:
    image: redis:7-alpine
    container_name: sentinel-redis
    restart: unless-stopped
    volumes:
      - ./redisdata:/data

Paleidimas fone:

docker compose up -d

Pradinis Saugumo Konfigūravimas

1. Numatytieji Prisijungimo Duomenys

Prisijungimo URL: http://<SERVER_IP>:8080/login
Numatytasis vartotojas: admin
Numatytasis slaptažodis: admin123
Svarbu: Prisijungę nedelsiant pakeiskite numatytąjį slaptažodį skiltyje Vartotojai (Users) → Redaguoti profilį!

2. Dviguba Autentifikacija (2FA)

Sentinel APM palaiko pramoninio standarto 2FA apsaugą:

  • TOTP Programėlė (Rekomenduojama): Google Authenticator, Microsoft Authenticator, 1Password ar Bitwarden. Aktyvuojama nuskaičius QR kodą profilio nustatymuose.
  • Email OTP: Vienkartiniai 6 skaitmenų kodai, siunčiami į vartotojo el. paštą kiekvieno autorizacijos bandymo metu.

3. Rolių Valdymas (RBAC)

admin: Pilna prieiga prie serverio nustatymų, licencijų, naudotojų valdymo, Fleet Token generavimo ir sisteminio audito.
operator: Gali valdyti agentus, vykdyti Web SSH komandas, atlikti atnaujinimus ir valdyti ugniesienių taisykles.
viewer: Tik skaitymo (Read-Only) teisė peržiūrėti grafikus, topologijas ir telemetrijos žurnalus.

Sistemos Nustatymai ir Kliento Domenas

public_base_url ir Automatinis Domeno Parinkimas

Kad agentų diegimo komandos automatiškai generuotųsi su jūsų serverio viešuoju domenu ar IP adresu, nustatykite parametrą PUBLIC_BASE_URL (arba valdymo pulte Nustatymai → Sistemos Domenas):

PUBLIC_BASE_URL="https://sentinel.jusu-domenas.lt"

Jei parametras nenurodytas, sistema automatiškai nustato domeną pagal užklausos X-Forwarded-Host arba Host antraštes.

SMTP El. Paštas ir Mazgų Kvotos Stebėjimas

Skiltyje Nustatymai → El. Paštas (SMTP) sukonfigūruokite SMTP serverį pranešimų apie incidentus ir slaptažodžio atkūrimo siuntimui.

Kvotos stebėjimas: Sentinel serveris realiu laiku seka aktyvių agentų skaičių. Pasiekus 90% licencijos limito, administratoriai gauna įspėjimą el. paštu bei pranešimą valdymo pulto būsenos juostoje.

Agento Diegimas (Fleet Deployment)

Sentinel APM Agentas (monitor-agent) yra parašytas Go 1.24 (Golang) kalba, veikia kaip vienas nepriklausomas statinis binarinis failas, naudoja vos 0.1% CPU ir ~12 MB RAM.

>_ Linux (Debian / Ubuntu / RHEL / Alpine / Proxmox)
SYSTEMD SERVICE

Atsisiunčia į /usr/local/bin/monitor-agent ir sukuria automatiškai startuojančią systemd tarnybą:

curl -sSL https://<DOMENAS>/install.sh | sudo bash -s -- --token="<FLEET_TOKEN>" --group="Production Servers" --env="production" --tags="production,web"

Pavyzdys: curl -sSL https://monitor.tweb.lt/install.sh | sudo bash -s -- --token="tok_live_57c29b8a0166c4fcf5c7644220d27642" --group="Production Servers" --env="production" --tags="production,web"

⊞ Windows Server / Windows 10 / 11 (PowerShell)
WINDOWS SERVICE

Įdiegiama į Program Files/MonitorAgent ir registruojama kaip foninė Windows tarnyba (PowerShell su Administratoriaus teisėmis):

irm https://<DOMENAS>/install.ps1 | iex; Install-MonitorAgent -ServerUrl "https://<DOMENAS>" -Token "<FLEET_TOKEN>" -GroupName "Production Servers" -Environment "production" -Tags "production,web"

Pavyzdys: irm https://monitor.tweb.lt/install.ps1 | iex; Install-MonitorAgent -ServerUrl "https://monitor.tweb.lt" -Token "tok_live_57c29b8a0166c4fcf5c7644220d27642" -GroupName "Production Servers" -Environment "production" -Tags "production,web"

📥 Tiesioginiai Paruošti Binariniai Failai (v1.9.21)
Kompiliuoti su Go 1.24 • AMD64 Architektūra

Automatinis Agentų Atnaujinimas (Fleet Auto-Updates)

Išleidus naują agento versiją, centrinis serveris saugiu pasirašytu kanalu atnaujina agentus fone be jokio rankinio įsikišimo ar paslaugos sutrikdymo.

Pagrindinės Funkcijos

📈 Realaus Laiko Grafikai

CPU, RAM, disko I/O, tinklo pralaidumo ir eBPF procesų metrikos atnaujinamos kas 1 sekundę.

💻 Web SSH & Remote Desktop

Zero-Config nuotolinis prisijungimas prie Linux terminalo ir Windows darbalaukio tiesiai naršyklėje.

🗺️ SVG Tinklo Topologijos

Automatinis infrastruktūros mazgų ryšių žemėlapis su aktyvių srautų ir gedimų vizualizacija.

🛡️ Threat Center & UniFi Sync

CrowdSec grėsmių žvalgyba, eBPF failų vientisumas (FIM) ir momentinis IP blokavimas UniFi / Mikrotik.

Dažniausiai Užduodami Klausimai (D.U.K. / FAQ)

Ar reikia atverti įeinančius prievadus (ports) agentų serveriuose? ▼

Ne! Visi agentai jungiasi per atvirkštinį (reverse) WebSocket/TLS kanalą tiesiai į jūsų centrinį serverį. Agentų serveriai gali būti už griežčiausių NAT ar ugniasienių be viešo IP.

Kaip veikia licencijos mazgų kvota? ▼

Kvota skaičiuoja vienu metu aktyviai prisijungusius agentus. Jei serveris išjungiamas arba agentas pašalinamas, vieta kvotoje atsilaisvina automatiškai.

Ar sistema gali veikti pilnai uždarame tinkle be interneto ryšio (Air-Gapped)? ▼

Taip. Sentinel APM konteineryje integruotas Ed25519 viešasis kriptografinis raktas, todėl licencijos parašas tikrinamas vietoje be interneto ryšio.

Ką daryti gavus „no basic auth credentials“ klaidą diegiant Docker? ▼

Privatus Docker registras reikalauja autorizacijos. Prieš vykdydami docker compose up, atlikite echo "SentinelDeployClient2026!" | docker login registry.monitorsrv.com -u client-deploy --password-stdin.