Powrót do strony głównej

Diagnostyka serwerów eBPF w 60 sek: melisai

Melisai automatyzuje diagnostykę serwerów Linux: zbiór metryk eBPF/BCC, procfs, sysfs w 60 sekund w JSON. Wykrywa 37 anomalii, generuje komendy sysctl, integruje się z AI via MCP. Oszczędza rutynę na incydentach.

Diagnostyka eBPF Linux w 60 sekund: narzędzie melisai
Advertisement 728x90

Zautomatyzowana diagnostyka serwerów Linux: od ręcznego zbierania do analizy eBPF w minutę

Programiści i administratorzy systemów z doświadczeniem w Linuxie wiedzą: skarga „serwer spowalnia” wymaga standardowego zestawu poleceń — top, vmstat, iostat, ss. Ta diagnostyka Tier 1 zajmuje 20–40 minut. Dalej — zagłębianie się w narzędzia eBPF takie jak runqlat, biolatency, tcpretrans od Brendan Gregg. Problem: rzadkie incydenty zacierają wiedzę, za każdym razem trzeba wyszukiwać pliki w /proc, parametry sysctl i składnię BCC-tools. AI (ChatGPT, Claude) ułatwia analizę logów, ale nie rozwiązuje kwestii zbierania danych. Sieci neuronowe nie uruchamiają narzędzi samodzielnie, nie budują połączeń między metrykami takimi jak PruneCalled i pamięć TCP. Potrzebny jest strukturalny zbieracz danych do przekazania do AI.

Melisai: zbieranie danych do jednego JSON

Narzędzie melisai — statyczny binarnik Go bez zależności. Uruchomienie:

sudo melisai collect --profile quick -o report.json

Tryb quick — 10 sekund, deep — 60 sekund. Wyjście: JSON z metrykami CPU, pamięci, dysku, sieci, procesów, kontenerów, GPU.

Google AdInline article slot

Co zbiera:

  • Tier 1: procfs, sysfs, ss, ethtool, nvidia-smi (bez root).
  • Tier 2: 67 narzędzi BCC/eBPF (runqlat, biolatency, tcpretrans i inne, root + bcc-tools).
  • Tier 3: natywny eBPF via cilium/ebpf (root + kernel ≥5.8 z BTF).

Fallback: jeśli Tier 2/3 niedostępne, działa Tier 1.

Dwufazowe zbieranie i rate-metryki

Aby uniknąć efektu obserwatora, zbieranie podzielone:

Google AdInline article slot
  • Baseline: Tier 1 metryki (CPU, pamięć, I/O, sieć).
  • eBPF: uruchomienie BCC-tools po baseline.

Rate-based obliczenia: delta między pomiarami. Nie cumulative liczniki (uptime 200 dni = softnet_dropped=5000 — normalne), ale rates (softnet_drop_rate=50/sec — anomalia).

37 reguł anomalii na podstawie Gregg i praktyk produkcyjnych:

| Kategoria | Przykłady progów |

Google AdInline article slot

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

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

| Pamięć | direct reclaim>10/s, THP splits>1/s, NUMA miss>5% |

| Dysk | util>90%, latency>50ms |

| Sieć | retransmits>50/s, conntrack>90% |

| GPU | NUMA-rozbieżność GPU-NIC |

Przypadek: kaskadowa degradacja na hoście Docker

Produkcja: 8 rdzeni, 32GB RAM, HDD RAID. Symptomy — ogólne spowolnienie.

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

Wynik (60 sek):

Health Score: 46/100
Anomalies:
[CRITICAL] tcp_retransmits 134/sec
[WARNING] disk_util 80.5%
[WARNING] cpu_psi 17.6%
[WARNING] io_psi 12.8%
[WARNING] disk_latency 12.1ms
[WARNING] tcp_close_wait 1 socket

Kaskad:

  • HDD p99=49ms → Block I/O latency (biolatency).
  • PruneCalled=105 → TCP-bufery obcinane (nacisk na pamięć).
  • TCP retransmits=31/s → straty pakietów wewnątrz serwera.
  • WireGuard tx_dropped=226k → tunel VPN cierpi.

Korzeń: wąskie gardło HDD. Rekomendacja: sysctl -w net.ipv4.tcp_mem='1048576 2097152 4194304'.

Integracja z AI przez MCP

Wbudowany serwer MCP dla Claude Desktop/Cursor:

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

AI wywołuje:

  • get_health — score + anomalie.
  • explain_anomaly — root cause + fix-polecenia.
  • collect_metrics — pełny raport z histogramami.

JSON zawiera ai_context.prompt z 27 anty-wzorcamii.

Rekomendacje i ograniczenia

Rekomendacje — polecenia:

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

Ograniczenia:

  • Nie monitoring (snapshot, nie Prometheus).
  • Nie alerting (na żądanie/cron).
  • Nie app-profiling (pprof do tego).
  • Tylko NVIDIA GPU (ROCm w roadmap).

Instalacja i kompilacja

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

Kompilacja:

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

Apache 2.0.

Co ważne

  • Zbieranie 67 eBPF-tools + Tier 1 za 10–60 sek do strukturalnego JSON.
  • Rate-metryki eliminują fałszywe alarmy na serwerach z long-uptime.
  • 37 reguł anomalii + gotowe sysctl-polecenia.
  • Integracja MCP: AI bezpośrednio analizuje bez copy-paste.
  • Dwufazowe zbieranie minimalizuje efekt obserwatora.

— Editorial Team

Advertisement 728x90

Czytaj dalej