GNU/Linux >> Znalost Linux >  >> Linux

Úvod do metrik Prometheus a sledování výkonu

Zapleteme poupata a květy a trámy

Které se třpytí na okraji fontány a dělají

Podivné kombinace z běžných věcí

"Prometheus Unbound" od Percy Bysshe Shelley

Vítejte ve světě shromažďování metrik a sledování výkonu. Jako u většiny věcí v oblasti IT byly celé sektory trhu vytvořeny tak, aby tyto nástroje prodávaly. A samozřejmě několik open source utilit slouží stejnému účelu. Je to jeden z těchto nástrojů s otevřeným zdrojovým kódem, který prozkoumáme.

Co je Prometheus?

Prometheus je nástroj pro shromažďování metrik a upozornění vyvinutý a uvolněný pro open source společností SoundCloud. Prometheus je svým designem podobný monitorovacímu systému Borgmon od Googlu a poměrně skromný systém si poradí se sběrem stovek tisíc metrik každou sekundu. Správně vyladěný a nasazený cluster Prometheus dokáže každou sekundu shromáždit miliony metrik.

Prometheus se skládá zhruba ze čtyř částí:

  • Samotná hlavní aplikace Prometheus, která je zodpovědná za získávání metrik, jejich ukládání do databáze a (volitelně) jejich načítání při dotazu.
    • Backend databáze je interní databáze Time Series. Tato databáze se používá vždy, ale data lze také odesílat do backendů vzdáleného úložiště.
  • Exportéry jsou volitelné externí programy, které zpracovávají data z různých zdrojů a převádějí je na metriky, které může Prometheus seškrábat.
    • Exportéry jsou určeny pro práci s konkrétními aplikacemi a hardwarem.
  • AlertManager je systém pro správu výstrah, který je součástí produktu Prometheus.
  • Klientské knihovny lze použít k instrumentaci vlastních aplikací.

Říkám „zhruba“ čtyři části, protože se standardním clusterem Prometheus se často používá spousta dalších aplikací. Pokud potřebujete nebo chcete lepší možnosti tvorby grafů, lze nasadit aplikace jako Grafana. Pokud potřebujete ukládat metriky po dlouhou dobu, stojí za zvážení backendy vzdáleného úložiště. A seznam pokračuje. V tomto článku se však zaměříme na samotný Prometheus s malou oklikou k exportérům.

[ Také by se vám mohlo líbit: 6, které weboví vývojáři potřebují dovedností správce systému ]

Co je to metrika?

Než se tam dostaneme, musíme pochopit, proč něco jako Prometheus existuje. Začněme tedy otázkou:Co jsou metriky? Jednoduše řečeno, metriky něco měří. Měřítkem je například čas, který vám zabere přečtení tohoto článku. Počet slov je metrika. Průměrný počet písmen ve slovech tohoto článku je metrika.

Tyto metriky jsou však poměrně statické a ne něco, na co byste nutně potřebovali systém jako Prometheus. Prometheus vyniká v metrikách, které se v čase mění. Co kdybyste například chtěli vědět, kolik „zhlédnutí“ tento článek získává? Nebo co kdybyste chtěli vědět, kolik provozu vstupuje a opouští vaši síť? Nebo kolik cyklů sestavení a nasazení probíhá každou hodinu? To vše jsou metriky, které lze vložit do Promethea.

Nyní, když rozumíme tomu, co je metrika, podívejme se, jak Prometheus získává metriky, které potřebuje k uložení. První věc, kterou Prometheus potřebuje, je cíl . Cíle jsou koncové body, které poskytují metriky, které Prometheus ukládá. Tyto koncové body mohou být skutečným sledovaným koncovým bodem nebo mohou být součástí middlewaru známého jako exportér. Koncové body lze dodávat prostřednictvím statické konfigurace nebo je lze „nalézt“ prostřednictvím procesu zvaného zjišťování služeb. Zjišťování služeb je pokročilejším tématem pro budoucí článek.

Jakmile má Prometheus seznam koncových bodů, může z nich začít získávat metriky. Prometheus získává metriky velmi přímočarým způsobem; jednoduchý HTTP požadavek. Konfigurace ukazuje na konkrétní místo na koncovém bodu, které poskytuje proud textu identifikující metriku a její aktuální hodnotu. Prometheus čte tento proud textu, ignoruje řádky začínající # jako komentáře a ukládá přijaté metriky v místní databázi.

Krátká vedlejší cesta k exportérům

Prometheus může používat pouze HTTP ke komunikaci s koncovými body pro sběr metrik. Co se stane, když se pokoušíte monitorovat router nebo přepínač, který komunikuje pouze pomocí SNMP? Nebo možná chcete monitorovat cloudovou službu, která nemá nativní koncový bod metrik Prometheus? Naštěstí existuje řešení:Exportéři.

