Databaseovervågning og alarmering er en særlig vigtig del af databaseoperationer, da vi skal forstå databasens aktuelle tilstand. Hvis du ikke har god databaseovervågning på plads, vil du ikke hurtigt kunne finde problemer i databasen. Dette kan så resultere i nedetid.
Et tilgængeligt værktøj til overvågning er pgDash, en SaaS-applikation til overvågning og alarmering for PostgreSQL-databasen.
pgDash installationsprocedure
Tilmelding til pgDash kan ske via hjemmesiden eller kan også downloades (selv-hostet) som leveret af RapidLoop.
Installationsprocessen for pgDash er enkel, vi skal blot downloade den nødvendige pakke fra pgDash for at blive konfigureret på værts-/databaseserversiden.
Du kan køre processen som følger:
[[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
Udover pgDash skal du have en anden pakke, pgmetrics, der skal installeres til overvågning. pgmetrics er et open source-værktøj, hvis opgave er at indsamle information og statistik i databasen, der er nødvendig for pgDash, mens pgdashs opgave er at sende disse oplysninger til dashboardet.
Hvis du vil tilføje flere databaser til overvågningsplatformen, skal du bruge for at gentage ovenstående proces for hver database.
Selvom installationen af pgDash er enkel, er der gentagne processer, der kan blive et problem, hvis der er yderligere databaser, der skal overvåges. Du skal højst sandsynligt lave et automatiseringsscript til det.
pgDash-metrics
Der er 3 hovedfunktioner under pgDash Dashboard, disse er:
- Dashboard :består af undermenuer såsom:Oversigt, Database, Forespørgsler, Backend, Låse, Tablespace, Replikering, WAL-filer, BG Writers, Vakuum, Roller, Konfiguration.
- Værktøjer :består af undermenuer, såsom Index Management, Tablespace Management, Diagnostics og Top-K.
- Advarsler :består af undermenuer såsom Alerts &Change Alerts.
PostgreSQL-overvågning af ClusterControl
Overvågning udført af ClusterControl bruger ssh-metoden og direkte forbindelse fra controller-knuden til måldatabasenoden til at indsamle information, der skal vises på dashboardet.
ClusterControl har også en agentbaseret overvågningsfunktion, der nemt kan aktiveres. Du kan se det nedenfor...
ClusterControl vil derefter udføre prometheus-installationsprocessen, nodeeksportører og PostgreSQL eksportører i den målrettede database, der har til formål at indsamle og indsamle oplysninger, der kræves af dashboardet for at vise metrics.
Hvis agentbaseret overvågning er aktiv, vil enhver ny måldatabase automatisk blive tilføjet og overvåget af agentbaseret overvågning.
ClusterControl Dashboards
Her kan du se information i PostgreSQL Cluster Overview og System Information skærmbillederne. I denne funktion kan du se detaljerede oplysninger såsom db-version, transaktions-id, sidste kontrolpunkt og dato og klokkeslæt, når serveren er i live. Disse oplysninger er afbildet nedenfor:
På siden Systeminformation kan vi få oplysninger såsom Load Average, Hukommelsesbrug, Swap Usage, se billedet nedenfor:
- Database :du kan få oplysninger såsom db-navn, db-størrelse, antal tabeller, indeks og også tablespace.
- Forespørgsler :du kan overvåge opkald, diskskrivning, disklæsning, bufferhit fra forespørgsler. Du kan også søge i enhver forespørgsel, der kører inden for en bestemt tidsperiode.
- Backend :du kan overvåge den aktuelle tilstand af databasebackend, inden for denne information er kritiske detaljer angivet, såsom backends, der venter på låsene, andre ventende backends, transaktionen åben for længe, backend i tomgang i transaktionen. Du kan også se alle de backends, der kører i databasen.
- Låse :Du kan kontrollere antallet af samlede låse, låse, der ikke er givet, og blokerede forespørgsler.
- Tablespace :giver information relateret til tablespace, dvs. tablespace størrelse, brug af disk og inoder.
- Replikationer :du kan overvåge din replikeringsstatus i PostgreSQL-databasen, starte fra replikeringsplads, indgående replikering, udgående replikering, replikeringspublikationer og replikeringsabonnementer.
- Wal-filer :giver information relateret til WAL (Write Ahead Log) og også statistik, f.eks.: WAL-filantal, WAL-genereringshastighed, WAL-filer genereret hver time.
- BG Writers :giver information relateret til kontrolpunktdatabase, buffer skrevet og parametre relateret til baggrundsskriveren.
- Vakuumfremskridt :indeholder information relateret til det vakuum, der kører i databasen, også vakuumparametre.
- Roller :indeholder information relateret til de roller, der findes i databasen, inklusive privilegier.
- Konfiguration :indeholder parametre i databasen PostgreSQL.
Inde i Værktøjer er der undermenuer såsom Index Management, der gav information dvs. Ubrugt Index, Bloat Index, og Index med lav cache-hitforhold. Tablespace Management giver information relateret til Tablespace og andre tilgængelige objekter under.
Diagnostik, for at forstå de potentielle problemer, der kan opstå gennem Top 10 mest opsvulmede tabeller, Top 10 mest oppustede indekser, liste over inaktive replikationspladser, Top 10 længst kørende transaktioner osv.
ClusterControl har adskillige metrics under adskilt menu, disse er Oversigt, Noder, Dashboard, Query Monitor og Performance, se billedet nedenfor :
Når agentbaseret overvågning er aktiveret, derfor alle oplysninger relateret til statistik og anden information relateret til databasen vil blive lagret i en tidsseriedatabase (prometheus). Du kan se disse oplysninger i ClusterControl som vist nedenfor :
I Query Monitor kan du finde Top Queries, Running Queries, Query Outliers eller Query Statistics menuer. De giver information relateret til kørende forespørgsel, topforespørgsel og databasens statistik. Du kan også konfigurere langsomme forespørgsler og ikke-indekserende forespørgsler.
På ydeevne er der undermenuer såsom DB Growth, der kan vise oplysninger om database- og tabelstørrelsesstatistikker. Schema Analyzer giver information relateret til redundant indeks og tabel uden primærnøgle.
PostgreSQL-advarsel
Der er to dele af advarsel...
- Advarselsregler :varslingsregler spiller en stor rolle, du kan definere grænser som parametre, der kan udløse alarm til DBA.
- Tredjepartsintegration :er en integrationskanal til hændelsesstyringsplatformen for kommunikation og samarbejde såsom:PagerDuty, OpsGenie, Slack eller via e-mail.
PgDash har mange muligheder for databaseparametre, du kan indstille relateret til advarselsreglen, opdelt i flere lag startende fra Server, Database, Tabel, Indeks, Tablespace og Forespørgsel. Du kan se disse oplysninger i pgDash som afbildet nedenfor...
Med hensyn til tredjepartsintegrationskanalen har pgDash understøttelse af flere kanaler, f.eks. som Slack, Pagerduty, VictorOps, Xmatters, e-mail eller lave deres egne webhooks, så de kan forbruges af andre tjenester.
Følgende er udseendet af tredjepartsintegrationen af pgDash :
I modsætning til pgDash har ClusterControl en bredere og mere generel eventalarmmulighed , startende med advarsler relateret til værten, netværket, klyngen og selve databasen. Følgende er eksempler på begivenhedsmuligheder, der kan vælges:
ClusterControl kan vælge flere databaseklynger i én hændelsesalarm. Tredjepartsintegration fra ClusterControl understøtter flere hændelsesstyrings- og kommunikations-/samarbejdsværktøjer såsom PagerDuty, VictorOps, Telegram, OpsGenie, Slack, ServiceNow, eller kan oprette din egen webhook.
I afsnittet om varslingsregler har både pgDash og ClusterControl fordele og ulemper. Fordelen ved pgDash er, at du kan indstille meget detaljerede databaseadvarsler relateret til, hvad der vil blive sendt, mens ulempen er, at du skal lave disse indstillinger i hver database (selvom der er en funktion til at importere fra andre databasekonfigurationer.
ClusterControl mangler detaljerede hændelsesadvarsler, kun generelle databasehændelser, men ClusterControl kan sende advarsler ikke kun relateret til databasen, men kan sende hændelsesalarmer fra noder, klynger, netværk osv. Udover det kan du indstille disse advarsler for flere databaseklynger.
I afsnittet Tredjepartsintegration har pgDash og ClusterControl begge understøttelse af forskellige tredjepartshændelsesstyrings- og kommunikationskanaler. De kan faktisk begge lave deres egen webhook, så den kan forbruges af andre tjenester (f.eks. Grafana).