Databasecontrole en waarschuwing is een bijzonder belangrijk onderdeel van databasebewerkingen, omdat we de huidige status van de database moeten begrijpen. Als je geen goede database-monitoring hebt, zul je problemen in de database niet snel kunnen vinden. Dit kan dan resulteren in downtime.
Een tool die beschikbaar is voor monitoring is pgDash, een SaaS-toepassing voor monitoring en waarschuwingen voor de PostgreSQL-database.
pgDash Installatieprocedure
Registratie voor pgDash kan via de website of kan ook worden gedownload (zelf gehost) zoals geleverd door RapidLoop.
Het installatieproces van pgDash is eenvoudig, we hoeven alleen het benodigde pakket van pgDash te downloaden om te configureren aan de host-/databaseserverzijde.
U kunt het proces als volgt uitvoeren:
[[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
Behalve pgDash heb je een ander pakket, pgmetrics, nodig om te installeren voor monitoring. pgmetrics is een open source hulpprogramma wiens taak het is om informatie en statistieken te verzamelen in de database die pgDash nodig heeft, terwijl het de taak van pgdash is om die informatie naar het dashboard te sturen.
Als u meer databases aan het monitoringplatform wilt toevoegen, heeft u om het bovenstaande proces voor elke database te herhalen.
Hoewel de installatie van pgDash eenvoudig is, zijn er repetitieve processen die een probleem kunnen worden als er extra databases zijn die gecontroleerd moeten worden. Je zult daar waarschijnlijk een automatiseringsscript voor moeten maken.
pgDash-statistieken
Er zijn 3 hoofdfuncties onder pgDash Dashboard, namelijk:
- Dashboard :bestaat uit submenu's zoals:Overzicht, Database, Query's, Backend, Vergrendelingen, Tabelruimte, Replicatie, WAL-bestanden, BG Writers, Vacuüm, Rollen, Configuratie.
- Hulpprogramma's :bestaat uit submenu's, zoals Indexbeheer, Tabelruimtebeheer, Diagnostiek en Top-K.
- Meldingen :bestaat uit submenu's zoals Alerts &Change Alerts.
PostgreSQL-bewaking door ClusterControl
Bewaking uitgevoerd door ClusterControl gebruikt de ssh-methode en directe verbinding van het controllerknooppunt naar het doeldatabaseknooppunt bij het verzamelen van informatie die op het dashboard moet worden weergegeven.
ClusterControl heeft ook een Agent Based Monitoring-functie die eenvoudig kan worden geactiveerd. Je kunt het hieronder zien...
ClusterControl voert vervolgens het prometheus-installatieproces, de knooppuntexporters en PostgreSQL uit exporteurs, in de gerichte database die tot doel heeft informatie te verzamelen en te verzamelen die het dashboard nodig heeft om statistieken weer te geven.
Als Agent Based Monitoring actief is, wordt elke nieuwe doeldatabase automatisch toegevoegd en gecontroleerd door Agent Based Monitoring.
ClusterControl-dashboards
Hier kunt u informatie zien in de schermen PostgreSQL-clusteroverzicht en systeeminformatie. In deze functie kunt u gedetailleerde informatie zien, zoals db-versie, transactie-ID, laatste controlepunt en datum en tijd waarop de server in leven is. Deze informatie wordt hieronder weergegeven:
Op de systeeminformatiepagina kunnen we de informatie krijgen zoals Load Average, Geheugengebruik, Wisselgebruik, zie de afbeelding hieronder:
- Database :u kunt de informatie krijgen zoals db-naam, db-grootte, aantal tabellen, index en ook tablespace.
- Vragen :u kunt oproepen, schijfschrijven, schijflezen en bufferhit van query's volgen. U kunt ook zoeken naar elke zoekopdracht die binnen een bepaalde tijdsperiode wordt uitgevoerd.
- Backend :u kunt de huidige status van de database-backend volgen, binnen deze informatie worden kritieke details verstrekt, zoals backends die wachten op de vergrendelingen, andere wachtende backends, transactie te lang open, backend die inactief is in transactie. Je kunt ook alle backends zien die in de database draaien.
- Sloten :U kunt het totale aantal vergrendelingen, niet verleende vergrendelingen en geblokkeerde zoekopdrachten controleren.
- Tabelruimte :geeft informatie met betrekking tot tablespace, dwz. grootte van de tabelruimte, gebruik van schijf en Inodes.
- Replicaties :u kunt uw replicatiestatus volgen in de PostgreSQL-database, beginnen met replicatieslot, inkomende replicatie, uitgaande replicatie, replicatiepublicaties en replicatie-abonnementen.
- Wal-bestanden :biedt informatie met betrekking tot WAL (Write Ahead Log) en ook statistieken, bijvoorbeeld:WAL-bestandsaantallen, WAL-generatiesnelheid, WAL-bestanden die elk uur worden gegenereerd.
- BG-schrijvers :biedt informatie met betrekking tot de checkpoint-database, geschreven buffer en parameters met betrekking tot de Background Writer.
- Vacuümvoortgang :bevat informatie met betrekking tot het vacuüm dat in de database wordt uitgevoerd, ook vacuümparameters.
- Rollen :bevat informatie met betrekking tot de rollen die in de database bestaan, inclusief privileges.
- Configuratie :bevat parameters in database PostgreSQL.
Binnen Tools zijn er submenu's zoals Index Management die informatie verschaften, bijv. Ongebruikte Index, Bloat Index, dan Index met Lage Cache Hit Ratio. Tablespace Management biedt informatie met betrekking tot Tablespace en andere objecten die beschikbaar zijn onder.
Diagnose, om de potentiële problemen te begrijpen die kunnen optreden via de top 10 van meest opgeblazen tabellen, top 10 meest opgeblazen indexen, lijst met inactieve replicatieslots, top 10 van langstlopende transacties, enz.
ClusterControl heeft verschillende statistieken in een apart menu, namelijk Overzicht, Nodes, Dashboard, Query Monitor en Performance, zie onderstaande afbeelding:
Als Agent Based Monitoring is ingeschakeld, vandaar alle informatie met betrekking tot statistieken en andere informatie met betrekking tot de database wordt opgeslagen in een tijdreeksdatabase (prometheus). U kunt deze informatie in ClusterControl zien zoals hieronder afgebeeld:
In de Query Monitor vindt u Top Queries, Running Queries, Query Uitschieters of Querystatistieken menu's. Ze bieden informatie met betrekking tot het uitvoeren van zoekopdrachten, topquery's en statistieken van de database. U kunt ook langzame query's en niet-indexerende query's configureren.
Bij Performance zijn er submenu's zoals DB Growth die informatie over database- en tabelgroottestatistieken kunnen tonen. Schema Analyzer biedt informatie met betrekking tot redundante index en tabel zonder primaire sleutel.
PostgreSQL-waarschuwingen
Er zijn twee delen van waarschuwingen...
- Waarschuwingsregels :waarschuwingsregels spelen een grote rol, u kunt limieten definiëren als parameters die een alarm naar de DBA kunnen activeren.
- Integratie van derden :is een integratiekanaal voor het incidentbeheerplatform voor communicatie en samenwerking zoals:PagerDuty, OpsGenie, Slack of via e-mail.
PgDash heeft veel opties voor databaseparameters die u kunt instellen met betrekking tot de waarschuwingsregel, verdeeld in verschillende lagen, beginnend bij Server, Database, Tabel, Index, Tabelruimte en Query. Je kunt die informatie in pgDash zien zoals hieronder afgebeeld...
Wat betreft het integratiekanaal van derden, pgDash heeft ondersteuning voor verschillende kanalen, zoals zoals Slack, Pagerduty, VictorOps, Xmatters, e-mail of het maken van hun eigen webhooks zodat ze door andere services kunnen worden gebruikt.
Het volgende is het uiterlijk van de externe integratie van pgDash:
In tegenstelling tot pgDash heeft ClusterControl een bredere en meer algemene optie voor gebeurteniswaarschuwingen , te beginnen met waarschuwingen met betrekking tot de host, het netwerk, het cluster en de database zelf. Hieronder volgen voorbeelden van gebeurtenisopties die kunnen worden geselecteerd:
ClusterControl kan meerdere databaseclusters selecteren in één gebeurteniswaarschuwing. Integratie met derden van ClusterControl ondersteunt verschillende tools voor incidentbeheer en communicatie / samenwerking, zoals PagerDuty, VictorOps, Telegram, OpsGenie, Slack, ServiceNow, of u kunt uw eigen webhook maken.
In de sectie met waarschuwingsregels hebben zowel pgDash als ClusterControl voor- en nadelen. Het voordeel van pgDash is dat u zeer gedetailleerde databasewaarschuwingen kunt instellen met betrekking tot wat er wordt verzonden, terwijl het nadeel is dat u deze instellingen in elke database moet doen (hoewel er een functie is om uit andere databaseconfiguraties te importeren.
ClusterControl mist gedetailleerde gebeurteniswaarschuwingen, alleen algemene databasegebeurtenissen, maar ClusterControl kan niet alleen waarschuwingen verzenden die betrekking hebben op de database, maar kan gebeurteniswaarschuwingen verzenden vanaf knooppunten, clusters, netwerken, enz. Daarnaast kunt u deze waarschuwingen voor verschillende databaseclusters.
In de sectie Integratie van derden hebben pgDash en ClusterControl beide ondersteuning voor verschillende incidentbeheer- en communicatiekanalen van derden. Beiden kunnen namelijk hun eigen webhook maken, zodat deze door andere services (bijv. Grafana) kan worden gebruikt.