Sentinel Commander β User Guide (v2026.06.024)¶
Intended for operators, administrators, and security technicians interacting with Sentinel via the web interface or the mobile app.
Access & Roles (RBAC)¶
The web interface runs on port 5050 and requires authentication. LDAP is supported (lldap and OpenLDAP).
| Role | Permissions |
|---|---|
| viewer | Read incidents and telemetry, use AI chat (RAG queries) |
| admin | Everything above + Approve/Reject Autofix, SSH modal, batch SSH, manage agents |
| superadmin | Everything above + Settings, API keys, bulk delete, audit trail, DB management |
Login¶
Standard: username + password form. LDAP: same form β credentials are validated against the configured LDAP server.
Two-factor authentication (2FA/TOTP): if enabled for your account, a second step asks for a 6-digit code from Google Authenticator / Authy. Enrollment is done in Settings β 2FA β scan the QR code with your authenticator app and confirm with one code. An admin can disable 2FA for any user who lost their device.
Brute-force protection: 5 failed attempts β IP banned for 5 minutes (configurable). This applies to the login form, Basic auth, and agent auto-registration alike.
Session: absolute timeout 12 h; your role is re-checked from the database every 5 minutes, so a role change takes effect without re-login.
The login page links to the public /status page (read-only fleet overview, auto-refresh every 30 s, no login required).
Dashboard Overview¶
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SENTINEL COMMANDER v2026.06 [CS/EN] [π] [?] (User) (Alerts) β
βββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββ€
β SYSTEM MONITOR β ACTIVE INCIDENTS β
β CPU ββββββ 45% β [!] security brute-force on hpc-gw β
β RAM ββββββ 75% β [πͺ] [π] [π] [ββ] [#tag] [π] β
β Disk 20% β [!] infra DISK_FULL proxmox01:/data 92% β
β AI latency 1.2s β acknowledged β [#storage] β
β RAG: Ready β β flapping widget β β health trend β β
βββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββ€
β AI CHAT [suggested: "What changed overnight?"] [LIVE] β
β Sentinel: Detected memory error on node-01. β
β > Enter query, command, or drag&drop a log file... β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
UI panels¶
| Panel | Content |
|---|---|
| System Monitor | CPU/RAM/disk, AI latency, queue depth, RAG status, agent count |
| Active Incidents | Cards per channel: security Β· infra Β· agents Β· root |
| AI Chat | RAG queries, chat commands, suggested query chips, LIVE context tag, drag&drop log upload |
| Health trend | 7-day line chart of fleet health score + issue count |
| Flapping widget | Issues that keep re-appearing, sorted by frequency |
| Topology | Force-directed agent graph (Tools tab) |
| Telemetry | Interactive charts with min/max/avg, heatmaps, trend charts |
Charts: all major charts (dashboard trend, donut, alert timeline, agent sparklines) are interactive β hover shows exact values, a dashed line marks the average, and a min/max/avg badge summarizes the window.
i18n: Toggle between Czech and English via the CS/EN button in the top bar. Dark/light theme via the π icon. Both preferences persist in localStorage. Display timezone is configurable server-side (DISPLAY_TZ).
Dashboard widgets can be individually shown/hidden in dashboard settings; a live clock sits in the header.
Issue Cards & Workflow¶
Every detected incident appears as a card. The full workflow:
Card actions¶
| Button | Action |
|---|---|
| πͺ Autofix | Request AI remediation proposal |
| π Ignore | Suppress this incident (adds to ignore list) |
| π Delete | Hard delete from DB (reappears if log still produces it) |
| ββ Acknowledge | Mark as seen β card turns yellow, escalation timer resets |
| #tag | Add or edit tags on the incident |
| π Notifications | Open per-detector/channel notification settings |
| β Fullscreen | Open the issue in a fullscreen overlay (detail + AI analysis + comments + similar incidents, Esc closes) |
| βΎ Collapse | Collapse card to summary view |
| β― History | Open incident timeline (comments, auto-rem, acknowledge events) |
Additional card features:
- Inline comments β write a comment directly on the card; auto-refresh never wipes text you are typing.
- Colored labels β assign color labels for visual triage.
- Copy as Markdown β one click copies a Markdown summary of the issue (handy for tickets/chat).
- Occurrence counter β repeated detections increment a counter instead of creating duplicates.
- Mobile swipe β swipe right = acknowledge, swipe left = delete.
- Virtual scroll β long lists load 50 cards at a time with a "Load more" button.
Bulk operations & keyboard shortcuts¶
| Shortcut | Action |
|---|---|
Alt+A | Bulk acknowledge selected issues |
Alt+E | Export selected issues to CSV |
Alt+F | Focus the issue filter |
Esc | Close the topmost modal |
? | Show shortcut overlay |
Issue tagging¶
Type #tag in the tag input, or define auto-tag rules in config:
Tags are searchable and shown in the tag cloud panel.
Escalation badges¶
If an issue stays unresolved beyond the configured time, its severity rises automatically and a timer badge appears: β± 3h active. Escalation rules are set per channel in config.yaml. Issue lifecycle transitions (CREATED / ACKNOWLEDGED / RESOLVED) can additionally fire webhooks, and critical issues can be mirrored to Gitea as repository issues.
Autofix β Approving AI Proposals¶
- Click πͺ Autofix on an incident card (or type
autofixin chat). - AI analyses the log context and generates a bash command.
- A "Pending Action" modal appears with the proposed command, risk score, and dry-run preview.
- Click β Approve β command executes via SSH on the target node. Click β Reject β proposal is discarded.
- On success: incident enters
validatingstate, thenresolvedonce the detector confirms. Output is shown even for silent commands (exit 0, no output) and the modal stays open until you read the result.
Commands must be on the
allowed_commandsallowlist inconfig.yaml. Blocked commands are automatically rejected regardless of admin input β the allowlist is pre-validated before any SSH connection is made.
SSH Jump Host: If the target node is behind a bastion, Autofix automatically uses ProxyJump.
SSH Modal & Batch SSH (admin+)¶
Direct SSH access to any agent from the Web UI without going through the Autofix pipeline:
- Click any agent in the Agents view β open the agent detail modal.
- Click SSH button (requires
adminorsuperadmin). - Type commands β output streams live in the modal.
- All commands are logged in the audit trail.
Batch SSH: the "Batch SSH" modal lets you run one allowlisted command on up to 50 agents in parallel (checkbox list with online/offline indicators); results are shown per host with OK/FAIL colors. Each host has its own 15 s timeout so one stuck node cannot block the batch.
SSH host keys: the agent detail shows the recorded known_hosts keys with Rescan and Delete actions β host keys are pinned (accept-new), not blindly trusted.
Agent Detail¶
The agent modal aggregates everything about one node:
| Section | Content |
|---|---|
| Telemetry | CPU/RAM/disk sparklines with min/max/avg, anomaly markers |
| Health score | Composite 0β100 score with AβD grade |
| Packages | On-demand package inventory (dpkg/rpm) with live filter |
| CVE scan | Pending security updates via apt/dnf over SSH |
| HW metrics | Network throughput, GPU (nvidia/rocm), disk SMART, UPS status |
| Scheduled actions | Pending/planned actions for this host |
| Maintenance windows | Per-host snooze windows with pre-filled hostname |
| Heartbeat timeout | Per-agent override (30β86400 s) or global default |
| Thresholds | Per-agent CPU/RAM/disk alert rules with quick-buttons (CPU > 90 %, RAM > 90 %, Disk > 85 %) β enforced server-side on every ingest |
| SSH keys | known_hosts entries, rescan/delete |
| Deploy helper | One-liner install command generator |
Registration: the token modal shows the agent token with a copy button and a QR code ({hostname, token, ingest_url}) for phone-assisted setup. Superadmin can bulk-rotate all agent tokens.
AI Chat Commands¶
| Command | Role | Action |
|---|---|---|
status / stav | all | Full aggregated incident overview in chat |
sys | all | Live system monitor widget inserted into chat |
pending | all | List Pending Actions (Approve/Reject from chat) |
show_ignored | all | List suppressed incidents with Unignore button |
batch | admin | Batch AI analysis of up to 50 active issues |
delete_all_issues | admin+ | Clear all issues and pending actions |
delete_key <hash> | admin+ | Delete one specific issue by key |
clear file | all | Release uploaded file context, return to RAG |
? | all | Show keyboard shortcuts overlay |
Chat extras:
- Suggested queries β contextual chips under the input ("What changed overnight?", "Summarize security issues"β¦).
- LIVE tag β enriches your question with the current active-issue context before sending it to the AI.
- Markdown rendering β AI answers render bold, headings, code blocks (highlight.js) and bullet lists.
- Export chat β one click saves the conversation as Markdown.
Drag & Drop Log Analysis¶
Upload a .log, .txt, or .md file into the chat area (or click the paperclip icon).
- AI context switches from RAG to the uploaded file content (first ~15 000 characters).
- Ask specific questions: "List all DNS errors and when they started."
- Release with
clear filecommand to return to normal RAG mode.
Telemetry, Analytics & Reports¶
Available on the dashboard and under Tools:
- Sparkline graphs β top-6 hottest hosts, temperature over time
- Trend chart β capacity growth with TTC prediction
- Host Heatmap β incident density per host per day
- Health Score β composite grade AβD per agent + 7-day fleet health trend chart
- Anomaly detection β 3Ο spikes flagged with red dot on timeline
- Analytics tab β SLA resolution-time table + alert-fatigue chart (false positives per plugin)
- Issue forecast β 7-day linear-regression outlook of issue volume
- Capacity tab β AI capacity planning: per-host HOST/PROBLEM/RECOMMENDATION/PRIORITY cards + capacity prediction (time-to-full for disk/RAM)
- Comparison tab β compare two telemetry time windows (delta + % difference)
- Alert timeline β interactive chart of alert volume with min/max/avg
- Auto-clustering β "Clusters" button groups related issues (same plugin on N hosts / same host with N issues in a 30 min window); AI names the probable root cause
- Postmortem β generate an AI Markdown postmortem for any resolved incident
- Weekly digest β includes flapping issues and average resolution time
Runbooks¶
Tools β Runbooks keeps operational procedures next to the incidents:
- CRUD list of runbooks (create, edit, delete)
- Open any runbook in a modal while working on an issue
Topology Map¶
Available under Tools β Topology:
- Force-directed graph of all agents and their network relationships
- Colour by state: green (OK) β yellow (warning) β red (critical) β grey (offline)
- SNMP CDP/LLDP data merged with agent data
- Click a node to open the agent detail modal
Notification Settings¶
Click any π icon (issue card, issues toolbar, Plugin Stats):
- Channels β enable/disable notifications per channel (infra / agent / security / root)
- Integrations β toggle each outbound integration (Teams, Slack, Discord, Telegram, Opsgenie, ntfy, Gotify, SMTP, Matrix, PagerDuty, HA, MQTT, Webhook)
- Per-detector β each plugin row in Plugin Stats has its own π toggle
- Integration credentials are configured inline in the Notifications & Integrations modal (Save + Test buttons per tab); secret fields are never displayed back
Notifications are throttled per severity (critical/security/root 15 min, high 1 h, medium/low 4 h) and failed deliveries retry automatically with backoff.
Settings (superadmin)¶
| Section | What you can configure |
|---|---|
| Config editor | Live edit config.yaml, save triggers hot-reload; schema validation blocks invalid values |
| 2FA | Enroll/disable TOTP, QR code provisioning |
| Hash password | Generate a bcrypt hash ready to paste into config.yaml |
| REST API keys | Create/revoke scoped API keys (read:issues / write:actions / admin:users) |
| Pattern Editor | Add custom regex detection patterns with live tester + AI pattern suggestions from historical issues |
| Plugin hot-reload | Reload all plugins without server restart |
| Suppress rules | Define false positive patterns for auto-suppression (with hit counters) |
| Config diff | Compare any two config snapshots (selectors + diff view) |
| Config backup/restore | Restore creates an automatic backup of the current config first (10 kept) |
| DB management | DB size, record counts, "Prune now", "Aggregate telemetry" |
| Audit trail | Who changed config, ran SSH commands, approved actions β with IP and timestamp |
| Log level | Change server log level at runtime |
| Changelog | Git log of recent code changes |
Mobile App¶
See Sentinel App documentation. The app mirrors all dashboard functionality with:
- Biometric authentication (fingerprint / face)
- Push notifications (no Google FCM)
- P2P admin chat (volatile, no DB)
- Visual offline mode (greyscale + red banner)