Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
monitor — Monitoraggio in tempo reale e analisi degli slowlog per database Valkey e Redis con rilevamento delle anomalie, audit delle ACL ed esportazione delle metriche Prometheus. | Kitploit
Strumenti/GitHubGitHub/betterdb-inc/monitor
Sicurezza dei DatabaseRilevamento di AnomalieAnalisi dei Log
GitHubbetterdb-inc/monitor

monitor

Monitoraggio in tempo reale e analisi degli slowlog per database Valkey e Redis con rilevamento delle anomalie, audit delle ACL ed esportazione delle metriche Prometheus.

Vedi RepositorySito web
1.2k6920h 32m faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

BetterDB Monitor

Docker Pulls Docker Image Version npm npm downloads API Tests License Valkey Redis

Il livello di monitoraggio che Valkey merita.

BetterDB conserva ciò che Valkey scarta - slowlog, pattern di comandi, attività dei client, segnali di anomalie - così puoi eseguire il debug di ciò che è accaduto alle 3 di notte, non solo di ciò che sta accadendo ora. Progettato per Valkey 8.x con supporto nativo per COMMANDLOG, CLUSTER SLOT-STATS e metriche I/O per thread. Compatibile con Redis 6+ per tutto il resto.

Sito web | Docker Hub | npm | Documentazione | Blog

BetterDB è sviluppato da BetterDB Inc., una società a beneficio pubblico che opera secondo l'OCV Open Charter.

BetterDB Monitor - Analisi chiave con istogrammi della distribuzione delle dimensioni per tipo

Quick Start (Docker)

root@kitploit:~
docker run -d --name betterdb -p 3001:3001 betterdb/monitor:latest

Apri il browser all'indirizzo http://localhost:3001. Per monitorare un'istanza specifica:

root@kitploit:~
docker run -d \
  --name betterdb \
  -p 3001:3001 \
  -e DB_HOST=your-valkey-host \
  -e DB_PORT=6379 \
  -e DB_PASSWORD=your-password \
  betterdb/monitor:latest

Sono disponibili due varianti di immagine, entrambe multi-arch (linux/amd64, linux/arm64):

TagDescrizione
latest, X.Y.Z-no-aiImmagine predefinita - include tutte le funzionalità di monitoraggio, senza le dipendenze per l'AI Helper locale-LLM sperimentale
X.Y.ZAggiunge l'AI Helper sperimentale (porta il tuo Ollama; disattivato per impostazione predefinita tramite AI_ENABLED)

Vedi Docker Production Deployment per storage persistente, porte personalizzate, licenze e configurazioni air-gapped.

Quick Start (CLI)

Esegui BetterDB Monitor senza Docker:

root@kitploit:~
npx @betterdb/monitor

Al primo avvio, una procedura guidata interattiva ti accompagna attraverso la connessione al database, il backend di storage (SQLite, PostgreSQL o in-memory) e le impostazioni del server. La configurazione viene salvata in ~/.betterdb/config.json.

root@kitploit:~
npm install -g @betterdb/monitor   # global install
betterdb --setup                   # re-run setup wizard
betterdb --port 8080               # override server port
betterdb --db-host 1.2.3.4         # override database host
betterdb --help                    # all options

Richiede Node.js >= 20.0.0 e un'istanza Valkey o Redis da monitorare. Per lo storage SQLite, esegui anche npm install -g better-sqlite3.

Cosa Ottieni

Vedi tutto, conserva tutto

  • Analisi storica - interroga slowlog, pattern di comandi, attività dei client e latenza su qualsiasi intervallo di tempo. I dati che prima sparivano dopo una rotazione dei log.
  • Supporto COMMANDLOG - esclusivo di Valkey 8.1+. Grandi richieste e grandi risposte, non solo quelle lente.
  • Sessioni di cattura MONITOR - registra il traffico reale su richiesta: coda live, filtro, replay, esportazione in JSON/CSV e riferimento incrociato con la cronologia delle connessioni.
  • Tracciamento delle hot key - chiavi principali per frequenza di accesso con movimento in classifica nel tempo. Key Analytics (Pro, gratuito in early access) aggiunge distribuzioni di tipo, TTL e dimensione dal campionamento live.
  • Visibilità del cluster - grafici di topologia, mappe di calore SLOT-STATS, CPU per slot e distribuzione delle chiavi.
  • Metriche dei thread CPU e I/O - visibilità per thread che nessuno strumento Redis può fornire.
  • Analisi dei client - vedi esattamente quale servizio è responsabile di cosa, attribuito per nome client e pattern.
  • Traccia di audit ACL - traccia chi ha avuto accesso a cosa, persistita per conformità e debug post-incidente.