Vývozci přicházejí v mnoha tvarech a velikostech. Jedná se o malé, účelově vytvořené programy navržené tak, aby stály mezi Prometheem a čímkoli, co chcete monitorovat a co nativně nepodporuje Prometheus. Někteří exportéři nečinně sedí, dokud je Prometheus nevyžádá data. Když k tomu dojde, exportér osloví zařízení, které monitoruje, získá příslušná data a převede je do formátu, který může Prometheus zpracovat. Ostatní exportéři dotazují zařízení automaticky a výsledky ukládají do místní mezipaměti, aby si je mohl Prometheus později vyzvednou.

Bez ohledu na design působí exportéři jako překladatelé mezi Prometheem a koncovými body, které chcete monitorovat. Je pravděpodobné, že pokud se pokoušíte monitorovat běžné zařízení nebo aplikaci, existuje pro to exportér.

Ukládání dat

Prometheus používá speciální typ databáze na zadní straně známý jako databáze časových řad. Jednoduše řečeno, tato databáze je optimalizována pro ukládání a získávání dat organizovaných jako hodnoty po určitou dobu. Metriky jsou vynikajícím příkladem typu dat, která byste v takové databázi ukládali.

Možností je také externí úložiště. Existuje mnoho možností, jako jsou Thanos, Cortex a VictoriaMetrics, které poskytují různé výhody. Jednou z hlavních výhod je centralizace shromážděných metrik a dlouhodobé úložiště. Nástroje, jako je Grafana, mohou přímo dotazovat tato řešení úložiště třetích stran.

Takže máte spoustu metrik...

Nyní, když jste expertem na Prometheus a máte jej ukládat metriky, jak tato data používáte? Podobně jako databáze SQL má Prometheus vlastní dotazovací jazyk známý jako PromQL. PromQL je docela přímočarý pro jednoduché metriky, ale v případě potřeby je velmi složitý. Zadáním názvu metriky se zobrazí všechny „případy“ této metriky:

Můžete také použít některé metody PromQL ke generování grafu představujícího data, o která vám jde.

Samozřejmě, pokud to s grafováním myslíte vážně, stojí za to poohlédnout se po balíčku, jako je Grafana. Grafana vám umožňuje vytvářet panely metrik, odesílat upozornění a další.

Upozornění

Zatímco grafy jsou hezké na pohled, metriky mohou sloužit dalšímu důležitému účelu. Mohou být použity k odesílání upozornění. Prometheus obsahuje samostatnou aplikaci s názvem AlertManager, která slouží tomuto účelu. AlertManager přijímá oznámení od společnosti Prometheus a zpracovává veškerou logiku potřebnou k odstranění duplicitních výstrah a jejich doručení.

Upozornění se vytvářejí napsáním pravidel upozornění. Tato pravidla jsou jednoduše dotazy PromQL, které se spouštějí, když je dotaz pravdivý. To znamená, že pokud máte dotaz, který kontroluje, zda je teplota na CPU vyšší než 80 C, pak se dotaz spustí pro každou metriku, která tuto podmínku splňuje.

Výstražná pravidla mohou také obsahovat časové období, během kterého se musí pravidlo vyhodnotit jako pravdivé. Když rozšíříme náš příklad s teplotou, překročení 80 C je v pořádku, pokud je to krátké časové období, ale pokud to trvá déle než pět minut, pošlete upozornění. Upozornění lze zasílat prostřednictvím e-mailu, Slacku, Twitteru, SMS a v podstatě čehokoli, pro co můžete napsat rozhraní.

[ Hledáte více o automatizaci systému? Začněte s The Automated Enterprise, bezplatnou knihou od Red Hat. ] 

Sbalit

Sledování je důležité. Pomáhá identifikovat, kdy se něco pokazilo, a může ukázat, kdy je vše v pořádku. Správné monitorování lze použít napříč různými obory k vymáčknutí všeho, co se dá z monitorovaného objektu.

Prometheus je výkonný open source balíček metrik. Je vysoce škálovatelný, robustní a extrémně rychlý. Jediný moderní server lze použít ke sledování milionu nebo více metrik za sekundu. Distribuce serverů Prometheus umožňuje každou sekundu monitorovat mnoho desítek a dokonce stovek milionů metrik.

PromQL poskytuje robustní dotazovací jazyk, který lze použít pro vytváření grafů i pro upozorňování. Vestavěný grafický systém je skvělý pro rychlé vizualizace, ale dlouhodobější dashboarding by měl být řešen v externích aplikacích, jako je Grafana.


Linux
  1. MySQL – ladění a optimalizace výkonu

  2. 24 Příklady iostat, vmstat a mpstat pro monitorování výkonu Linuxu

  3. Top 25 nejlepších nástrojů pro monitorování a ladění výkonu Linuxu

  1. Nainstalujte a používejte nástroj collectl Performance Monitoring Tool na Ubuntu 18.04 LTS

  2. Úvod do monitorování uživatelských účtů v Linuxu

  3. Konfigurace sledování výkonu služby Active Directory

  1. Jak vyvažuji funkce a výkon v mém linuxovém terminálu

  2. Úvod do diffů a patchů

  3. Monitorování a správa paměti