self-hosted · MIT · weby, servery a routery s OpenWrt

Uvidíte, co vaše síť opravdu dělá.Měříme, nehádáme.

Weby, servery a routery s OpenWrt v jednom self-hosted přehledu. Agenti posílají data ven přes HTTPS, takže na hlídaném stroji není potřeba otevírat žádný port, a co nikdo nezměřil, zůstane pomlčkou, nikdy vymyšlenou nulou.

Živě z bloodkings.eu

Vlastní instance projektu, přes náš Cloudflare Worker

Načítám

Čekám na první odpověď…

Monitorů
—
Uzlů online
—
Prům. odezva · 1 h
—
Dostupnost · 30 dní
—
Poslední měření
—
Poslední vydání serveru
—

Dotaz každou minutu; worker odpovědi drží v mezipaměti až 5 minut.

OpenWrt · Turris OS

Váš router, změřený zevnitř.

Jeden skript v POSIX sh, který každou minutu spustí cron. Žádný démon v paměti, žádný bash ani Python. Čte to, co router už ví, přes ubus, /proc a /sys, a posílá to ven přes HTTPS.

  • Switch v LAN, port po portu

    Které zásuvky mají linku, jakou vyjednanou rychlostí, co zvládne port i zařízení na druhém konci a kolik zařízení se bridge za kterým portem naučil.

  • WAN proti tarifu, který platíte

    Zadejte rychlost ze smlouvy a přehled ji porovná s tím, co unese linka WAN a vlastní porty routeru. Pomalá linka a úzké hrdlo v routeru pak vypadají jinak.

  • Wi-Fi rádia bez skenování

    Pásmo, šířka kanálu, klienti a signál na každém rádiu a vytížení kanálu z čítačů, které si ovladač vede sám. Žádné skenování okolí se nespouští.

  • Záložní LTE, které jde ověřit

    S modemem Huawei HiLink jako záložní linkou agent čte jeho signál (RSRP, SINR, RSSI) a registraci v síti, takže víte, že záloha funguje, dřív než ji budete potřebovat.

  • Disky se SMART

    Disky v routeru čte smartctl nejvýš jednou za hodinu, takže spící disk se nebudí každou minutu.

  • Vzdálené akce: jen na přání a podepsané

    Šest akcí (restart WAN, WireGuardu nebo služby, nové připojení PPPoE, obnova DHCP, restart routeru) proběhne jen tehdy, když je povolíte v konfiguraci routeru, jen s platným podpisem HMAC a nikdy dvakrát pro jeden požadavek.

Tok dat agenta pro OpenWrt (ilustrace, ne živá data)Váš routercron · každou minutuWANLANWi-Fi rádiazáložní LTEdiskZůstává na routeruMAC · názvy · IP zařízeníHTTPS POST, jen směrem venVáš serverPHP + MySQL
Tok dat agenta pro OpenWrt (ilustrace, ne živá data)

MAC adresy router nikdy neopustí

Posílají se počty zařízení na port, ne identifikátory. Názvy a IP adresy zařízení zůstávají na routeru také, pokud si výslovně nezapnete seznam pojmenovaných zařízení.

Kolik stojí jeden běh

forků procesů na teplý běh
182

Agent 0.1.9 v e2e testech projektu s busyboxem, ne na fyzickém routeru. Na vašem routeru agent hlásí čas CPU svého předchozího běhu, takže přehled ukáže skutečnou cenu.Jak se to měří

Co hlídá

Jeden přehled pro to, co se doma i v práci rozbíjí.

Každá karta říká, jak daleko je hotová. „Částečně“ a „V plánu“ znamená přesně to.

Všechny funkce
  • Hotovo

    Weby a certifikáty

    Kontroly HTTP(S) s volitelným klíčovým slovem na stránce, expirace certifikátů TLS a kontroly TCP portů. Také servery Minecraft, TeamSpeak a Discord.

  • Hotovo

    Servery

    Agenti pro Linux (Bash nebo Python), Windows (PowerShell) a Docker: CPU, paměť, disky a síť, na Linuxu i SMART.

  • Hotovo

    Routery s OpenWrt a Turris

    Porty switche, WAN, Wi-Fi rádia, záložní LTE, disky se SMART a podepsané vzdálené akce na přání, z jednoho shellového skriptu.

  • Hotovo

    Heartbeaty a watchdog

    Cron úlohy a zálohy se hlásí samy. Cloudflare Worker mimo váš server pozná, když se zastaví samotný sběr dat.

  • Hotovo

    Stavové stránky a incidenty

    Veřejná stavová stránka s incidenty, plánovanou údržbou, odběrateli e-mailů, SVG odznaky a RSS kanálem.

  • Hotovo

    Upozornění a integrace

    E-mail, SMS (Twilio), WhatsApp (CallMeBot), Discord, Slack, Telegram, Pushover a PagerDuty a k tomu exportér pro Prometheus.

  • Hotovo

    Účty

    Dvoufázové přihlášení (TOTP), OAuth přes GitHub, Google, Discord nebo GitLab a dvě role: admin a uživatel.

  • Částečně

    Kontroly z více míst

    Kontroly běží z vašeho serveru. Pro ověření odjinud přidejte vlastní měřicí uzly (PHP skript na jiném hostingu nebo Cloudflare Worker pro weby).

  • V plánu

    Mobilní aplikace

    Nativní aplikace zatím není. Přehled na /app funguje v prohlížeči telefonu.

