SYSADMIN · DAY-TO-DAY

What a sysadmin actually does every week in monsys.ai

Five concrete actions that come up every week. With the SQL query, curl call or click path that does the work in seconds — not in a ticket thread.

Full docs
01

Monday morning — what changed over the weekend

Nobody called you, but that doesn't mean things stayed quiet. Drift, ad-hoc fixes, EAT executions — you want a 30-second overview.

  1. Sidebar → Audit-log
  2. Filter: last 72h, grouped by event_type
  3. Click any drift_event row to see operator + reason
  4. Unexplained drift? → agent → Inventory → Restore

Next month's Audit Pack contains the same overview, Ed25519-signed.

Same via API (sql) — for automation
SELECT a.hostname, l.event_type,
       l.event_data->>'reason' AS reason,
       u.email AS actor, l.created_at
  FROM audit_log l
  LEFT JOIN agents a ON a.id = l.agent_id
  LEFT JOIN users  u ON u.id = l.user_id
 WHERE l.tenant_id = $1::UUID
   AND l.created_at >= NOW() - INTERVAL '72 hours'
 ORDER BY l.created_at DESC;
02

Patch a kernel CVE across 80 production hosts — with no downtime

USN-2026-1234 hits your whole Ubuntu fleet. Manual apt-get install on 80 hosts is not an option; rebooting them all at once isn't either.

  1. Sidebar → Kernel CVEs → Active batches tab
  2. 'New batch' button → tag selector 'production' + target kernel
  3. Enter TOTP → Start canary
  4. Watch canary → primary → completed in the same view

Every kernel EAT lands in audit_log + transparency_log. Client + auditor can verify offline with the monsys-verify-eat CLI.

Same via API (bash) — for automation
curl -X POST https://app.monsys.ai/api/v1/kernel-updates/batches \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-TOTP-Code: 123456" \
  -d '{
    "title":           "USN-2026-1234 — kernel 6.8.0-49.49",
    "target_kernel":   "6.8.0-49.49",
    "package_manager": "apt",
    "reboot_strategy": "auto-at-window",
    "selector_kind":   "tag",
    "selector_value":  {"tag":"production"}
  }'
03

Why did I get 438 alerts last night

Alert dedup usually fails because a title contains a varying value (count, percentage, timestamp) — each new value = new dedup key = new alert.

  1. Sidebar → Alerts → 'Grouped by title' tab
  2. Sort descending by count
  3. Click the biggest group — is there a value embedded in the title?
  4. /settings/alert-rules → fix the rule so the value goes into description

InsertAlert helper dedups 30 min per (tenant, agent, category, title). Maintenance windows silence automatically during scheduled work.

Same via API (sql) — for automation
SELECT title, COUNT(*),
       MIN(created_at), MAX(created_at)
  FROM alerts
 WHERE tenant_id = $1::UUID
   AND created_at >= NOW() - INTERVAL '24 hours'
 GROUP BY title
 ORDER BY 2 DESC LIMIT 10;
04

Employee left — find every system they had access to

Alice resigns tomorrow. You need to know: which servers, which SSH keys, which Copilot/OpenAI seats, which sudo rights — across all tenants.

  1. Sidebar → Identity surface → search 'alice@'
  2. See linked systems (hosts, SSH keys, Copilot seats)
  3. Per system, 'Revoke' button → TOTP
  4. Audit-log shows 'identity_revoked' as evidence

run_playbook EAT actions live in audit_log per host + one parent row linking all child EATs for traceability.

Same via API (bash) — for automation
# Identity surface — search across systems
curl 'https://app.monsys.ai/api/v1/identity/persons?email=alice@acme.com' \
  -H "Authorization: Bearer $TOKEN"

# Bulk revoke via a playbook EAT (TOTP required)
curl -X POST https://app.monsys.ai/api/v1/agents/<id>/emergency \
  -H "X-TOTP-Code: 123456" \
  -d '{"actions":[{"kind":"run_playbook","id":"revoke-user"}]}'
05

Are production DB backups still working

Backup tools report success/failure to monsys. A tool that hasn't run for 18 days doesn't report failure either — just silence.

  1. Sidebar → Inventory → Backups tab
  2. Filter on tag 'production-db'
  3. Sort 'Last successful' ascending
  4. Click 'Create alert rule' on the stale host → threshold 25h

Backup evidence (last 90d successful runs per host) automatically lands in the monthly Audit Pack under NIS2 §2(c) business continuity.

Same via API (sql) — for automation
SELECT a.hostname, b.tool, b.destination,
       b.last_successful_run,
       NOW() - b.last_successful_run AS age,
       b.last_failure_message
  FROM backup_configs b
  JOIN agents a ON a.id = b.agent_id
 WHERE b.tenant_id = $1::UUID
   AND 'production-db' = ANY(a.tags)
 ORDER BY b.last_successful_run NULLS FIRST;

Other roles

Read the extended practical docs