nanobot: 2026-09-14 12:04:04

This commit is contained in:
lachtan
2026-09-14 12:04:06 +02:00
parent 59bddbff63
commit fdc857359a

View File

@@ -92,3 +92,22 @@ Kdy se nehodí: automatizované testy/CI (na to pytest+httpx nebo newman), sdíl
Alternativy: **atac** (Rust TUI, podobný cíl), **httpie**/**curlie** (CLI, rychlejší na jednorázovky), **Bruno** (GUI, ale stejná file-based Git-friendly filozofie). Alternativy: **atac** (Rust TUI, podobný cíl), **httpie**/**curlie** (CLI, rychlejší na jednorázovky), **Bruno** (GUI, ale stejná file-based Git-friendly filozofie).
Vzetá idea i bez instalace: API requesty patří do repa jako soubory vedle kódu, který testují — ne do proprietárního formátu v cizím cloudu. Vzetá idea i bez instalace: API requesty patří do repa jako soubory vedle kódu, který testují — ne do proprietárního formátu v cizím cloudu.
- 2026-09-14: Poznámka z článku (Medium, Jesse L) + dohledané info z primárních zdrojů: **below** — "time traveling resource monitor" od Meta (facebookincubator), Rust TUI. Neustále nahrává detailní stav systému (per-process, per-cgroup, PSI) na lokální disk a umožňuje replay jakéhokoli okamžiku minulosti: `below replay -t "3m ago"`. Zaplněná díra: live monitory mají detail bez paměti, metriky (Prometheus/Zabbix) paměť bez detailu — "který proces to způsobil v 3:07" neodpoví ani jeden.
Relevance pro homelab (nvidia.hell incident 12.13. 9.): přesně tenhle use case — swap thrash, SSH nedostupné 45 min, po návratu žádné per-process data. below s cgroup pohledem + PSI by ukázal kauzální řetěz zpětně. PSI (Pressure Stall Information) je relevantní i jako koncept: "disk je busy" vs "procesy čekají na disk" — tlak, ne vytížení, ukazuje bottleneck.
Ověřená fakta (primární zdroje):
- Repo: https://github.com/facebookincubator/below, Apache 2.0, ~2,5k stars. Poslední release **v0.11.0 (24. 9. 2025)** — article verze potvrzena. Vývoj: Meta resource control team (kernel/container/hardware lidi) s inputem atop power userů.
- Balíčky: **Fedora 34+, Alpine 3.17+, Gentoo (sys-process/below), Amazon Linux 2023.9**. **Debian/Ubuntu apt balíček NENÍ** — na Debian strojích (celý Proxmox cluster, LXC) nutné `cargo install below` z source (build deps v docs/building.md: clang, libelf-dev, libssl-dev, zlib1g-dev…).
- Dlouholeté defekty atopu, proti kterým below stavěli (Fedora Magazine): žádná cgroup podpora; custom delta compression ztrácí data zrovna pod resource pressure; strná learning curve.
- Comparison doc (oficiální): below "goes to great lengths to avoid priority inversions during host resource contention"; **žádná vestavěná komprese dat — doporučují btrfs transparent compression**. Zbylé alternativy: htop (žádná historie), sysstat/sar (binárka, žádný interaktivní interface, žádné cgroups), cAdvisor (cgroup1 only, vyžaduje externí storage), collectd (žádné UI).
- Subcommandy: `below live` / `below replay -t "5m ago"` / `below dump` (JSON/CSV/OpenMetrics → Prometheus/Grafana, contrib/grafana) / `below snapshot` (replayovatelný soubor time range → přiložit k incident ticketu). Klíče TUI: **t/T** vpřed/vzad, **p** process view, **s** system view, **z** zoom do cgroup, **?** help.
- Data ukládá do **/var/log/below/store** — nutné ohlídat místo na disku (nahrávání běží continuous, retention konfigurovatelné).
Bezpečnost (důležité při instalaci):
- **CVE-2025-27591 / RUSTSEC-2025-0149** (CVSS 7.3): do v0.8.1 below vytvářel world-writable `/var/log/below` (mode 0777) → symlink attack = lokální privilege escalation. **Opraveno od v0.9.0** — instalovat jen >=0.9.0, současný v0.11.0 čistý.
- Dále v0.8.1 i po opravě: vnitřní data ve `/var/log/below/store` world-readable — info leak pro neprivilegované lokální uživatele.
Limity: Linux only, **cgroup v2 only** (Proxmox/Debian moderní = OK), root pro plnou viditelnost, per-host (žádný fleet view), musí běžet dopředu ("kouřový detektor" — po incidentu instalovaný below nic neříká).
Neověřitelné/nezjištěné: přesná spotřeba místa na disk per den a reálný CPU overhead daemonu — v dokumentaci čísla nejsá,Community údaje chybí; před nasazením na stroj s malým rootem změřit vlastní.