sql >> Databáze >  >> NoSQL >> MongoDB

Monitorování výkonu a zdraví ClusterControl

V předchozích dvou příspěvcích na blogu jsme se zabývali jak nasazením čtyř typů clusteringu/replikace (MySQL/Galera, MySQL Replication, MongoDB &PostgreSQL), tak správou/monitorováním vašich stávajících databází a clusterů. Takže po přečtení těchto dvou prvních blogových příspěvků jste mohli přidat svých 20 existujících nastavení replikace do ClusterControl, rozšířit je a navíc nasadit dva nové clustery Galera a přitom dělat spoustu dalších věcí. Nebo jste možná nasadili systémy MongoDB a/nebo PostgreSQL. Tak a teď, jak je udržujete zdravé?

To je přesně to, o čem je tento blogový příspěvek:jak využít funkce sledování výkonu ClusterControl a poradců, aby byly vaše databáze a clustery MySQL, MongoDB a/nebo PostgreSQL zdravé. Jak se to tedy dělá v ClusterControl?

Seznam klastrů databáze

Nejdůležitější informace již lze nalézt v seznamu clusterů:pokud nejsou žádné alarmy a žádní hostitelé nejsou zobrazeni jako nefunkční, vše funguje správně. Alarm se spustí, pokud je splněna určitá podmínka, např. hostitel se mění a upozorňuje vás na problém, který byste měli prošetřit. To znamená, že alarmy se nejen spustí během výpadku, ale také vám umožní proaktivně spravovat vaše databáze.

Předpokládejme, že byste se přihlásili do ClusterControl a viděli výpis clusteru jako je tento, určitě budete mít co zkoumat:jeden uzel je například dole v clusteru Galera a každý cluster má různé alarmy:

Jakmile kliknete na jeden z alarmů, přejdete na podrobnou stránku všech alarmů clusteru. Podrobnosti o alarmu vysvětlí problém a ve většině případů také doporučí akci k vyřešení problému.

Můžete si nastavit vlastní alarmy vytvořením vlastních výrazů, ale to bylo zamítnuto ve prospěch našeho nového Developer Studio, které vám umožňuje psát vlastní Javascripty a spouštět je jako poradci. K tomuto tématu se vrátíme později v tomto příspěvku.

Přehled clusteru – řídicí panely

Po otevření přehledu clusteru hned vidíme na kartách nejdůležitější metriky výkonu pro cluster. Tento přehled se může lišit podle typu clusteru, protože například Galera má jiné metriky výkonu ke sledování než tradiční MySQL, PostgreSQL nebo MongoDB.

Výchozí přehled i předvolené karty lze přizpůsobit. Kliknutím na Přehled -> Nastavení pomlčky zobrazí se vám dialog, který vám umožní definovat řídicí panel:

Stisknutím znaménka plus můžete přidat a definovat své vlastní metriky pro zobrazení grafu řídicího panelu. V našem případě definujeme nový řídicí panel s průměrem fronty odesílání a přijímání specifických pro Galera:

Tento nový řídicí panel by nám měl poskytnout dobrý přehled o průměrné délce fronty našeho clusteru Galera.

Po stisknutí tlačítka Uložit se pro tento cluster zpřístupní nový řídicí panel:

Podobně to můžete udělat i pro PostgreSQL, například můžeme sledovat sdílené bloky zasažené versus přečtené bloky:

Jak tedy vidíte, je relativně snadné přizpůsobit si svůj vlastní (výchozí) řídicí panel.

Přehled clusteru – Monitor dotazů

Karta Query Monitor je dostupná pro nastavení založená na MySQL i PostgreSQL a skládá se ze tří panelů:Top Queries, Running Queries a Query Outliers.

Na řídicím panelu Running Queries najdete všechny aktuální dotazy, které jsou spuštěny. Toto je v podstatě ekvivalent příkazu SHOW FULL PROCESSLIST v databázi MySQL.

Nejvyšší dotazy a odlehlé hodnoty dotazů se spoléhají na vstup protokolu pomalých dotazů nebo schématu výkonu. Použití schématu výkonu je vždy doporučeno a bude použito automaticky, pokud je povoleno. Jinak ClusterControl použije protokol pomalých dotazů MySQL k zachycení běžících dotazů. Chcete-li zabránit tomu, aby ClusterControl byl příliš rušivý a pomalý protokol dotazů se příliš nezvětšil, bude ClusterControl vzorkovat protokol pomalých dotazů jeho zapnutím a vypnutím. Tato smyčka je standardně nastavena na 1 sekundu zachycování a long_query_time je nastavena na 0,5 sekundy. Pokud chcete změnit tato nastavení pro váš cluster, můžete to změnit pomocí Nastavení -> Monitor dotazů .