Živý důkaz

Tuhle stránku hlídá produkt, o kterém mluví.

Oba panely níže se právě teď ptají našeho Cloudflare Workeru. Když dotaz selže, uvidíte pomlčku nebo chybu, nikdy náhradní číslo.

Agenti, kteří se právě hlásí

Uzly, jejichž stav vrací veřejné status API bloodkings.eu.

— uzlů
  • Načítám živá data…

Pošlete jeden skutečný požadavek z našeho Cloudflare Workeru

Zadejte veřejnou adresu http(s). Worker ji jednou načte a vrátí stavový kód HTTP a celkovou dobu odezvy, kterou naměřil. Přesměrování ohlásí, ale nenásleduje; soukromé a lokální adresy odmítne.

Zatím nebyl odeslán žádný požadavek. Níže se nic nevyplní, dokud worker neodpoví.

Cíl
—
Stav HTTP
—
Odezva
—
Změřeno
—

Měří se jen celková doba do přijetí odpovědi z místa, kde worker právě běží. Rozpad na DNS, TCP a TLS worker změřit neumí, a tak ho neukazujeme.

Jak to funguje

Od PHP hostingu k prvnímu upozornění.

  1. Server na PHP hosting

    PHP 8.2+ (CI projektu běží na 8.4) s MySQL nebo MariaDB a cron, který každou minutu spustí cron.php. Stačí sdílený hosting, server nepotřebuje žádný kontejner. ZIP vydání už obsahuje sestavený přehled /app, takže Node.js potřebuje jen sestavení ze zdrojů.

    1. Stažení

      bloodkings-monitoring.zip z posledního vydání. Složky status/ a app/ nahrajte na hosting.

    2. Prázdná databáze

      V administraci hostingu založte databázi a jejího uživatele. Nic neimportujete.

    3. Instalátor

      Otevřete /app/setup: zapíše config.php, založí tabulky i první účet.

    4. Cron každou minutu

      Přidejte řádek, který instalátor ukáže. Po prvním běhu zezelená.

    Změřená doba instalace: 1 min (od ZIPu vydání po první běh sběru dat na čistém serveru s PHP 8.2 a MySQL, podle tohoto návodu; nahrávání přes FTP a klikání v administraci hostingu jde navíc)

    Všech sedm kroků na stránce ke stažení →
  2. Zaregistrujte agenta

    Přidejte stroj ve své aplikaci (Infrastruktura → Přidat nový monitor) a spusťte příkazy, které vypíše s vaší adresou a klíčem, nebo zaregistrujte více strojů jedním tokenem. Agent posílá hlášení ven přes HTTPS; na stroji nic nenaslouchá.

  3. Upozornění a stavová stránka

    Připojte kanály, které používáte (Discord, Slack a Telegram jdou nastavit i pro jednotlivý monitor), a sdílejte veřejnou stavovou stránku s incidenty a údržbou.

Celý návod k instalaci

Instalace agenta

Vyberte platformu, přečtěte si skript, spusťte příkazy.

Místo https://YOUR-DOMAIN doplňte adresu svého serveru a místo YOUR_AGENT_KEY klíč monitoru. Vaše aplikace vypíše tytéž příkazy s oběma hodnotami už vyplněnými.

Nejsnáz z vlastní aplikace: Infrastruktura → Přidat nový monitor → OpenWrt Router nebo VPS Agent a uložit. Dialog pak vypíše tytéž kroky s vaší adresou a klíčem monitoru. Níže je zastupují https://YOUR-DOMAIN a YOUR_AGENT_KEY.

Bash agent. Adresu serveru a svůj klíč čte z agent.cfg vedle skriptu a hlásí přes HTTPS; cron ho spouští každých 5 minut.

Nejnovější verze
—
Potřebuje
Bash, cron a wget; curl pro registraci tokenem. Práva roota pro /opt.
Nejdřív si přečtěte skript
agent.sh