Comprendi e agisci

  • Rilevamento anomalie (Pro, gratuito in early access) - apprendimento automatico della baseline con eventi correlati e diagnosi in linguaggio semplice. Più di 20 rilevatori, nessuna soglia manuale.
  • Previsione della capacità - tempo previsto per il raggiungimento del tetto per memoria, ops/sec, CPU e frammentazione.
  • Webhook - consegna di avvisi firmati HMAC con tentativi e registro di consegna completo.
  • Migrazione live - spostati tra Redis e Valkey con un flusso di lavoro in tre fasi: analisi, esecuzione e validazione.

Progettato per l'era dell'AI

  • Osservabilità della ricerca vettoriale - ops/sec e latenza di FT.SEARCH con salute per indice per valkey-search e RediSearch. Vedi docs/vector-ai.
  • Latenza di inferenza - p50/p95/p99 per indice, con avvisi di violazione SLA (Pro, gratuito in early access).
  • Intelligenza della cache semantica (Pro, gratuito in early access) - salute del tasso di hit, raccomandazioni sulla soglia di similarità e un flusso di lavoro di proposte approva/rifiuta. Osservabilità della memoria dell'agente inclusa.
  • Tracce AI - waterfall di span OTLP dalla tua applicazione AI, correlati con lo stato live di Valkey alla base di ogni richiesta.

Si integra con tutto

  • Server MCP - 60 strumenti per Claude Code, Cursor o qualsiasi client MCP tramite @betterdb/mcp.
  • Endpoint Prometheus - oltre 100 metriche betterdb_*. Vedi docs/prometheus-metrics.md.
  • OpenTelemetry - rispecchia metriche ed eventi verso qualsiasi backend OTLP.
  • API REST - tutto nell'interfaccia è una chiamata API, documentata tramite OpenAPI.

Accedi ai tuoi dati a modo tuo

Nota: Nelle build di produzione (Docker, CLI) le route API sono servite con il prefisso /api. Nello sviluppo locale (pnpm dev) non c'è alcun prefisso - es. http://localhost:3001/health.

Database Supportati

DatabaseVersione minimaFunzionalità supportate
Valkey8.0+Tutte le funzionalità inclusi COMMANDLOG (8.1+) e CLUSTER SLOT-STATS
Redis6+Tutte le funzionalità tranne COMMANDLOG e CLUSTER SLOT-STATS, esclusivi di Valkey

Il backend utilizza un adapter unificato sul client iovalkey compatibile a livello di protocollo e rileva automaticamente Valkey vs Redis dalla risposta INFO (DB_TYPE=auto). Funzionalità come COMMANDLOG e SLOT-STATS vengono rilevate in base alla versione e l'interfaccia utente si degrada in modo elegante quando una funzionalità non è disponibile.

Anche i servizi gestiti sono supportati - le guide per AWS ElastiCache, MemoryDB, Redis Cloud e Upstash si trovano in docs/providers e @betterdb/agent raggiunge le istanze solo-VPC tramite un WebSocket in uscita.

Docker Production Deployment

L'immagine Docker contiene l'applicazione di monitoraggio (backend + frontend). Richiede:

  1. Un'istanza Valkey/Redis da monitorare
  2. Un'istanza PostgreSQL per la persistenza dei dati (oppure usa lo storage in memoria)

Run with PostgreSQL Storage

root@kitploit:~
docker run -d \
  --name betterdb-monitor \
  -p 3001:3001 \
  -e DB_HOST=your-valkey-host \
  -e DB_PORT=6379 \
  -e DB_PASSWORD=your-password \
  -e STORAGE_TYPE=postgres \
  -e STORAGE_URL=postgresql://user:pass@postgres-host:5432/dbname \
  betterdb/monitor

Run on Custom Port

Imposta la variabile d'ambiente PORT e fai corrispondere il mapping -p:

root@kitploit:~
docker run -d \
  --name betterdb-monitor \
  -p 8080:8080 \
  -e PORT=8080 \
  -e DB_HOST=your-valkey-host \
  betterdb/monitor

Run with Host Network (Access localhost services)

Se Valkey e PostgreSQL sono in esecuzione sullo stesso host:

root@kitploit:~
docker run -d \
  --name betterdb-monitor \
  --network host \
  -e DB_HOST=localhost \
  -e DB_PORT=6380 \
  -e DB_PASSWORD=devpassword \
  -e STORAGE_TYPE=postgres \
  -e STORAGE_URL=postgresql://dev:devpass@localhost:5432/postgres \
  betterdb/monitor

Variabili d'ambiente

Riferimento completo, inclusi AI, esportazione OTLP, regolazione dei webhook e soglie dei health gate: docs/configuration.md.

Licensing & Air-Gapped Support

