Overvågning er grundlaget for at vide, om dine systemer fungerer korrekt, og det giver dig mulighed for at løse eller forhindre ethvert problem, før det påvirker din virksomhed. Selv i en robust teknologi som PostgreSQL er overvågning et must, og hovedmålet er at vide, hvad der skal overvåges, ellers kunne det ikke give mening eller ikke være nyttigt, hvis du skulle bruge det. I denne blog vil vi se, hvad Percona Distribution for PostgreSQL er, og hvilke nøglemålinger, der skal overvåges på det.
Percona-distribution til PostgreSQL
Det er en samling værktøjer til at hjælpe dig med at administrere dit PostgreSQL-databasesystem. Det installerer PostgreSQL og supplerer det med et udvalg af udvidelser, der gør det muligt at løse væsentlige praktiske opgaver effektivt, herunder:
- pg_repack :Den genopbygger PostgreSQL-databaseobjekter.
- pgaudit :Det giver detaljeret logføring af sessioner eller objekter via standard PostgreSQL-logningsfaciliteten.
- pgBackRest :Det er en backup- og gendannelsesløsning til PostgreSQL.
- Patroni :Det er en High Availability-løsning til PostgreSQL.
- pg_stat_monitor :Den indsamler og samler statistik for PostgreSQL og giver histogramoplysninger.
- En samling af yderligere PostgreSQL-bidragsudvidelser.
Percona Distribution til PostgreSQL leveres også med libpq-biblioteket. Den indeholder et sæt biblioteksfunktioner, der tillader klientprogrammer at sende forespørgsler til PostgreSQL-backend-serveren og modtage resultaterne af disse forespørgsler.
Hvad skal overvåges i Percona-distribution til PostgreSQL
Når du overvåger en databaseklynge, er der to hovedting at tage højde for:operativsystemet og selve databasen. Du bliver nødt til at definere, hvilke målinger du vil overvåge fra begge sider, og hvordan du vil gøre det.
Husk, at når en af dine metrics påvirkes, kan den også påvirke andre, hvilket gør fejlfinding af problemet mere kompleks. At have et godt overvågnings- og alarmeringssystem er vigtigt for at gøre denne opgave så enkel som muligt.
Overvågning af operativsystem
En vigtig ting er at overvåge operativsystemets adfærd. Lad os se nogle punkter at tjekke her.
CPU-brug
En for høj procentdel af CPU-brug kan være et problem, hvis det ikke er normal adfærd. I dette tilfælde er det vigtigt at identificere de processer, der genererer dette problem. Hvis problemet er databaseprocessen, skal du kontrollere, hvad der sker inde i databasen.
RAM-hukommelse eller SWAP-brug
Hvis du ser en høj værdi for denne metrik, og intet er ændret i dit system, skal du sandsynligvis tjekke din databasekonfiguration. Parametre som shared_buffers og work_mem kan påvirke dette direkte, da de definerer mængden af hukommelse, der skal kunne bruges til PostgreSQL-databasen.
Diskbrug
En unormal stigning i brugen af diskplads eller et for stort forbrug af diskadgang er vigtige ting at overvåge, da du kan have et stort antal fejl logget i PostgreSQL-logfilen eller en dårlig cache-konfiguration, der kan generere et vigtigt diskadgangsforbrug i stedet for at bruge hukommelse til at behandle forespørgslerne.
Indlæsningsgennemsnit
Det er relateret til de tre punkter nævnt ovenfor. Et højt belastningsgennemsnit kan genereres af en overdreven CPU-, RAM- eller diskbrug.
Netværk
Et netværksproblem kan påvirke alle systemerne, da applikationen ikke kan oprette forbindelse (eller forbinde tabende pakker) til databasen, så dette er en vigtig metrik at overvåge. Du kan overvåge latens eller pakketab, og hovedproblemet kan være en netværksmætning, et hardwareproblem eller bare en dårlig netværkskonfiguration.
PostgreSQL-databaseovervågning
Overvågning af din PostgreSQL-database er ikke kun vigtigt for at se, om du har et problem, men også for at vide, om du skal ændre noget for at forbedre din databaseydeevne, det er nok en af de vigtigste ting at overvåge i en database. Lad os se nogle målinger, der er vigtige for dette.
Forespørgselsovervågning
Som standard er PostgreSQL konfigureret med kompatibilitet og stabilitet i tankerne, så du skal kende dine forespørgsler og hans mønster og konfigurere dine databaser afhængigt af den trafik, du har. Her kan du bruge EXPLAIN-kommandoen til at kontrollere forespørgselsplanen for en specifik forespørgsel, og du kan også overvåge mængden af SELECT, INSERT, UPDATE eller DELETE på hver node. Hvis du har en lang forespørgsel eller et stort antal forespørgsler, der kører på samme tid, kan det være et problem for alle systemerne.
Overvågning af aktive sessioner
Du bør også overvåge antallet af aktive sessioner. Hvis du er tæt på grænsen, skal du tjekke, om der er noget galt, eller om du blot skal øge max_connections-værdien. Forskellen i antallet kan være en stigning eller et fald af forbindelser. Dårlig brug af forbindelsespooling, låsning eller et netværksproblem er de mest almindelige problemer relateret til antallet af forbindelser.
Databaselåse
Hvis du har en forespørgsel, der venter på en anden forespørgsel, skal du kontrollere, om den anden forespørgsel er en normal proces eller noget nyt. I nogle tilfælde, hvis nogen for eksempel laver en opdatering på et stort bord, kan denne handling påvirke din databases normale adfærd og generere et stort antal låse.
Overvågning af replikering
Nøglemålingerne, der skal overvåges for replikering, er forsinkelsen og replikeringstilstanden. De mest almindelige problemer er netværksproblemer, hardwareressourceproblemer eller problemer med underdimensionering. Hvis du står over for et replikeringsproblem, skal du vide dette hurtigst muligt, da du skal rette det for at sikre et miljø med høj tilgængelighed.
Overvågning af sikkerhedskopier
At undgå tab af data er en af de grundlæggende DBA-opgaver, så du behøver ikke kun tage sikkerhedskopien, du skal vide, om sikkerhedskopieringen er gennemført, og om den er brugbar. Normalt tages der ikke højde for dette sidste punkt, men det er nok den vigtigste kontrol i en backupproces.
Overvågning af databaselogfiler
Du bør overvåge din databaselog for fejl som FATAL eller deadlock, eller endda for almindelige fejl som autentificeringsproblemer eller langvarige forespørgsler. De fleste af fejlene er skrevet i logfilen med detaljerede nyttige oplysninger til at rette det.
Dashboards
Synlighed er nyttig til hurtig registrering af problemer. Det er bestemt en mere tidskrævende opgave at læse en kommandoudgang end blot at se en graf. Så brugen af et dashboard kan være forskellen mellem at opdage et problem nu eller inden for de næste 15 minutter, mest sikker på, at tiden kan være virkelig vigtig for virksomheden.
Alarm
Bare overvågning af et system giver ikke mening, hvis du ikke modtager en meddelelse om hvert problem. Uden et advarselssystem bør du gå til overvågningsværktøjet for at se, om alt er i orden, og det kan være muligt, at du har haft et stort problem siden mange timer siden.
Overvågning af din PostgreSQL-database med ClusterControl
Det er virkelig svært at finde et værktøj til at overvåge alle de nødvendige metrics for PostgreSQL, generelt skal du bruge mere end én og endda nogle scripting skal laves. En måde at centralisere overvågnings- og advarselsopgaven på er ved at bruge ClusterControl, som giver dig funktioner som sikkerhedskopiering, overvågning og alarmering, implementering og skalering, automatisk gendannelse og flere vigtige funktioner til at hjælpe dig med at administrere dine databaser. Alle disse funktioner på det samme system.
ClusterControl har et foruddefineret sæt dashboards til dig, til at analysere nogle af de mest almindelige metrics.
Det giver dig mulighed for at tilpasse de grafer, der er tilgængelige i klyngen, og du kan aktivere den agentbaserede overvågning for at generere mere detaljerede dashboards.
Du kan også oprette advarsler, som informerer dig om begivenheder i din klynge, eller integrere med forskellige tjenester såsom PagerDuty eller Slack.
Du kan også tjekke sektionen for forespørgselsovervågning, hvor du kan finde topforespørgsler, de kørende forespørgsler, forespørgslers outliers og forespørgselsstatistikken.
Med disse funktioner kan du se, hvordan det går med din PostgreSQL-database.
Til sikkerhedskopiering centraliserer ClusterControl det for at beskytte, sikre og gendanne dine data, og med bekræftelsessikkerhedskopieringsfunktionen kan du bekræfte, om sikkerhedskopieringen er god til at gå.
Dette bekræftelses-backupjob vil gendanne sikkerhedskopien i en separat selvstændig vært, så du kan sikre dig, at sikkerhedskopieringen virker.
Overvågning med ClusterControl-kommandolinjen
Til scripting og automatisering af opgaver, eller selvom du bare foretrækker kommandolinjen, har ClusterControl værktøjet s9s. Det er et kommandolinjeværktøj til at administrere din databaseklynge.
Klyngeliste
Nodeliste
Konklusion
Overvågning er absolut nødvendigt, og den bedste måde at gøre det på afhænger af infrastrukturen og selve systemet. I denne blog introducerer vi dig til Percona Distribution til PostgreSQL, og vi nævnte nogle vigtige metrics til at overvåge i dit PostgreSQL-miljø. Vi viste dig også, hvordan ClusterControl er nyttig til denne opgave.