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

Tipy pro monitorování PostgreSQL pro Moodle

Moodle je Learning Management System (LMS) navržený tak, aby poskytoval pedagogům, administrátorům a studentům jediný robustní, bezpečný a integrovaný systém pro vytváření personalizovaných vzdělávacích prostředí. Podporuje různé databázové technologie (např. MariaDB, MySQL, PostgreSQL atd.).

Kvůli COVID-19 se práce a studium z domova v poslední době exponenciálně zvýšilo, takže dostupnost a výkon tohoto druhu výukové platformy jsou stále důležitější. Jediným způsobem, jak se můžete ujistit, že vše běží v pořádku, je mít dobrý systém monitorování a varování, ale otázkou je, co musíte monitorovat, abyste zajistili, že vaše systémy fungují správně.

V tomto blogu se podíváme na to, co potřebujete monitorovat v PostgreSQL Moodle databázi a jak to můžete snáze pomocí ClusterControl.

Co monitorovat v PostgreSQL

Při monitorování databázového uzlu nebo 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 sledovat z obou stran a jak to budete dělat.

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émy) je sledovat chování operačního systému. Zde je několik bodů ke kontrole.

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 u této metriky vidíte vysokou hodnotu 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 jeho 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

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ů.

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.

Monitorování databáze PostgreSQL Moodle 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í. ClusterControl 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ší.

Umožňuje vám monitorovat vaše servery v reálném čase pomocí předdefinované 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 umožnit 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 jej integrujte s různými službami, jako je PagerDuty nebo Slack.

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

Pro správu záloh jej ClusterControl centralizuje, aby chránil, zabezpečoval a obnovoval data a pomocí funkce ověření 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.

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 Log ClusterControl.

Jak vidíte, všechny zmíněné věci zvládnete ze stejného centralizovaný systém: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 vašeho databázového clusteru.

Seznam klastrů

Seznam uzlů

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

Závěr

Monitorování vaší Moodle PostgreSQL databáze je nezbytné, ale také časově náročné, pokud nemáte žádný nástroj, který by vám s tím pomohl. V tomto blogu jsme zmínili některé klíčové metriky, které je třeba sledovat ve vaší databázi Moodle PostgreSQL, a jak udržet své systémy pod kontrolou pomocí ClusterControl.


  1. Jak automatizovat dotazy na kontingenční tabulky v MySQL

  2. Návod Jak zálohovat a obnovovat (exportovat a importovat) databáze MySQL

  3. Jak zrušit databázi PostgreSQL, pokud k ní existují aktivní připojení?

  4. Flexibilní a ovladatelné návrhy kusovníků (BOM).