BetterDB Monitor sblocca le funzionalità Pro/Enterprise in uno dei due modi seguenti, a seconda che l'host abbia accesso a Internet:

  • Chiave di licenza online - imposta BETTERDB_LICENSE_KEY. Il monitor la valida verso betterdb.com e memorizza nella cache un token firmato verificato localmente, così il tuo piano continua a funzionare attraverso brevi interruzioni e riavvii.
  • Token di licenza offline / air-gapped - per host con nessun accesso a Internet (vedi sotto).

Come funziona la licenza air-gapped

Ogni diritto è un JWT RS256 firmato. Il monitor lo verifica localmente tramite le chiavi pubbliche incorporate nell'immagine - non deve mai contattare un server di licenza per fidarsi di un token. Quindi un host air-gapped può eseguire i piani a pagamento con zero connettività:

  1. Su una macchina connessa a Internet, accedi a betterdb.com/account/licenses e scarica il tuo token di licenza offline (.jwt, Pro/Enterprise). Non contiene segreti e non può essere alterato - qualsiasi modifica rompe la firma.
  2. Trasferiscilo sull'host air-gapped come preferisci (USB, gestione della configurazione, un mount di secret Docker/Kubernetes).
  3. Forniscilo tramite BETTERDB_OFFLINE_LICENSE_FILE (percorso), BETTERDB_OFFLINE_LICENSE (stringa inline) oppure incollalo nell'interfaccia in Impostazioni → Licenza → "Ambiente air-gapped? Attiva una licenza offline."

Quando è configurato un token offline e nessuna BETTERDB_LICENSE_KEY è impostata, il monitor effettua zero richieste in uscita - controlli della licenza, telemetria e ping di aggiornamento sono tutti disabilitati. Esegue il piano concesso fino alla scadenza del token (le licenze perpetue vengono riscaricate ogni anno), poi torna alla Community.

root@kitploit:~
# fully offline - no network required
docker volume create betterdb-data
docker run --rm -v betterdb-data:/d alpine chown 1001:1001 /d   # volume writable by UID 1001 (one-time)

docker run -d --name betterdb-monitor -p 3001:3001 \
  -e DB_HOST=your-valkey-host -e DB_PORT=6379 -e DB_PASSWORD=your-password \
  -v /path/to/betterdb-license.jwt:/run/secrets/betterdb-license.jwt:ro \
  -e BETTERDB_OFFLINE_LICENSE_FILE=/run/secrets/betterdb-license.jwt \
  -v betterdb-data:/app/data \
  betterdb/monitor

Verifica con GET /api/license/status → source: offline-token, mode: offline, airGapped: true.

Persistenza: monta un volume scrivibile in /app/data così la licenza offline e il token di grazia per le interruzioni online sopravvivono ai riavvii. Il container viene eseguito come UID 1001, quindi un volume appena creato deve essere chownato a tale utente (mostrato sopra) - altrimenti la persistenza fallisce con EACCES … license.jwt.

Per il flusso completo, la precedenza di verifica e il runbook di rotazione delle chiavi, vedi Licenze offline e air-gapped e il Riferimento di configurazione.

