sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL-databasövervakning:Tips för vad du ska övervaka

När du har din databasinfrastruktur igång måste du hålla koll på vad som händer. Övervakning är ett måste om du vill vara säker på att allt går bra eller om du kanske behöver ändra något.

För varje databasteknik finns det flera saker att övervaka. Vissa av dessa är specifika för databasmotorn eller leverantören eller till och med den specifika version som du använder.

I den här bloggen tar vi en titt på vad du behöver för att övervaka i en PostgreSQL-miljö.

Vad man ska övervaka i PostgreSQL

När man övervakar ett databaskluster eller en nod 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. Du måste alltid övervaka måtten i ditt system, och du bör leta efter förändringar i beteendemönstret.

I de flesta fall kommer du att behöva använda flera verktyg (eftersom det är nästan omöjligt att hitta ett som täcker alla önskade mätvärden.) 

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 (som är gemensam för alla databasmotorer och till och med för alla systems) är att övervaka operativsystemets beteende. Här är några punkter att kontrollera här.

CPU-användning

Ö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 processen/processerna 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 ä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 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 saker 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 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.

Inverkan av övervakning på PostgreSQL-databasprestanda

Medan övervakning är ett måste, är det vanligtvis inte gratis. Det finns alltid en kostnad på databasens prestanda, beroende på hur mycket du övervakar, så du bör undvika att övervaka saker som du inte kommer att använda.

I allmänhet finns det två sätt att övervaka dina databaser, från loggarna eller från databassidan genom att fråga.

När det gäller loggar, för att kunna använda dem, måste du ha en hög loggningsnivå, vilket genererar hög diskåtkomst och det kan påverka din databas prestanda.

För frågeläget använder varje anslutning till databasen resurser, så beroende på aktiviteten i din databas och de tilldelade resurserna kan det också påverka prestandan.

PostgreSQL-övervakningsverktyg

Det finns flera verktygsalternativ för att övervaka din databas. Det kan vara ett inbyggt PostgreSQL-verktyg, som tillägg, eller något externt verktyg. Låt oss se några exempel på dessa verktyg.

Tillägg

  • Pg_stat_statements :Detta tillägg hjälper dig att känna till frågeprofilen för din databas. Den spårar alla frågor som exekveras och lagrar mycket användbar information i en tabell som heter pg_stat_statements. Genom att fråga i den här tabellen kan du bland annat få information om vilka frågor som körs i systemet, hur många gånger de har körts och hur mycket tid de har förbrukat.
  • Pgbadger :Det är en programvara som utför en analys av PostgreSQL-loggar och visar dem i en HTML-fil. Det hjälper dig att förstå beteendet hos din databas och identifiera vilka frågor som behöver optimeras.
  • Pgstattuple :Den kan generera statistik för tabeller och index, som visar hur mycket utrymme som används av varje tabell och index, som förbrukas av live-tupler, raderade tupler eller hur mycket oanvänt utrymme som är tillgängligt i varje relation.
  • Pg_buffercache :Med detta kan du kontrollera vad som händer i den delade buffertcachen i realtid och visa hur många sidor som för närvarande finns i cachen.

Externa övervakningsverktyg

  • ClusterControl :Det är ett hanterings- och övervakningssystem som hjälper till att distribuera, hantera, övervaka och skala dina databaser från ett användarvänligt gränssnitt. ClusterControl har stöd för de bästa databasteknikerna med öppen källkod och du kan automatisera många av de databasuppgifter du måste utföra regelbundet som att lägga till och skala nya noder, köra säkerhetskopieringar och återställningar och mer.
  • Nagios :Det är ett Open Source-system och nätverksövervakningsapplikation. Den övervakar värdar eller tjänster och hanterar varningar för olika stater. Med det här verktyget kan du övervaka nätverkstjänster, värdresurser och mer. För att övervaka PostgreSQL kan du använda något plugin eller så kan du skapa ditt eget skript för att kontrollera din databas.
  • Zabbix :Det är en programvara som kan övervaka både nätverk och servrar. Den använder en flexibel aviseringsmekanism som tillåter användare att konfigurera varningar via e-post. Den erbjuder också rapporter och datavisualisering baserad på lagrad data. Alla Zabbix-rapporter och statistik, såväl som konfigurationsparametrar, nås via ett webbgränssnitt.

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 riktigt viktig för företaget. För den här uppgiften kan verktyg som PMM eller Vividcortex, bland andra, vara nyckeln för att lägga till synlighet till ditt databasövervakningssystem.

Percona Monitoring and Management (PMM): Det är en öppen källkodsplattform för att hantera och övervaka din databasprestanda. Den tillhandahåller grundlig tidsbaserad analys för MySQL-, MariaDB-, MongoDB- och PostgreSQL-servrar för att säkerställa att din data fungerar så effektivt som möjligt.

VividCortex: Det är en molnbaserad plattform som ger djupgående övervakning av databasprestanda. Det ger fullständig insyn i ledande databaser med öppen källkod inklusive MySQL, PostgreSQL, AWS Aurora, MongoDB och Redis.

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 har ett stort problem sedan många timmar sedan. Detta varningsjobb kan göras genom att använda e-postvarningar, textvarningar eller andra verktygsintegrationer som slack.

Det är verkligen svårt att hitta några 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 ett 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.

Övervaka din PostgreSQL-databas med ClusterControl

ClusterControl låter dig övervaka dina servrar i realtid. Den 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 återställer 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

Du kan utföra alla uppgifter (och ännu mer) från ClusterControl-gränssnittet , och du kan integrera den här funktionen med några externa verktyg som slack för att hantera den därifrån.

Slutsats

I den här bloggen nämnde vi några viktiga mätvärden att övervaka i din PostgreSQL-miljö och några verktyg för att göra ditt liv enklare genom att ha dina system under kontroll. Du kan också se hur du använder ClusterControl för den här uppgiften.

Som du kan se är övervakning absolut nödvändig, och det bästa sättet att göra det beror på infrastrukturen och själva systemet. Du bör nå en balans mellan vad du behöver övervaka och hur det påverkar din databasprestanda.


  1. Varför datasäkerhetskopiering är viktigt för din organisation

  2. Hur infogar man BLOB- och CLOB-filer i MySQL?

  3. TRUNC(date) Funktion i Oracle

  4. Relationsmodellen