Monitorování je základem pro zjištění, zda vaše systémy fungují správně, a umožňuje vám opravit nebo předejít jakémukoli problému dříve, než ovlivní vaše podnikání. I v robustní technologii, jako je PostgreSQL, je monitorování nutností a hlavním cílem je vědět, co monitorovat, jinak by to nemohlo dávat smysl nebo být užitečné v případě, že to potřebujete použít. V tomto blogu uvidíme, co je Percona Distribution for PostgreSQL a jaké klíčové metriky na něm sledovat.
Distribuce Percona pro PostgreSQL
Je to soubor nástrojů, které vám pomohou se správou vašeho databázového systému PostgreSQL. Instaluje PostgreSQL a doplňuje jej o řadu rozšíření, která umožňují efektivní řešení základních praktických úkolů, včetně:
- pg_repack :Obnovuje databázové objekty PostgreSQL.
- pgaudit :Poskytuje podrobné protokolování auditu relace nebo objektu prostřednictvím standardního protokolovacího zařízení PostgreSQL.
- pgBackRest :Jedná se o řešení zálohování a obnovy pro PostgreSQL.
- Patroni :Jedná se o řešení s vysokou dostupností pro PostgreSQL.
- pg_stat_monitor :Shromažďuje a agreguje statistiky pro PostgreSQL a poskytuje informace o histogramu.
- Sbírka dalších rozšíření PostgreSQL contrib.
Distribuce Percona pro PostgreSQL se také dodává s knihovnou libpq. Obsahuje sadu funkcí knihovny, které umožňují klientským programům předávat dotazy na backend server PostgreSQL a přijímat výsledky těchto dotazů.
Co monitorovat v Percona Distribution pro PostgreSQL
Při monitorování databázového clusteru 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
Důležitou věcí je sledovat 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 procesy, které generují tento problém. 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 PostgreSQL
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ů
Ve výchozím nastavení je PostgreSQL nakonfigurován s ohledem na kompatibilitu a stabilitu, takže musíte znát své dotazy a jeho vzor a konfigurovat své 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.
Monitorování aktivních relací
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 hodnotu max_connections. 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ém 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 další 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ů.
Monitorování 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í.
Monitorování záloh
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í.
Monitorování protokolů databáze
Měli byste sledovat protokol databáze, zda neobsahuje chyby, jako je FATAL nebo uváznutí, nebo dokonce běžné chyby, jako jsou problémy s ověřováním nebo dlouhotrvající dotazy. Většina chyb je zapsána v souboru protokolu s podrobnými užitečnými informacemi k jejich opravě.
Panely
Viditelnost je užitečná pro rychlé zjištění problémů. Číst výstup příkazu je rozhodně časově náročnější úkol než jen sledovat graf. Použití řídicího panelu by tedy mohlo představovat rozdíl mezi detekcí problému nyní nebo v příštích 15 minutách, přičemž si můžete být jisti, že čas může být pro společnost skutečně důležitý.
Upozornění
Pouhé sledování systému nedává smysl, 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 jste před mnoha hodinami měli velký problém.
Monitorování vaší PostgreSQL databáze pomocí ClusterControl
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.
ClusterControl má pro vás předdefinovanou sadu ří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 integrovat s různými službami, jako je PagerDuty nebo Slack.
Můžete se také podívat do sekce Monitor dotazů, kde najdete nejčastější dotazy, běžící dotazy, odlehlé dotazy a statistiky dotazů.
S těmito funkcemi můžete vidět, jak si vede vaše PostgreSQL databáze.
Pro správu záloh je ClusterControl centralizuje, aby chránila, zabezpečovala a obnovovala vaše data a pomocí funkce ověřování zálohy můžete potvrdit, zda je záloha v pořádku.
Tato ověřovací zálohovací úloha obnoví zálohu v samostatném samostatném hostiteli, takže můžete se ujistit, že záloha funguje.
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 vašeho databázového clusteru.
Seznam klastrů
Seznam uzlů
Závěr
Monitorování je naprosto nezbytné a nejlepší způsob, jak jej provést, závisí na infrastruktuře a samotném systému. V tomto blogu vám představíme distribuci Percona pro PostgreSQL a zmínili jsme některé důležité metriky, které je třeba sledovat ve vašem prostředí PostgreSQL. Také jsme vám ukázali, jak je ClusterControl pro tento úkol užitečný.