Databasövervakning och varning är en särskilt viktig del av databasoperationer, eftersom vi måste förstå databasens nuvarande tillstånd. Om du inte har bra databasövervakning på plats kommer du inte att kunna hitta problem i databasen snabbt. Detta kan då leda till stillestånd.
Ett verktyg som är tillgängligt för övervakning är pgDash, en SaaS-applikation för övervakning och varning för PostgreSQL-databasen.
pgDash installationsprocedur
Registrering för pgDash kan göras via webbplatsen eller kan även laddas ner (egen värd) enligt RapidLoop.
Installationsprocessen för pgDash är enkel, vi behöver bara ladda ner paketet som behövs från pgDash för att konfigureras på värd-/databasserversidan.
Du kan köra processen enligt följande:
[[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
Förutom pgDash behöver du ett annat paket, pgmetrics, som ska installeras för övervakning. pgmetrics är ett verktyg med öppen källkod vars jobb är att samla in information och statistik i databasen som behövs av pgDash, medan pgdashs uppgift är att skicka den informationen till instrumentpanelen.
Om du vill lägga till fler databaser till övervakningsplattformen behöver du för att upprepa ovanstående process för varje databas.
Även om installationen av pgDash är enkel, finns det repetitiva processer som kan bli ett problem om det finns ytterligare databaser som behöver övervakas. Du kommer troligen att behöva göra ett automatiseringsskript för det.
pgDash Metrics
Det finns tre huvudfunktioner under pgDash Dashboard, de är:
- Dashboard :består av undermenyer som:Översikt, Databas, Frågor, Backend, Lås, Tabellutrymme, Replikering, WAL-filer, BG Writers, Vakuum, Roller, Konfiguration.
- Verktyg :består av undermenyer, såsom Index Management, Tablespace Management, Diagnostics och Top-K.
- Varningar :består av undermenyer som Alerts &Change Alerts.
PostgreSQL-övervakning med ClusterControl
Övervakning utförd av ClusterControl använder ssh-metoden och direkt anslutning från styrenhetens nod till måldatabasnoden för att samla in information som behövs för att visas på instrumentpanelen.
ClusterControl har också en agentbaserad övervakningsfunktion som enkelt kan aktiveras. Du kan se det nedan...
ClusterControl kommer sedan att utföra prometheus-installationsprocessen, nodexportörer och PostgreSQL exportörer, i den riktade databasen som syftar till att samla in och samla in information som krävs av instrumentpanelen för att visa statistik.
Om agentbaserad övervakning är aktiv kommer alla nya måldatabaser att läggas till automatiskt och övervakas av agentbaserad övervakning.
ClusterControl Dashboards
Här kan du se information på skärmarna för PostgreSQL-klusteröversikt och systeminformation. I den här funktionen kan du se detaljerad information som db-version, transaktions-ID, senaste kontrollpunkt och datum och tid när servern är i drift. Denna information visas nedan:
På sidan Systeminformation kan vi få information som belastningsmedelvärde, Minnesanvändning, Swap Usage, se bilden nedan:
- Databas :du kan få information som db-namn, db-storlek, antal tabeller, index och även tabellutrymme.
- Frågor :du kan övervaka samtal, diskskrivning, diskläsning, buffertträff från frågor. Du kan också söka på alla sökfrågor som körs inom en viss tidsperiod.
- Backend :du kan övervaka det aktuella tillståndet för databasens backend, inom denna information tillhandahålls kritiska detaljer, såsom backends som väntar på låsen, andra väntande backends, transaktionen öppen för länge, backend i tomgång i transaktionen. Du kan också se alla backends som körs i databasen.
- Lås :Du kan kontrollera antalet totala lås, lås som inte beviljats och blockerade frågor.
- Bordutrymme :ger information relaterad till tabellutrymme, dvs. tabellutrymmesstorlek, användning av disk och inoder.
- Replikationer :du kan övervaka din replikeringsstatus i PostgreSQL-databasen, börja från replikeringsplats, inkommande replikering, utgående replikering, replikeringspublikationer och replikeringsprenumerationer.
- Wal-filer :tillhandahåller information relaterad till WAL (Write Ahead Log) och även statistik, t.ex.: WAL-filantal, WAL-genereringshastighet, WAL-filer som genereras varje timme.
- BG Writers :tillhandahåller information relaterad till kontrollpunktsdatabasen, buffertskriven och parametrar relaterade till bakgrundsskrivaren.
- Vakuumframsteg :innehåller information relaterad till vakuumet som körs i databasen, även vakuumparametrar.
- Roller :innehåller information relaterad till de roller som finns i databasen inklusive privilegier.
- Konfiguration :innehåller parametrar i databasen PostgreSQL.
Inuti Tools finns undermenyer som Index Management som gav information dvs. Oanvänt Index, Bloat Index och Index med låg cache-träffförhållande. Tablespace Management tillhandahåller information relaterad till Tablespace och andra objekt tillgängliga under.
Diagnostik, för att förstå de potentiella problem som kan uppstå genom topp 10 mest uppsvällda tabeller, topp 10 mest uppsvällda index, lista över inaktiva replikeringsplatser, topp 10 längsta transaktioner, etc.
ClusterControl har flera mätvärden under separata menyer, de är Översikt, Noder, Dashboard, Query Monitor och Performance, se bilden nedan:
När agentbaserad övervakning är aktiverad, därför all information relaterad till statistik och annan information relaterad till databasen kommer att lagras i en tidsseriedatabas (prometheus). Du kan se den informationen i ClusterControl som visas nedan:
I Query Monitor kan du hitta Top Queries, Running Queries, Query Outliers, eller Query Statistics-menyer. De tillhandahåller information relaterad till pågående fråga, toppfråga och statistik för databasen. Du kan också konfigurera långsamma frågor och icke-indexerande frågor.
På Performance finns det undermenyer som DB Growth som kan visa information om databas- och tabellstorleksstatistik. Schema Analyzer tillhandahåller information relaterad till redundant index och tabell utan primärnyckel.
PostgreSQL-varning
Det finns två delar av varning...
- Varningsregler :varningsregler spelar en stor roll, du kan definiera gränser som parametrar som kan utlösa larm till DBA.
- Tredjepartsintegration :är en integrationskanal till incidenthanteringsplattformen för kommunikation och samarbete såsom:PagerDuty, OpsGenie, Slack eller via e-post.
PgDash har många alternativ för databasparametrar som du kan ställa in relaterade till varningsregeln, uppdelade i flera lager från Server, Databas, Tabell, Index, Tablespace och Query. Du kan se den informationen i pgDash som visas nedan...
När det gäller tredjepartsintegreringskanalen har pgDash stöd för flera kanaler, t.ex. som Slack, Pagerduty, VictorOps, Xmatters, e-post eller att göra sina egna webhooks så att de kan konsumeras av andra tjänster.
Följande är utseendet på tredjepartsintegreringen av pgDash :
I motsats till pgDash har ClusterControl ett bredare och mer allmänt alternativ för händelsevarning , som börjar med varningar relaterade till värden, nätverket, klustret och själva databasen. Följande är exempel på händelsealternativ som kan väljas :
ClusterControl kan välja flera databaskluster i en händelsevarning. Tredjepartsintegration från ClusterControl stöder flera incidenthanterings- och kommunikations-/samarbetsverktyg som PagerDuty, VictorOps, Telegram, OpsGenie, Slack, ServiceNow, eller kan skapa din egen webhook.
I avsnittet om varningsregler har både pgDash och ClusterControl fördelar och nackdelar. Fördelen med pgDash är att du kan ställa in mycket detaljerade databasvarningar relaterade till vad som kommer att skickas, medan nackdelen är att du måste göra dessa inställningar i varje databas (även om det finns en funktion att importera från andra databaskonfigurationer.
ClusterControl saknar detaljerade händelsevarningar, bara allmänna databashändelser, men ClusterControl kan skicka varningar inte bara relaterade till databasen, utan kan skicka händelsevarningar från noder, kluster, nätverk, etc. Dessutom kan du ställa in dessa varningar för flera databaskluster.
I avsnittet Tredjepartsintegration har både pgDash och ClusterControl stöd för olika incidenthantering och kommunikationskanaler från tredje part. Båda kan faktiskt göra sin egen webhook så att den kan konsumeras av andra tjänster (t.ex. Grafana).