Övervakning är basen för att veta om dina system fungerar som de ska, och den låter dig åtgärda eller förhindra alla problem innan de påverkar ditt företag. Även i en robust teknik som PostgreSQL är övervakning ett måste, och huvudmålet är att veta vad som ska övervakas, annars kan det inte vara vettigt eller inte vara användbart om du behöver använda det. I den här bloggen kommer vi att se vad Percona Distribution för PostgreSQL är och vilka nyckelmått som ska övervakas på den.
Percona-distribution för PostgreSQL
Det är en samling verktyg som hjälper dig att hantera ditt PostgreSQL-databassystem. Den installerar PostgreSQL och kompletterar den med ett urval av tillägg som gör det möjligt att lösa viktiga praktiska uppgifter effektivt, inklusive:
- pg_repack :Den bygger om PostgreSQL-databasobjekt.
- pgaudit :Den tillhandahåller detaljerad sessions- eller objektgranskningsloggning via standardpostgreSQL-loggningsfunktionen.
- pgBackRest :Det är en säkerhetskopierings- och återställningslösning för PostgreSQL.
- Patroni :Det är en lösning med hög tillgänglighet för PostgreSQL.
- pg_stat_monitor :Den samlar in och aggregerar statistik för PostgreSQL och tillhandahåller histograminformation.
- En samling ytterligare PostgreSQL-bidragstillägg.
Percona Distribution för PostgreSQL levereras också med libpq-biblioteket. Den innehåller en uppsättning biblioteksfunktioner som tillåter klientprogram att skicka frågor till PostgreSQL-servern och ta emot resultaten av dessa frågor.
Vad man ska övervaka i Percona Distribution för PostgreSQL
När man övervakar ett databaskluster finns det två huvudsakliga saker att ta hänsyn till:operativsystemet och själva databasen. Du måste definiera vilka mätvärden du ska övervaka från båda sidor och hur du ska göra det.
Tänk på att när en av dina mätvärden påverkas kan den också påverka andra, vilket gör felsökningen av problemet mer komplex. Att ha ett bra övervaknings- och varningssystem är viktigt för att göra denna uppgift så enkel som möjligt.
Övervakning av operativsystem
En viktig sak är att övervaka operativsystemets beteende. Låt oss se några punkter att kontrollera här.
CPU-användning
En överdriven procentandel av CPU-användningen kan vara ett problem om det inte är vanligt beteende. I det här fallet är det viktigt att identifiera de processer som genererar detta problem. Om problemet är databasprocessen måste du kontrollera vad som händer i databasen.
RAM-minne eller SWAP-användning
Om du ser ett högt värde för detta mått och ingenting har förändrats i ditt system, måste du förmodligen kontrollera din databaskonfiguration. Parametrar som shared_buffers och work_mem kan påverka detta direkt eftersom de definierar mängden minne som ska kunna användas för PostgreSQL-databasen.
Diskanvändning
En onormal ökning av användningen av diskutrymme eller en överdriven diskåtkomstförbrukning är viktiga saker att övervaka eftersom du kan ha ett stort antal fel inloggade i PostgreSQL-loggfilen eller en dålig cache-konfiguration som kan generera en viktig diskåtkomstförbrukning istället för att använda minne för att bearbeta frågorna.
Laddmedelvärde
Det är relaterat till de tre punkterna som nämns ovan. Ett högt belastningsmedelvärde kan genereras av en överdriven CPU-, RAM- eller diskanvändning.
Nätverk
Ett nätverksproblem kan påverka alla system eftersom programmet inte kan ansluta (eller ansluta förlorade paket) till databasen, så detta är verkligen ett viktigt mått att övervaka. Du kan övervaka latens eller paketförlust, och huvudproblemet kan vara en nätverksmättnad, ett maskinvaruproblem eller bara en dålig nätverkskonfiguration.
PostgreSQL-databasövervakning
Att övervaka din PostgreSQL-databas är inte bara viktigt för att se om du har ett problem, utan också för att veta om du behöver ändra något för att förbättra din databasprestanda, det är förmodligen en av de viktigaste sakerna att övervaka i en databas. Låt oss se några mätvärden som är viktiga för detta.
Frågeövervakning
Som standard är PostgreSQL konfigurerad med kompatibilitet och stabilitet i åtanke, så du måste känna till dina frågor och hans mönster och konfigurera dina databaser beroende på vilken trafik du har. Här kan du använda kommandot EXPLAIN för att kontrollera frågeplanen för en specifik fråga, och du kan också övervaka mängden SELECT, INSERT, UPDATE eller DELETE på varje nod. Om du har en lång fråga eller ett stort antal frågor som körs samtidigt, kan det vara ett problem för alla system.
Övervaka aktiva sessioner
Du bör också övervaka antalet aktiva sessioner. Om du är nära gränsen måste du kontrollera om något är fel eller om du bara behöver öka max_connections-värdet. Skillnaden i antalet kan vara en ökning eller minskning av anslutningar. Dålig användning av anslutningspoolning, låsning eller ett nätverksproblem är de vanligaste problemen relaterade till antalet anslutningar.
Databaslås
Om du har en fråga som väntar på en annan fråga måste du kontrollera om den andra frågan är en normal process eller något nytt. I vissa fall, om någon gör en uppdatering på ett stort bord, till exempel, kan den här åtgärden påverka det normala beteendet hos din databas och generera ett stort antal lås.
Övervaka replikering
Nyckelmåtten att övervaka för replikering är fördröjningen och replikeringstillståndet. De vanligaste problemen är nätverksproblem, problem med hårdvaruresurser eller underdimensioneringsproblem. Om du står inför ett replikeringsproblem måste du känna till detta så fort som möjligt eftersom du måste åtgärda det för att säkerställa miljön med hög tillgänglighet.
Övervaka säkerhetskopior
Att undvika dataförlust är en av de grundläggande DBA-uppgifterna, så du behöver inte bara ta säkerhetskopian, du bör veta om säkerhetskopieringen har slutförts och om den är användbar. Vanligtvis tas inte hänsyn till denna sista punkt, men det är förmodligen den viktigaste kontrollen i en säkerhetskopieringsprocess.
Övervaka databasloggar
Du bör övervaka din databaslogg för fel som FATAL eller dödläge, eller till och med för vanliga fel som autentiseringsproblem eller långvariga frågor. De flesta av felen skrivs i loggfilen med detaljerad användbar information för att fixa det.
Instrumentpaneler
Synlighet är användbar för att snabbt upptäcka problem. Det är definitivt en mer tidskrävande uppgift att läsa ett kommandoutdata än att bara titta på en graf. Så användningen av en instrumentpanel kan vara skillnaden mellan att upptäcka ett problem nu eller inom de kommande 15 minuterna, mest säker på att tiden kan vara väldigt viktig för företaget.
Larm
Det är inte meningsfullt att bara övervaka ett system om du inte får ett meddelande om varje problem. Utan ett varningssystem bör du gå till övervakningsverktyget för att se om allt är bra, och det kan vara möjligt att du haft ett stort problem sedan många timmar sedan.
Övervaka din PostgreSQL-databas med ClusterControl
Det är verkligen svårt att hitta ett verktyg för att övervaka alla nödvändiga mätvärden för PostgreSQL, i allmänhet kommer du att behöva använda mer än en och till och med en del skript kommer att behöva göras. Ett sätt att centralisera övervaknings- och varningsuppgiften är att använda ClusterControl, som ger dig funktioner som säkerhetskopieringshantering, övervakning och varning, distribution och skalning, automatisk återställning och fler viktiga funktioner som hjälper dig att hantera dina databaser. Alla dessa funktioner på samma system.
ClusterControl har en fördefinierad uppsättning instrumentpaneler för dig, för att analysera några av de vanligaste mätvärdena.
Det låter dig anpassa de grafer som är tillgängliga i klustret, och du kan aktivera den agentbaserade övervakningen för att generera mer detaljerade instrumentpaneler.
Du kan också skapa varningar som informerar dig om händelser i ditt kluster, eller integrera med olika tjänster som PagerDuty eller Slack.
Du kan även kontrollera sektionen för frågeövervakning, där du kan hitta toppfrågor, de löpande frågorna, avvikande frågor och frågestatistiken.
Med dessa funktioner kan du se hur din PostgreSQL-databas går.
För säkerhetskopieringshantering centraliserar ClusterControl den för att skydda, säkra och återställa dina data, och med verifieringsfunktionen för säkerhetskopiering kan du bekräfta om säkerhetskopieringen är bra att gå.
Detta verifieringsbackupjobb kommer att återställa säkerhetskopian i en separat fristående värd, så du kan se till att säkerhetskopieringen fungerar.
Övervakning med ClusterControl-kommandoraden
För skript- och automatiseringsuppgifter, eller även om du bara föredrar kommandoraden, har ClusterControl verktyget s9s. Det är ett kommandoradsverktyg för att hantera ditt databaskluster.
Klusterlista
Nodlista
Slutsats
Övervakning är absolut nödvändigt, och det bästa sättet att göra det beror på infrastrukturen och själva systemet. I den här bloggen presenterar vi Percona Distribution för PostgreSQL, och vi nämnde några viktiga mätvärden att övervaka i din PostgreSQL-miljö. Vi visade dig också hur ClusterControl är användbart för den här uppgiften.