Nejlepší dotazy budou, jak název napovídá, zobrazovat nejlepší dotazy, které byly vzorkovány. Můžete je seřadit podle různých sloupců:například frekvence, průměrná doba provádění, celková doba provádění nebo doba standardní odchylky:

Další podrobnosti o dotazu můžete získat jeho výběrem a tím se zobrazí plán provádění dotazu (pokud je k dispozici) a optimalizační tipy/rady. Odlehlé hodnoty dotazů jsou podobné nejčastějším dotazům, ale pak vám umožňují filtrovat dotazy podle hostitele a porovnávat je v čase.

Přehled clusteru – operace

Podobně jako systémy PostgreSQL a MySQL mají clustery MongoDB přehled operací a jsou podobné běžným dotazům MySQL. Tento přehled je podobný zadání příkazu db.currentOp() v MongoDB.

Přehled clusteru – výkon

MySQL/Galera

Karta Výkon je pravděpodobně nejlepším místem, kde najdete celkový výkon a stav vašich clusterů. Pro MySQL a Galera se skládá ze stránky Přehled, poradců, přehledů stavu/proměnných, analyzátoru schémat a protokolu transakcí.

Stránka Přehled vám poskytne graf přehledu nejdůležitějších metrik ve vašem clusteru. To se samozřejmě liší podle typu clusteru. Ve výchozím nastavení je nastaveno osm metrik, ale můžete si snadno nastavit vlastní – v případě potřeby až 20 grafů:

Advisors je jednou z klíčových funkcí ClusterControl:Advisors jsou skriptované kontroly, které lze spustit na vyžádání. Poradci mohou vyhodnotit téměř jakoukoli známou skutečnost o hostiteli a/nebo clusteru a vyjádřit svůj názor na stav hostitele a/nebo clusteru a dokonce mohou poradit, jak vyřešit problémy nebo zlepšit vaše hostitele!

Nejlepší část teprve přijde:své vlastní kontroly si můžete vytvořit ve Developer Studio (ClusterControl -> Manage -> Developer Studio ), spouštějte je v pravidelných intervalech a znovu je použijte v sekci Poradci. O této nové funkci jsme psali na blogu začátkem tohoto roku.

Přeskočíme přehled stavu/proměnných MySQL a Galera, protože je užitečný pro referenci, ale ne pro tento blogový příspěvek:stačí, když víte, že je zde.

Nyní předpokládejme, že vaše databáze roste, ale chcete vědět, jak rychle rostla za poslední týden. Ve skutečnosti můžete sledovat růst velikosti dat i indexů přímo z ClusterControl:

A kromě celkového nárůstu na disku může také hlásit 25 největších schémat.

Další důležitou funkcí je Schema Analyzer v rámci ClusterControl:

ClusterControl bude analyzovat vaše schémata a hledat redundantní indexy, tabulky MyISAM a tabulky bez primárního klíče. Samozřejmě je zcela na vás, zda si tabulku bez primárního klíče ponecháte, protože některá aplikace ji takto mohla vytvořit, ale alespoň je skvělé, že zde dostanete radu zdarma. Schema Analyzer dokonce doporučuje nezbytný příkaz ALTER k vyřešení problému.

PostgreSQL

Pro PostgreSQL naleznete poradce, stav DB a proměnné DB zde:

MongoDB

Pro MongoDB lze statistiky Mongo a přehled výkonu nalézt na kartě Výkon. Mongo Stats je přehled výstupu mongostatu a přehled výkonu poskytuje dobrý grafický přehled opcounterů MongoDB:

Poslední myšlenky

Ukázali jsme vám, jak sledovat nejdůležitější funkce ClusterControl pro monitorování a kontrolu stavu. Toto je samozřejmě jen začátek cesty, protože brzy zahájíme další sérii blogů o možnostech Developer Studio a o tom, jak můžete provádět většinu vlastních kontrol. Také mějte na paměti, že naše podpora pro MongoDB a PostgreSQL není tak rozsáhlá jako naše sada nástrojů MySQL, ale neustále se v tom zlepšujeme.

Možná se sami sebe ptáte, proč jsme přeskočili sledování výkonu a kontroly stavu HAProxy, ProxySQL a MaxScale. Udělali jsme to záměrně, protože série blogů dosud pokrývala pouze nasazení clusterů a nikoli nasazení komponent HA. To je tedy téma, kterému se budeme věnovat příště.


  1. Mongodb Query Výběr záznamů s daným klíčem

  2. Bylo dosaženo maximálního počtu připojení Azure Redis Cache

  3. Špatný výkon agregace vyhledávání

  4. MongoDB $strcasecmp