Fleet — Serverový agent
Fleet — Serverový agent
Section titled “Fleet — Serverový agent”Sencai Fleet je odlehčený Go binary, který instalujete na vaše servery (bare metal nebo VM). Po zaregistrování Fleet průběžně hlásí zpět do Sencai: softwarový inventář, stav patchů, CIS bezpečnostní benchmarky a výsledky spuštění runbooků. Přímo z Sencai UI lze také otevřít terminál v prohlížeči pro libovolný zaregistrovaný server.
Fleet funguje na libovolném linuxovém serveru — bare metal, cloudové VM i Kubernetes nody.
Co agent dělá
Section titled “Co agent dělá”- Softwarový inventář: výpis nainstalovaných balíčků přes
dpkg-query(Debian/Ubuntu) neborpm -qa(RHEL/Fedora), porovnaný proti endoflife.date kvůli EOL riziku - CIS benchmark: spouští Lynis CIS Level 1/2 hardening kontroly a hlásí skóre
- Stav patchů: identifikuje zastaralé balíčky a CVE zranitelnosti
- Terminál v prohlížeči: kliknutím na „Připojit” otevřete SSH relaci přímo v prohlížeči pro libovolný zaregistrovaný server
- Spouštění runbooků: vzdálené spuštění předschválených operačních úloh, podmíněné capability
runbook:execute - Karanténa: izolujte kompromitovaný server jedním kliknutím
- Heartbeat: odesílá ping o životnosti každých 30 sekund — Sencai detekuje výpadek serveru přibližně do 2 minut
Whitelist capabilities
Section titled “Whitelist capabilities”Fleet agenti startují s nulovými capabilities. Operátor musí explicitně povolit jednotlivé capabilities per agent (nebo per skupina agentů), než agent provede odpovídající scan nebo akci. Povolení se spravují jako záznamy agent-policy, konfigurované ze stránky Agenti (/gravity/agents) a ze stránky nastavení capabilities/politik /gravity/settings/agent-policies.
Dostupné capabilities:
| Capability | Co odemyká |
|---|---|
monitor | Sledování metrik/procesů/služeb (heartbeat data) |
patch_management:scan | Skenování dostupných aktualizací OS balíčků |
patch_management:apply | Aplikaci patchů |
inventory:scan | Sběr softwarového inventáře |
log_shipping:system | Odesílání systémových logů |
log_shipping:app | Odesílání aplikačních logů |
runbook:execute | Spouštění runbooků na hostu |
agent:update | Samo-aktualizaci binárky agenta |
Pokud capability nebyla povolena, agent daný scan nebo akci potichu přeskočí, místo aby hlasitě selhal — pokud se očekávaná data nezobrazují, zkontrolujte seznam povolených capabilities na stránce Agenti. Spuštění runbooku konkrétně vyžaduje povolenou capability runbook:execute, jinak na daném agentovi žádný runbook neproběhne.
Instalace agenta
Section titled “Instalace agenta”Prerekvizity
Section titled “Prerekvizity”- Linux server (amd64 nebo arm64)
- Odchozí síťový přístup na endpoint
agent-gatewayvaší organizace (výchozí port4400) - Root nebo sudo přístup na serveru
- Enrollment token od administrátora vaší organizace
Krok 1: Instalace
Section titled “Krok 1: Instalace”Doporučený způsob instalace je balíček .deb/.rpm pro vaši distribuci, sestavený přes nfpm. Alternativně použijte instalační skript:
curl -fsSL https://agent.sencai.space/install.sh \ | SENCAI_GATEWAY_URL=https://agent-gateway:4400 SENCAI_TOKEN=<vas-org-enrollment-token> bashTím se nainstaluje binary sencai-agent do /usr/local/bin/sencai-agent a vytvoří se systemd jednotka (sencai-agent.service).
Krok 2: Enrollment
Section titled “Krok 2: Enrollment”Pokud jste instalovali přes balíček .deb/.rpm, nebo chcete zaregistrovat ručně:
sudo sencai-agent enroll --gateway https://agent-gateway:4400 --token <vas-org-enrollment-token>Přepínače --url ani --name neexistují — enrollment přijímá pouze --gateway a --token.
Během enrollmentu:
- Agent odešle enrollment token spolu s hostname/OS/arch/verzí na endpoint
/enrollslužbyagent-gateway agent-gatewayvydá mTLS klientský certifikát a CA bundle a vrátí počáteční sadu povolených capabilities- Certifikáty a konfigurace se zapíšou do
/etc/sencai-agent/ - Po spuštění agent zahájí svou heartbeat smyčku
Server se na stránce Agenti (/gravity/agents) objeví krátce po prvním úspěšném heartbeatu.
Krok 3: Aktivace systemd služby
Section titled “Krok 3: Aktivace systemd služby”sudo systemctl enable --now sencai-agentsudo systemctl status sencai-agentAgent se automaticky spouští při startu systému a po výpadku sítě se znovu připojuje (s exponenciálním backoffem).
Nasazení na Kubernetes
Section titled “Nasazení na Kubernetes”Pro Kubernetes clustery řeší správu flotily na úrovni clusteru samostatný k8s-agent (Helm chart / manifesty) — jde o odlišnou komponentu od výše popsaného hostitelského binary sencai-agent. Konkrétní kroky enrollmentu pro k8s-agent konzultujte s administrátorem vaší organizace nebo v dokumentaci pro Kubernetes flotilu.
Pohled na zaregistrované agenty
Section titled “Pohled na zaregistrované agenty”Přejděte na Agenti (/gravity/agents) a zobrazí se všichni zaregistrovaní agenti s následujícími sloupci:
- hostname
- os
- version
- status
- last_heartbeat_at
- cloud_instance — odkaz na přiřazenou cloud instanci, pokud byl agent zaregistrován na instanci provisionované Sencai; agenti zaregistrovaní přímo na on-prem/bare-metal serverech zde místo prázdné pomlčky zobrazují explicitní chip On-Prem — jde o plně podporovanou cestu registrace, ne o chybějící/neúplný stav
Z této stránky lze také spravovat povolené capabilities per agent a spouštět dostupné akce (Připojit, Karanténa, Spustit runbook atd.).
Další stránky provozu flotily:
/gravity/fleet/quarantine— správa karantény/gravity/fleet/remote-exec— vzdálené spouštění příkazů/gravity/fleet/telemetry— telemetrie agentů/gravity/fleet/cohorts— správa kohort/vln rolloutu/gravity/fleet/kubernetes— pohled na Kubernetes flotilu/gravity/fleet/config— konfigurace flotily/gravity/fleet/releases— správa vydání agenta/gravity/fleet/secret-injections— správa injektáže secretů
Terminál v prohlížeči
Section titled “Terminál v prohlížeči”Otevření terminálové relace na server:
- Přejděte na Agenti (
/gravity/agents) - Klikněte na agenta
- Klikněte na Připojit — v prohlížeči se otevře terminálový panel
- Zadávejte příkazy — plnohodnotný interaktivní shell, stejně jako SSH
Pod povrchem váš prohlížeč otevře WebSocket spojení na ssh-proxy-service, který ověří váš JWT a otevře SSH spojení na cílový server přes tunel Fleet agenta. Všechny stisknuté klávesy a výstup jsou zaznamenané v audit trail.
Inventář a skenování
Section titled “Inventář a skenování”Softwarový inventář
Section titled “Softwarový inventář”S povolenou capability inventory:scan Fleet sbírá nainstalované balíčky každých 24 hodin pomocí dpkg-query (Debian/Ubuntu) nebo rpm -qa (RHEL/Fedora/CentOS/SUSE) — žádná závislost na osquery neexistuje. Sebrané balíčky se porovnávají proti endoflife.date, aby se označil EOL a brzy-EOL software.
Inventář zobrazíte na stránce Agenti po rozkliknutí konkrétního agenta.
CIS benchmark skeny
Section titled “CIS benchmark skeny”Lynis CIS skeny běží automaticky každých 24 hodin a na vyžádání. Výsledky zobrazují:
- Celkové CIS skóre (0–100 %)
- Stav splnění/nesplnění per kontrola
- Návrhy nápravných opatření pro selhávající kontroly
- Trend skóre v čase (zlepšující se / stabilní / zhoršující se)
Stav patchů
Section titled “Stav patchů”S povolenou capability patch_management:scan agent denně kontroluje dostupné aktualizace OS. Záložka Patche zobrazuje:
- Dostupné aktualizace per balíček
- CVE ID pro bezpečnostní patche
- Stáří patche (dny od vydání)
- Odhadovanou úroveň rizika (kritická / vysoká / střední / nízká)
Aplikace patchů vyžaduje samostatnou capability patch_management:apply.
Runbooky
Section titled “Runbooky”Runbooky jsou předpřipravené skripty, které lze spouštět na zaregistrovaných agentech. Nacházejí se na samostatné, top-level stránce Runbooky (/gravity/runbooks) — ne pod sekcí „Fleet”.
Typické příklady:
- Aktualizace systému
- Restart služby
- Sběr a zabalení logů
- Rotace certifikátů
- Vlastní skripty
Spuštění runbooku
Section titled “Spuštění runbooku”Agent musí mít povolenou capability runbook:execute (přes agent-policy, ze stránky Agenti nebo /gravity/settings/agent-policies), jinak žádost o spuštění runbooku nepřijme. Pokud capability chybí, agent-gateway žádost o spuštění rovnou odmítne.
Všechna spuštění runbooků jsou zaznamenána v audit trail: kdo je spustil, na kterém agentovi, výstup, exit kód a časové razítko.
Karanténa
Section titled “Karanténa”Pokud je server kompromitován nebo se chová abnormálně, karanténa ho izoluje na síťové úrovni:
- Přejděte na
/gravity/fleet/quarantine(nebo na řádek agenta na stránce Agenti) - Klikněte na Karanténa
agent-gatewayspustí na hostu agenta OS pravidloiptablesOUTPUT DROP, označené komentářem (sencai-quarantine-<agentID>), aby ho bylo možné později identifikovat a odstranit- Upozornění je odesláno administrátorům organizace
Karanténa je pouze pro Linux a vyžaduje, aby host agenta měl bezheslová (NOPASSWD) sudo práva pro iptables. Na ne-linuxových hostech karanténa selže s výslovnou chybou a nedojde k žádné úpravě systému — nejde o tichý no-op.
Uvolnění karantény: klikněte na Uvolnit karanténu po nápravě (vyžaduje odpovídající roli). Tím se odstraní označené pravidlo iptables.
Řešení problémů
Section titled “Řešení problémů”Q: Agent se zaregistroval, ale okamžitě je offline
A: Zkontrolujte, že agent service běží: sudo systemctl status sencai-agent. Zkontrolujte odchozí konektivitu na endpoint agent-gateway (výchozí port 4400). Prohlédněte logy: sudo journalctl -u sencai-agent -f.
Q: CIS scan neběží
A: Lynis musí být nainstalován na serveru. Nainstalujte ho přes správce balíčků: sudo apt install lynis nebo sudo yum install lynis.
Q: Terminál v prohlížeči zobrazuje „Connection failed”
A: Ujistěte se, že je agent online (nedávný heartbeat na stránce Agenti). Příchozí porty nejsou potřeba — pouze odchozí přístup ke gateway. Pokud stále selhává, zkontrolujte logy agenta.
Q: Po enrollmentu agenta nevidím
A: Počkejte na první heartbeat a obnovte stránku. Pokud stále chybí, zkontrolujte výstup příkazu enroll pro chyby. Časté: špatný nebo expirovaný enrollment token (tokeny jsou scopované na organizaci).
Q: Capability, kterou očekávám, nic nedělá
A: Nepovolené capabilities způsobí, že agent odpovídající scan nebo akci potichu přeskočí. Ověřte, že je capability pro daného agenta povolena přes /gravity/settings/agent-policies.
Q: Jak aktualizovat agenta?
A: Spusťte sencai-agent update na hostu, nebo znovu spusťte instalační skript / upgrade balíčku — agent podporuje ring-based rollout pro samo-aktualizace. Ověřte, že je povolena capability agent:update; systemd služba se po úspěšné aktualizaci automaticky restartuje.