Zurück zur Startseite

eBPF-Serverdiagnose in 60 Sek.: melisai

Melisai automatisiert Linux-Serverdiagnose: eBPF/BCC-Metriken-Sammlung, procfs, sysfs in 60 Sekunden zu JSON. Erkennt 37 Anomalien, erzeugt sysctl-Befehle, integriert mit AI via MCP. Spart Routine bei Vorfällen.

eBPF Linux-Diagnose in 60 Sekunden: melisai Tool
Advertisement 728x90

Automatisierte Linux-Server-Diagnose: Von manuellen Checks zu eBPF-Analyse in Minuten

Entwickler und Sysadmins mit Linux-Erfahrung kennen das: Eine Beschwerde über einen "zögerlichen Server" bedeutet, die üblichen Verdächtigen zu starten — top, vmstat, iostat, ss. Das ist Stufe-1-Diagnose, die 20–40 Minuten dauert. Danach taucht man in eBPF-Tools wie runqlat, biolatency, tcpretrans von Brendan Gregg ein. Der Haken: Seltene Vorfälle verblassen im Gedächtnis, also googelt man ständig nach /proc-Dateien, sysctl-Parametern und BCC-Tools-Syntax.

KI (ChatGPT, Claude) vereinfacht die Log-Analyse, sammelt aber keine Daten. Neuronale Netze starten keine Tools selbstständig oder verbinden Metriken wie PruneCalled mit TCP-Speicher. Man braucht einen strukturierten Datensammler für die KI.

Melisai: Datensammlung in einem JSON

Melisai ist ein statisches Go-Binary ohne Abhängigkeiten. Starten Sie es mit:

Google AdInline article slot
sudo melisai collect --profile quick -o report.json

Quick-Modus dauert 10 Sekunden, deep-Modus 60 Sekunden. Ausgabe: JSON mit CPU-, Speicher-, Festplatten-, Netzwerk-, Prozess-, Container- und GPU-Metriken.

Was es sammelt:

  • Stufe 1: procfs, sysfs, ss, ethtool, nvidia-smi (kein Root nötig).
  • Stufe 2: 67 BCC/eBPF-Tools (runqlat, biolatency, tcpretrans etc., erfordert Root + bcc-tools).
  • Stufe 3: natives eBPF via cilium/ebpf (Root + Kernel ≥5.8 mit BTF).

Fallback: Bei fehlender Stufe 2/3 läuft Stufe 1.

Google AdInline article slot

Zwei-Phasen-Sammlung und Rate-Metriken

Um den Beobachtereffekt zu vermeiden, ist die Sammlung geteilt:

  • Basislinie: Stufe-1-Metriken (CPU, Speicher, I/O, Netzwerk).
  • eBPF: BCC-Tools nach der Basislinie.

Rate-basierte Berechnungen: Deltas zwischen Messungen. Keine kumulativen Zähler (200-Tage-Uptime = softnet_dropped=5000 ist normal), sondern Raten (softnet_drop_rate=50/s signalisiert Anomalie).

37 Anomalie-Regeln basierend auf Gregg und Produktionspraktiken:

Google AdInline article slot

| Kategorie | Beispiel-Schwellenwerte |

|-----------|-------------------------|

| CPU | Auslastung>95%, PSI>5%, runqlat p99>50ms |

| Speicher | direct reclaim>10/s, THP splits>1/s, NUMA miss>5% |

| Festplatte | Auslastung>90%, Latenz>50ms |

| Netzwerk | Retransmits>50/s, conntrack>90% |

| GPU | NUMA-Fehlanpassung GPU-NIC |

Fallstudie: Kaskadenfehler auf einem Docker-Host

Produktionssetup: 8 Kerne, 32GB RAM, HDD-RAID. Symptome: Allgemeine Verlangsamung.

sudo melisai collect --profile deep --ai-prompt -o report.json

Ergebnisse (60 Sek.):

Health Score: 46/100
Anomalien:
[KRITISCH] tcp_retransmits 134/s
[WARNUNG] disk_util 80,5%
[WARNUNG] cpu_psi 17,6%
[WARNUNG] io_psi 12,8%
[WARNUNG] disk_latency 12,1ms
[WARNUNG] tcp_close_wait 1 Socket

Kaskade:

  • HDD p99=49ms → Block-I/O-Latenz (biolatency).
  • PruneCalled=105 → TCP-Buffer gekürzt (Speicherdruck).
  • TCP retransmits=31/s → Paketverlust im Server.
  • WireGuard tx_dropped=226k → VPN-Tunnel leidet.

Ursache: HDD-Engpass. Empfehlung: sysctl -w net.ipv4.tcp_mem='1048576 2097152 4194304'.

KI-Integration via MCP

Integrierter MCP-Server für Claude Desktop/Cursor:

{
  "mcpServers": {
    "melisai": {
      "command": "ssh",
      "args": ["root@server", "/usr/local/bin/melisai", "mcp"]
    }
  }
}

KI-Aufrufe:

  • get_health — Score + Anomalien.
  • explain_anomaly — Ursache + Fix-Befehle.
  • collect_metrics — Vollbericht mit Histogrammen.

JSON enthält ai_context.prompt mit 27 Anti-Patterns.

Empfehlungen und Grenzen

Empfehlungen sind sofort ausführbare Befehle:

{
  "type": "fix",
  "title": "TCP-Speicherdruck (PruneCalled)",
  "commands": ["sysctl -w net.ipv4.tcp_mem='1048576 2097152 4194304'"],
  "evidence": "PruneCalled=105"
}

Grenzen:

  • Kein Monitoring (Snapshots, kein Prometheus).
  • Kein Alerting (nur on-demand/cron).
  • Kein App-Profiling (pprof dafür).
  • Nur NVIDIA GPU (ROCm geplant).

Installation und Build

curl -sSL https://melisai.dev/install | sh

Build:

GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o melisai ./cmd/melisai/

Apache 2.0.

Wichtige Erkenntnisse

  • Sammelt 67 eBPF-Tools + Stufe 1 in 10–60 Sek. in strukturiertes JSON.
  • Rate-Metriken vermeiden Fehlalarme bei Langzeit-Servern.
  • 37 Anomalie-Regeln + fertige sysctl-Befehle.
  • MCP-Integration: KI analysiert direkt, kein Copy-Paste.
  • Zwei-Phasen-Sammlung minimiert Beobachtereffekt.

— Editorial Team

Advertisement 728x90

Weiterlesen