Instalace

  1. Stáhněte agenta

    mkdir -p /opt/bk-agent && wget -O /opt/bk-agent/agent.sh https://YOUR-DOMAIN/status/agent.sh && chmod +x /opt/bk-agent/agent.sh
  2. Vytvořte konfiguraci s adresou serveru a klíčem

    cat > /opt/bk-agent/agent.cfg <<'EOF'
    API_URL="https://YOUR-DOMAIN/status/agent_api.php"
    AGENT_KEY="YOUR_AGENT_KEY"
    AUTO_UPDATE="1"
    EOF

    Soubor musí ležet ve stejné složce jako skript.

  3. Spusťte agenta ručně a zkontrolujte výpis

    /opt/bk-agent/agent.sh --verbose
  4. Zařaďte agenta do cronu, jednou za pět minut

    ( crontab -l 2>/dev/null || true; echo '*/5 * * * * /opt/bk-agent/agent.sh >/dev/null 2>&1' ) | crontab -
Odinstalace
( crontab -l 2>/dev/null | grep -v /opt/bk-agent/agent.sh || true ) | crontab -
rm -rf /opt/bk-agent

Pak v přehledu smažte monitor agenta, aby jeho klíč přestal platit.

Registrace více strojů jedním tokenem a co zkontrolovat, když se agent neukáže: na stránce ke stažení →

Poctivý rozsah

Co (zatím) neumí

  • Žádný ICMP ping ani kontroly UDP. Kontrola „portu“ je TCP spojení.
  • Žádná sdílená síť měřicích bodů. Kontroly běží z vašeho serveru, pokud nepřidáte vlastní měřicí uzly.
  • Žádné SNMP. Zařízení bez agenta se hlídá jen zvenku (HTTP, TCP).
  • Nativní mobilní aplikace zatím není, je v roadmapě.
  • Jen dvě role: admin a uživatel.
  • Starší PHP administrace (admin.php) je převážně česky; přehled na /app mluví česky i anglicky.
  • Agent pro routery potřebuje cron a ubus, takže běží na OpenWrt a Turris OS, ne na firmwaru výrobce.
Podívat se na roadmapu

Časté dotazy

Na co se lidé ptají nejdřív

Je to zdarma?

Ano. Licence MIT, žádná placená verze a žádný účet u nás. Provozujete to na vlastním hostingu.

Co potřebuje server?

Webhosting s PHP 8.2 nebo novějším, MySQL nebo MariaDB a cron, který každou minutu spustí cron.php. Sdílený hosting stačí, server nepotřebuje Docker. ZIP vydání už obsahuje sestavený přehled /app; Node.js potřebuje jen sestavení ze zdrojů.

Musím na routeru otevřít port?

Ne. Agenti jen odesílají požadavky HTTPS ven na váš server. Vzdálené akce, pokud je zapnete, přijdou v odpovědi na agentův vlastní požadavek.

Jak moc zatěžuje agent router?

Cron ho spustí jednou za minutu a agent skončí, nic nezůstává v paměti. V testech projektu s busyboxem udělá agent 0.1.9 asi 182 forků na teplý běh. Na vašem routeru hlásí čas CPU předchozího běhu, takže uvidíte skutečnou cenu.

Kam putují moje data?

Jen na server, na který agenty nasměrujete. MAC adresy, názvy a IP adresy zařízení zůstávají na routeru, posílají se jen počty na port, pokud si nezapnete seznam pojmenovaných zařízení. Tento web nic nenačítá od třetích stran.

Proč jsou některé hodnoty pomlčkou?

Pomlčka znamená, že to nikdo nezměřil: chybí senzor nebo balíček, první vzorek se teprve zahřívá, nebo jsou data stará. Nula by byla měření, a tak ji aplikace nikdy nevypíše, když ji nenaměřila.

Funguje na Turris OS?

Ano. Agent pro routery se vyvíjí na Turrisu Omnia a instalace přidává řádek do cronu přes crontab, který Turris OS (cronie) respektuje.

Dá se použít i bez routerů?

Ano. Kontroly webů, TCP portů a heartbeaty žádného agenta nepotřebují a agenti jsou i pro Linux, Windows a Docker.

Proč vznikl

Nejdřív pro jednu domácí síť.

Začalo to doma s routerem Turris Omnia: WAN na modulu SFP, LTE modem jako záložní linka a disk mSATA. Obyčejná kontrola dostupnosti řekla, jestli je dům online, ale ne proč je pomalý ani jestli záloha zabere.

Agent se proto naučil číst router zevnitř a ujalo se jedno pravidlo: co nikdo nezměřil, je pomlčka. Stejné pravidlo platí v přehledu, na stavové stránce i na tomto webu.

NainstalovatVíce o projektu