spacetrace
IT
Scarica

Quaranta macchine. Una pagina.

I tuoi server si scansionano da soli e inviano i dati. Il disco che si riempie per primo è in cima. L'hub non tocca mai le macchine che osserva.

docker pull ghcr.io/unalcakir28/spacetrace-hub:main
Binari
spacetrace hubfleetAvvisiIl terminale
7 target · 6 attivi · 1 silenzioso da 3 giorni
HostRadiceLiberoCrescitaUltimi 14 giorniSi riempie in
db-02/var/lib/postgresql18.2 GiB / 500 GiB+3.1 GiB/day6 giorni
nas/volume1/backups402 GiB / 8.0 TiB+41 GiB/day10 giorni
srv-01/srv120 GiB / 400 GiB+1.4 GiB/day85 giorni
ci-runner-1/var/lib/docker96 GiB / 250 GiB−2.0 GiB/day— r² 0.11
build-03/home1.1 TiB / 2.0 TiB— 2 istantanee
mail/var/mail— capacità non registrata+180 MiB/day
Una previsione vuota è un rifiuto di indovinare, non un numero mancante. La pagina del target dice quale condizione non era soddisfatta.

Disegnata, non uno screenshot. La dashboard reale è HTML generato dal server: uno strumento self-hosted che ha bisogno di un npm install prima di mostrarti una pagina è uno strumento peggiore.

Come configurarlo

Due credenziali, un file di configurazione e una riga aggiunta a ogni agente. Non c'è altro da mettere in piedi.

  1. Crea un token di amministrazione e una configurazione

    head -c 32 /dev/urandom | od -An -tx1 | tr -d ' \n' > admin-token
    db = "/var/lib/spacetrace-hub/hub.sqlite"
    listen = "0.0.0.0:8080"
    admin_token_file = "/run/secrets/admin-token"
    keep_per_target = 90

    Salvala come hub.toml, poi docker compose up -d — oppure esegui il binario direttamente e valida la configurazione prima di servire.

  2. Accedi e crea un token per l'agente

    Apri l'hub, accedi con il contenuto di admin-token e crea un token nella pagina Agents. O fallo dalla riga di comando.

    spacetrace-hub --config hub.toml token nas
  3. Punta ogni agente verso di lui

    spacetrace-agent --config /etc/spacetrace/agent.toml push https://hub.example.com --token <agent token>

    Aggiungilo alla pianificazione dell'agente e la flotta si popola da sola. Rinviare è innocuo: un'istantanea già presente con lo stesso host, radice e ora di inizio viene saltata.

  4. Mettici davanti il TLS

    Prima di esporre l'hub fuori dalla tua rete, termina il TLS in un reverse proxy. Il cookie di sessione è HttpOnly e SameSite=Strict; il flag Secure arriva servendolo via HTTPS.

Due credenziali, di proposito

Un token che sta in un file di configurazione su un NAS non deve essere la chiave dell'inventario di tutta la flotta. Per questo un token di agente non è una credenziale per la dashboard — e vale anche il contrario.

I token degli agenti sono conservati come hash SHA-256, quindi una copia del database non è un insieme di credenziali funzionanti. Revocare conserva la traccia e blocca il token immediatamente.

Entrambe le direzioni sono coperte da test.

CredenzialePuòNon può
Token agenteInviare un'istantaneaLeggere la dashboard o l'API
Token amministratoreLeggere tutto, gestire token e regoleInviare istantanee

La previsione è la funzione trattenuta più a lungo

È quella con più probabilità di essere sbagliata, quindi è quella che più spesso si rifiuta di rispondere. “Si riempie in N giorni” compare solo se valgono tutte queste condizioni.

  • Almeno tre istantanee, su almeno un giorno

    Due punti formano sempre una retta perfetta. Un giorno è l'intervallo più breve in cui un andamento quotidiano possa emergere.

  • Un fit lineare con r² ≥ 0,5

    L'uso del disco spesso non è lineare. Una rotazione dei log o un ripristino occasionale producono volentieri una retta la cui pendenza non significa nulla.

  • Una capacità davvero misurata

    Senza la dimensione reale del filesystem non c'è nulla da riempire. L'hub non la indovina dal totale più grande che ha visto.

  • Una risposta entro dieci anni

    “Si riempie in 4.000 giorni” è aritmetica, non informazione.

  • Crescita e previsione sono numeri diversi

    La crescita è misurata sulla cartella scansionata. La previsione proietta lo spazio restante del filesystem a quel ritmo. Le pagine dicono quale è quale, invece di fonderli in un'unica cifra rassicurante.

Avvisi

Regole di soglia, consegnate via webhook. Tre tipi, ognuno con un periodo di attesa perché un disco che si riempie non diventi un flusso di messaggi identici:

  • Spazio libero sotto una percentuale
  • Crescita sopra un certo ritmo
  • Una previsione che cade entro un orizzonte

La consegna via email non è ancora implementata, e c'è una sola credenziale di amministrazione invece di accessi per persona.

API HTTP

GET /health
POST /snapshotsToken agente
GET /api/fleetToken amministratore
GET /target?host=&root=Token amministratore
GET /alertsToken amministratore
GET /tokensToken amministratore

Perché non esiste una tabella di riepilogo

Le istantanee sono conservate senza modifiche nello stesso archivio usato dalla riga di comando e dall'agente. L'hub non tiene una propria tabella di riepilogo, quindi non c'è nulla che possa disallinearsi dalle istantanee da cui deriva.

Ciò che un agente invia è lo stesso file che conserva localmente: niente viene convertito da nessuna delle due parti, e il confronto nella pagina di un target è calcolato dallo stesso codice che gira sul tuo portatile.