Dettagli dell'immagine Docker

  • Immagine base: node:20-alpine
  • Dimensione compressa: ~360MB (latest / -no-ai) / ~640MB (immagine versionata con le dipendenze local-LLM dell'AI Helper sperimentale)
  • Piattaforme: linux/amd64, linux/arm64
  • Contiene: API backend + file statici del frontend (serviti da Fastify)
  • Escluso: supporto SQLite (usa PostgreSQL o storage in memoria)

Operazioni sul container

root@kitploit:~
docker logs -f betterdb-monitor        # follow logs
docker stop betterdb-monitor           # stop
docker rm betterdb-monitor             # remove

Backend di storage

BetterDB Monitor salva la traccia di audit, le analisi, le catture e i dati sulle anomalie in uno dei tre backend:

Metriche Prometheus

Le metriche sono esposte su GET /api/prometheus/metrics nel formato testo di Prometheus: audit ACL, connessioni client, pattern slowlog/commandlog, memoria, throughput, keyspace, replica, statistiche degli slot del cluster e metriche di runtime Node.js - tutte con prefisso betterdb_.

root@kitploit:~
scrape_configs:
  - job_name: 'betterdb-monitor'
    metrics_path: '/api/prometheus/metrics'
    static_configs:
      - targets: ['your-monitor-host:3001']

Riferimento completo delle metriche: docs/prometheus-metrics.md e docs/prometheus-integration.md.

Sviluppo

Struttura del progetto

root@kitploit:~
betterdb-monitor/
├── apps/
│   ├── api/                 # NestJS backend (Fastify)
│   └── web/                 # React frontend (Vite)
├── packages/                # Published packages (see below)
├── docs/                    # Documentation site (Jekyll)
├── docker-compose.yml       # Local Valkey (port 6380) and Redis (port 6382) for testing
└── package.json             # Workspace root

Pacchetti

Questo monorepo include diversi pacchetti standalone. Vedi packages/ per l'elenco completo.

Stack tecnologico

  • Backend: NestJS con adapter Fastify, iovalkey per le connessioni Valkey/Redis, TypeScript in modalità strict. Porta 3001.
  • Frontend: React + TypeScript, Vite, TailwindCSS, Recharts. Server di sviluppo sulla porta 5173.
  • Monorepo: pnpm workspaces + Turborepo.

Configurazione locale

Prerequisiti: Node.js >= 20.0.0, pnpm >= 9.0.0, Docker.

root@kitploit:~
pnpm install
cp .env.example .env
pnpm docker:dev        # local Valkey (6380) and Redis (6382)
pnpm dev               # web on :5173, api on :3001

Per connettersi a Redis invece che a Valkey, imposta DB_PORT=6382 in .env.

root@kitploit:~
pnpm dev:api           # API only
pnpm dev:web           # frontend only
pnpm docker:dev:down   # stop local databases
pnpm build             # production build
pnpm test              # API tests

Build delle immagini Docker:

root@kitploit:~
pnpm docker:build      # local build
pnpm docker:publish    # multi-arch build & push (requires buildx)

Aggiungere nuove funzionalità

  1. Aggiungi nuovi endpoint in apps/api/src/
  2. Aggiungi le corrispondenti chiamate API in apps/web/src/api/
  3. Aggiungi i tipi condivisi in packages/shared/src/types/

Stile del codice

  • TypeScript in modalità strict, tipi di ritorno espliciti, niente any
  • ESLint + Prettier configurati

Licenza

  • I contenuti in docs/ sono concessi in licenza sotto CC BY-SA 4.0.
  • I contenuti in proprietary/ sono coperti da una licenza commerciale (vedi proprietary/LICENSE). Queste funzionalità sono gratuite durante l'early access.
  • Tutto il resto è MIT.
Scarica lo strumento
InterfacciaDettagli
Web UIhttp://localhost:3001
Server MCPnpx @betterdb/mcp (stdio) - crea un token in Impostazioni → Token MCP
Prometheushttp://localhost:3001/api/prometheus/metrics
REST API (OpenAPI)http://localhost:3001/docs
Health checkhttp://localhost:3001/api/health
VariabileRichiestoPredefinitoDescrizione
DB_HOSTSìlocalhostHost Valkey/Redis da monitorare
DB_PORTNo6379Porta Valkey/Redis
DB_PASSWORDNo-Password Valkey/Redis
DB_USERNAMENodefaultNome utente ACL Valkey/Redis
DB_TYPENoautoTipo di database: auto, valkey o redis
STORAGE_TYPENomemoryBackend di storage: memory o postgres
STORAGE_URLCondizionale-URL di connessione PostgreSQL (richiesto se STORAGE_TYPE=postgres)
PORTNo3001Porta HTTP dell'applicazione
NODE_ENVNoproductionAmbiente Node
ANOMALY_DETECTION_ENABLEDNotrueAbilita il rilevamento delle anomalie
ANOMALY_PROMETHEUS_INTERVAL_MSNo30000Intervallo di aggiornamento del riepilogo Prometheus (ms)
BETTERDB_LICENSE_KEYNo-Chiave di licenza online (Pro/Enterprise), validata tramite rete
BETTERDB_OFFLINE_LICENSE_FILENo-Percorso di una licenza offline firmata .jwt per host air-gapped (vedi sotto)
BETTERDB_OFFLINE_LICENSENo-Token di licenza offline come stringa JWT inline
BETTERDB_DATA_DIRNo/app/dataDirectory per lo stato di licenza persistito (monta un volume scrivibile)
BETTERDB_TELEMETRYNotrueImposta false per disabilitare la telemetria anonima
BackendCaso d'usoNote
memoryTest, ambienti effimeriPredefinito in Docker; tutti i dati persi al riavvio
postgresProduzioneSTORAGE_TYPE=postgres + STORAGE_URL=postgresql://user:pass@host:port/db
sqliteSviluppo locale / CLINon incluso nelle immagini Docker di produzione; STORAGE_SQLITE_FILEPATH opzionale
PacchettoLinguaggioRegistry
@betterdb/monitorTypeScriptnpm
@betterdb/mcpTypeScriptnpm
@betterdb/agentTypeScriptnpm
@betterdb/semantic-cacheTypeScriptnpm
betterdb-semantic-cachePythonPyPI
@betterdb/agent-cacheTypeScriptnpm
betterdb-agent-cachePythonPyPI
cache-benchmarkPythonHarness di replay per il benchmarking delle cache semantiche