Sledování a upozorňování databáze je zvláště důležitou součástí databázových operací, protože musíme rozumět aktuálnímu stavu databáze. Pokud nemáte dobré monitorování databáze, nebudete schopni rychle najít problémy v databázi. To by pak mohlo mít za následek prostoje.
Jedním z dostupných nástrojů pro monitorování je pgDash, aplikace SaaS pro monitorování a upozorňování na databázi PostgreSQL.
Postup instalace pgDash
Registrace pro pgDash může být provedena prostřednictvím webové stránky nebo může být také stažena (s vlastním hostováním), jak poskytuje RapidLoop.
Instalační proces pgDash je jednoduchý, stačí si stáhnout balíček potřebný z pgDash, aby byl nakonfigurován na straně hostitele / databázového serveru.
Proces můžete spustit následovně:
[[email protected] ~]$ curl -O -L https://github.com/rapidloop/pgmetrics/releases/download/v1.9.0/pgmetrics_1.9.0_linux_amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 647 100 647 0 0 965 0 --:--:-- --:--:-- --:--:-- 964
100 3576k 100 3576k 0 0 189k 0 0:00:18 0:00:18 --:--:-- 345k
[[email protected] ~]$ tar xvf pgmetrics_1.9.0_linux_amd64.tar.gz
pgmetrics_1.9.0_linux_amd64/LICENSE
pgmetrics_1.9.0_linux_amd64/README.md
pgmetrics_1.9.0_linux_amd64/pgmetrics
[[email protected] ~]$ curl -O -L https://github.com/rapidloop/pgdash/releases/download/v1.5.1/pgdash_1.5.1_linux_amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 644 100 644 0 0 1370 0 --:--:-- --:--:-- --:--:-- 1367
100 2314k 100 2314k 0 0 361k 0 0:00:06 0:00:06 --:--:-- 560k
[[email protected] ~]$ tar xvf pgdash_1.5.1_linux_amd64.tar.gz
pgdash_1.5.1_linux_amd64/LICENSE
pgdash_1.5.1_linux_amd64/README.md
pgdash_1.5.1_linux_amd64/pgdash
[[email protected] ~]$ ./pgmetrics_1.9.0_linux_amd64/pgmetrics --no-password -f json ccdb | ./pgdash_1.5.1_linux_amd64/pgdash -a NrxaHk3JH2ztLI06qQlA4o report myserver1
Kromě pgDash budete pro monitorování potřebovat další balíček, pgmetrics. pgmetrics je nástroj s otevřeným zdrojovým kódem, jehož úkolem je shromažďovat informace a statistiky v databázi potřebné pro pgDash, zatímco úkolem pgdash je odesílat tyto informace na řídicí panel.
Pokud chcete do monitorovací platformy přidat další databáze, budete potřebovat zopakujte výše uvedený proces pro každou databázi.
I když je instalace pgDash jednoduchá, existují opakující se procesy, které se mohou stát problémem, pokud existují další databáze, které je třeba monitorovat. K tomu budete s největší pravděpodobností muset vytvořit automatizační skript.
Metriky pgDash
Pod ovládacím panelem pgDash jsou 3 hlavní funkce:
- Hlavní panel :skládá se z dílčích nabídek, jako jsou:Přehled, Databáze, Dotazy, Backend, Zámky, Tabulkový prostor, Replikace, Soubory WAL, BG Writers, Vacuum, Role, Konfigurace.
- Nástroje :sestává z dílčích nabídek, jako je Správa indexu, Správa tabulkového prostoru, Diagnostika a Top-K.
- Upozornění :skládá se z dílčích nabídek, jako jsou Alerts &Change Alerts.
Monitorování PostgreSQL od ClusterControl
Monitorování prováděné ClusterControl využívá metodu ssh a přímé připojení z uzlu řadiče k uzlu cílové databáze při shromažďování informací potřebných k zobrazení na řídicím panelu.
ClusterControl má také funkci Agent Based Monitoring, kterou lze snadno aktivovat. Můžete to vidět níže...
ClusterControl poté provede proces instalace prometheus, exportéry uzlů a PostgreSQL exportéři v cílené databázi, jejímž cílem je shromažďovat a shromažďovat informace požadované řídicím panelem k zobrazení metrik.
Pokud je aktivní monitorování založené na agentech, každá nová cílová databáze bude automaticky přidána a monitorována pomocí monitorování založeného na agentech.
Řídicí panely ClusterControl
Zde můžete vidět informace na obrazovkách Přehled clusteru PostgreSQL a Systémové informace. V této funkci můžete vidět podrobné informace, jako je verze databáze, ID transakce, poslední kontrolní bod a datum a čas, kdy je server naživu. Tyto informace jsou zobrazeny níže:
Na stránce Systémové informace můžeme získat informace, jako je průměr zatížení, Využití paměti, Využití swapu, viz obrázek níže:
- Databáze :můžete získat informace, jako je název databáze, velikost databáze, počet tabulek, index a také tabulkový prostor.
- Dotazy :z dotazů můžete sledovat hovory, zápis na disk, čtení disku, zásah do vyrovnávací paměti. Můžete také hledat jakýkoli dotaz, který běží v určitém časovém období.
- Backend :můžete sledovat aktuální stav databázového backendu, v rámci těchto informací jsou uvedeny kritické detaily, jako jsou backendy čekající na zámky, další čekající backendy, transakce otevřená příliš dlouho, backend nečinný v transakci. Můžete také vidět všechny backendy, které běží v databázi.
- Zámky :Můžete zkontrolovat počet celkových uzamčení, neudělených zámků a zablokovaných dotazů.
- Tabulkový prostor :poskytuje informace týkající se tabulkového prostoru, tzn. velikost tabulkového prostoru, využití disku a inodů.
- Replikace :můžete sledovat stav replikace v databázi PostgreSQL, začít od replikačního slotu, příchozí replikace, odchozí replikace, replikačních publikací a předplatného replikace.
- Soubory Wal :poskytuje informace týkající se WAL (Write Ahead Log) a také statistiky, např.: Počet souborů WAL, rychlost generování WAL, soubory WAL generované každou hodinu.
- BG Writers :poskytuje informace týkající se databáze kontrolních bodů, zápisu do vyrovnávací paměti a parametrů souvisejících s aplikací Background Writer.
- Postup vakua :obsahuje informace týkající se vakua, které běží v databázi, také parametry vakua.
- Role :obsahuje informace související s rolemi, které existují v databázi, včetně oprávnění.
- Konfigurace :obsahuje parametry v databázi PostgreSQL.
Uvnitř nástrojů jsou podnabídky, jako je Správa indexů, které poskytovaly informace, tzn. Nepoužitý index, index nadýmání a index s nízkým poměrem zásahů do mezipaměti. Tablespace Management poskytuje informace související s Tablespace a dalšími objekty dostupnými pod.
Diagnostika k pochopení potenciálních problémů, které se mohou vyskytnout prostřednictvím 10 nejvíce nafouknutých tabulek, 10 nejvíce nafouknutých indexů, seznamu neaktivních replikačních slotů, 10 nejdéle běžících transakcí atd.
ClusterControl má v samostatné nabídce několik metrik, jsou to Přehled, Uzly, Dashboard, Monitor dotazů a Výkon, viz obrázek níže:
Když je povoleno monitorování založené na agentech, všechny informace související se statistikami a další informace související s databází budou uloženy v databázi časových řad (prometheus). Tyto informace můžete vidět v ClusterControl, jak je znázorněno níže:
V Monitoru dotazů můžete najít Nejčastější dotazy, Spuštěné dotazy, Dotaz Odlehlé hodnoty nebo nabídky Statistika dotazů. Poskytují informace týkající se spuštěného dotazu, hlavního dotazu a statistiky databáze. Můžete také nakonfigurovat pomalé dotazy a dotazy bez indexování.
V části Výkon jsou podnabídky, jako je Růst DB, které mohou zobrazovat informace o statistikách velikosti databáze a tabulky. Schema Analyzer poskytuje informace týkající se redundantního indexu a tabulky bez primárního klíče.
Upozornění PostgreSQL
Upozorňování má dvě části...
- Pravidla výstrah :pravidla upozornění hrají hlavní roli, můžete definovat limity jako parametry, které mohou spustit poplach pro DBA.
- Integrace třetí strany :je integračním kanálem platformy pro správu incidentů pro komunikaci a spolupráci, jako jsou:PagerDuty, OpsGenie, Slack nebo prostřednictvím e-mailu.
PgDash má mnoho možností databázových parametrů, které můžete nastavit v souvislosti s pravidlem výstrahy, rozdělených do několika vrstev počínaje serverem, databází, tabulkou, indexem, tabulkovým prostorem a dotazem. Tyto informace můžete vidět v pgDash, jak je znázorněno níže...
Pokud jde o integrační kanál třetí strany, pgDash podporuje několik kanálů, např. jako Slack, Pagerduty, VictorOps, Xmatters, e-mail nebo vytváření vlastních webhooků, aby je mohly využívat jiné služby.
Následuje podoba integrace třetí strany pgDash:
Na rozdíl od pgDash má ClusterControl širší a obecnější možnost upozornění na události , počínaje výstrahami souvisejícími s hostitelem, sítí, clusterem a samotnou databází. Níže jsou uvedeny příklady možností události, které lze vybrat:
ClusterControl může vybrat několik databázových clusterů v jedné výstrahě události. Integrace třetích stran od ClusterControl podporuje několik nástrojů pro správu incidentů a komunikaci/spolupráci, jako je PagerDuty, VictorOps, Telegram, OpsGenie, Slack, ServiceNow, nebo si může vytvořit svůj vlastní webhook.
V sekci pravidel výstrah mají pgDash i ClusterControl výhody i nevýhody. Výhodou pgDash je, že můžete nastavit velmi podrobné databázové výstrahy související s tím, co se bude odesílat, zatímco nevýhodou je, že tato nastavení musíte provést v každé databázi (i když existuje funkce pro import z jiných konfigurací databáze.
ClusterControl postrádá podrobná upozornění na události, pouze obecné události databáze, ale ClusterControl umí posílat upozornění nejen související s databází, ale může posílat upozornění na události z uzlů, clusterů, sítí atd. Kromě toho můžete nastavit tyto výstrahy pro několik databázových clusterů.
V sekci Integrace třetích stran mají pgDash a ClusterControl podporu pro různé správy incidentů třetích stran a komunikační kanály. Ve skutečnosti si oba mohou vytvořit svůj vlastní webhook, aby jej mohly využívat jiné služby (např. Grafana).