sql >> Databáze >  >> RDS >> PostgreSQL

Monitorování PostgreSQL v hybridním prostředí

Hybridní cloud je nedávný koncept, který byl několik let rozšířen a nyní je běžnou topologií v každé společnosti pro plán obnovy po havárii (DRP) nebo dokonce pro redundanci vašich systémů.

Jakmile zprovozníte prostředí Hybrid Cloud, budete muset neustále vědět, co se děje. Monitorování je nutností, pokud si chcete být jisti, že vše probíhá v pořádku nebo pokud potřebujete něco změnit. U každé databázové technologie je třeba sledovat několik věcí. Některé z nich jsou specifické pro databázový stroj, dodavatele nebo dokonce konkrétní verzi, kterou používáte.

V tomto blogu uvidíme, co je potřeba monitorovat v databázi PostgreSQL běžící v prostředí Hybrid Cloud a jak vám ClusterControl může pomoci s tímto úkolem.

Co monitorovat v PostgreSQL

Při monitorování databázového klastru nebo uzlu je třeba vzít v úvahu dvě hlavní věci:operační systém a samotnou databázi. Budete muset definovat, které metriky budete z obou stran sledovat a jak to budete dělat.

Mějte na paměti, že když je ovlivněna jedna z vašich metrik, může to ovlivnit i ostatní, takže řešení problému bude složitější. Aby byl tento úkol co nejjednodušší, je důležité mít dobrý monitorovací a výstražný systém.

Monitorování operačního systému

Jedna důležitá věc (která je společná všem databázovým strojům a dokonce všem systémům) je sledování chování operačního systému. Zde se podíváme na několik bodů, které je třeba zkontrolovat.

Využití CPU

Pokud se nejedná o obvyklé chování, může být problémem nadměrné procento využití procesoru. V tomto případě je důležité identifikovat proces/procesy, které tento problém generují. Pokud je problém v procesu databáze, budete muset zkontrolovat, co se děje uvnitř databáze.

Využití paměti RAM nebo SWAP

Pokud vidíte vysokou hodnotu této metriky a ve vašem systému se nic nezměnilo, pravděpodobně budete muset zkontrolovat konfiguraci databáze. Parametry jako shared_buffers a work_mem to mohou přímo ovlivnit, protože definují množství paměti, kterou lze použít pro databázi PostgreSQL.

Využití disku

Neobvyklé zvýšení využití místa na disku nebo nadměrná spotřeba přístupu na disk jsou důležité věci, které je třeba sledovat, protože můžete mít vysoký počet chyb zaznamenaných v souboru protokolu PostgreSQL nebo špatnou konfiguraci mezipaměti, která by mohla generovat důležitou spotřebu přístupu na disk namísto použití paměti ke zpracování dotazů.

Průměrné zatížení

Souvisí se třemi výše uvedenými body. Vysoké průměrné zatížení může být generováno nadměrným využitím CPU, RAM nebo disku.

Síť

Problém se sítí může ovlivnit všechny systémy, protože aplikace se nemůže připojit (nebo připojit ztracené balíčky) k databázi, takže je to skutečně důležitá metrika ke sledování. Můžete sledovat latenci nebo ztrátu paketů a hlavním problémem může být saturace sítě, problém s hardwarem nebo jen špatná konfigurace sítě.

Monitorování databáze

Monitorování vaší PostgreSQL databáze není důležité jen proto, abyste viděli, zda nemáte problém, ale také abyste věděli, zda potřebujete něco změnit, abyste zlepšili výkon databáze, to je pravděpodobně jedna z nejdůležitějších věcí. sledovat v databázi. Podívejme se na některé metriky, které jsou pro to důležité.

Monitorování dotazů

Obecně jsou databáze ve výchozím nastavení konfigurovány s ohledem na kompatibilitu a stabilitu, takže musíte znát své dotazy a jejich vzor a konfigurovat databáze v závislosti na provozu, který máte. Zde můžete použít příkaz EXPLAIN ke kontrole plánu dotazů pro konkrétní dotaz a také můžete sledovat množství SELECT, INSERT, UPDATE nebo DELETE na každém uzlu. Pokud máte dlouhý dotaz nebo vysoký počet dotazů spuštěných současně, může to být problém pro všechny systémy.

Aktivní relace

Měli byste také sledovat počet aktivních relací. Pokud se blížíte limitu, musíte zkontrolovat, zda něco není v pořádku, nebo zda jen potřebujete zvýšit maximální hodnotu připojení v konfiguraci databáze. Rozdílem v počtu může být nárůst nebo pokles připojení. Špatné používání sdružování připojení, zamykání nebo problémy se sítí jsou nejčastější problémy související s počtem připojení.

Zámky databáze

Pokud máte dotaz čekající na další dotaz, musíte zkontrolovat, zda je tento dotaz normálním procesem nebo něčím novým. V některých případech, pokud někdo například provádí aktualizaci velkého stolu, může tato akce ovlivnit normální chování vaší databáze a generovat vysoký počet zámků.

Stav replikace

Klíčovými metrikami ke sledování replikace jsou zpoždění a stav replikace. Nejběžnějšími problémy jsou problémy se sítí, problémy s hardwarovými prostředky nebo problémy s dimenzováním. Pokud čelíte problému s replikací, budete to muset vědět co nejdříve, protože to budete muset opravit, abyste zajistili prostředí s vysokou dostupností.

Zálohy

Zabránění ztrátě dat je jedním ze základních úkolů DBA, takže nemusíte pouze zálohovat, ale měli byste vědět, zda byla záloha dokončena a zda je použitelná. Obvykle se tento poslední bod nebere v úvahu, ale je to pravděpodobně nejdůležitější kontrola v procesu zálohování.

Protokoly databáze

Měli byste sledovat protokol databáze, zda neobsahuje chyby, problémy s ověřováním nebo dokonce dlouhotrvající dotazy. Většina chyb je zapsána v souboru protokolu s podrobnými užitečnými informacemi k jejich opravě.

Oznámení a upozornění

Pouhé sledování systému nestačí, pokud neobdržíte oznámení o každém problému. Bez výstražného systému byste měli přejít do monitorovacího nástroje, abyste zjistili, zda je vše v pořádku, a je možné, že před mnoha hodinami máte velký problém. Tuto upozorňovací práci lze provést pomocí e-mailových upozornění, textových upozornění nebo jiných nástrojů, jako je Slack.

Je opravdu těžké najít nástroj pro sledování všech nezbytných metrik pro PostgreSQL, obecně budete muset použít více než jednu a dokonce bude potřeba udělat nějaké skriptování. Jedním ze způsobů centralizace úlohy monitorování a upozornění je použití ClusterControl, které vám poskytuje funkce, jako je správa zálohování, monitorování a upozornění, nasazení a škálování, automatické obnovení a další důležité funkce, které vám pomohou spravovat databáze. Všechny tyto funkce na stejném systému.

Důležitým bodem je, že ClusterControl funguje v cloudu, On-prem nebo dokonce v kombinaci obou. Zde je požadavkem mít přístup SSH k uzlům a poté se o ně ClusterControl postará.

Monitorování vaší PostgreSQL databáze pomocí ClusterControl

ClusterControl je systém pro správu a monitorování, který pomáhá nasazovat, spravovat, monitorovat a škálovat vaše databáze z přátelského rozhraní. Podporuje špičkové technologie open source databází a můžete automatizovat mnoho databázových úloh, které musíte pravidelně provádět, jako je přidávání a škálování nových uzlů, spouštění záloh a obnovy a další.

ClusterControl vám umožňuje monitorovat vaše servery v reálném čase pomocí předem definované sady řídicích panelů pro analýzu některých nejběžnějších metrik.

Umožňuje vám přizpůsobit grafy dostupné v clusteru a můžete povolit monitorování založené na agentech, aby bylo možné generovat podrobnější řídicí panely.

Můžete také vytvářet výstrahy, které vás informují o událostech ve vašem clusteru, nebo je lze integrovat s různými službami, jako je PagerDuty nebo Slack.

V sekci sledování dotazů můžete najít nejčastější dotazy, spuštěné dotazy, odlehlé hodnoty dotazů a statistiky dotazů pro sledování provozu databáze.

S těmito funkcemi můžete vidět, jak vaše PostgreSQL databáze funguje.

Pro správu záloh je ClusterControl centralizuje, aby chránil, zabezpečoval a obnovoval vaše data a pomocí funkce ověřování zálohování můžete potvrdit, zda je záloha v pořádku.

Tato ověřovací úloha zálohování obnoví zálohu v samostatném samostatném hostiteli, takže se můžete ujistit, že záloha funguje.

Konečně, ke kontrole protokolů nepotřebujete přistupovat do svého databázového uzlu, všechny své databázové protokoly najdete centralizovaně v sekci ClusterControl Log.

Jak vidíte, všechny zmíněné věci zvládnete ze stejného centralizovaného systému:ClusterControl.

Monitorování pomocí příkazového řádku ClusterControl

Pro skriptování a automatizaci úloh, nebo i když dáváte přednost příkazovému řádku, má ClusterControl nástroj s9s. Je to nástroj příkazového řádku pro správu nebo monitorování vašeho databázového clusteru.

Seznam klastrů

Seznam uzlů

Můžete provádět všechny úkoly (a ještě více) dostupné v uživatelském rozhraní ClusterControl a tuto funkci můžete integrovat s některými externími nástroji, jako je slack, a spravovat ji odtud.

Závěr

Jak vidíte, monitorování je naprosto nezbytné, bez ohledu na to, zda běží on-prem, na cloudu nebo dokonce na mixu z nich, a nejlepší způsob, jak to udělat, závisí na infrastruktuře a samotném systému. V tomto blogu jsme zmínili některé důležité metriky, které je třeba sledovat ve vašem prostředí PostgreSQL, jak používat ClusterControl k provedení této práce.


  1. Generování série dat

  2. foreach %dopar% + RPostgreSQL

  3. Převeďte dotaz SQL Server na MySQL

  4. SQL Server Query:Rychlý s doslovným, ale pomalý s proměnným