sql >> Databasteknik >  >> RDS >> PostgreSQL

Övervakning av PostgreSQL i en hybridmiljö

Hybrid Cloud är ett nytt koncept som har utökats under några år, och som nu är en vanlig topologi i alla företag för en Disaster Recovery Plan (DRP), eller till och med för att ha redundans på dina system.

När du har din Hybrid Cloud-miljö igång måste du veta vad som händer hela tiden. Övervakning är ett måste om du vill vara säker på att allt går bra eller om du kan behöva ändra något. För varje databasteknik finns det flera saker att övervaka. Vissa av dessa är specifika för databasmotorn, leverantören eller till och med den specifika versionen som du använder.

I den här bloggen kommer vi att se vad du behöver för att övervaka i en PostgreSQL-databas som körs i en Hybrid Cloud-miljö och hur ClusterControl kan hjälpa dig med denna uppgift.

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.

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 system) ä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 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 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 ö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.

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

I allmänhet är databaserna konfigurerade med kompatibilitet och stabilitet i åtanke som standard, så du måste känna till dina frågor och deras 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.

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 det maximala anslutningsvärdet i databaskonfigurationen. 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.

replikeringsstatus

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.

Säkerhetskopiering

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.

Databasloggar

Du bör övervaka din databaslogg för fel, autentiseringsproblem eller till och med långvariga frågor. De flesta av felen skrivs i loggfilen med detaljerad användbar information för att åtgärda dem.

Aviseringar och varningar

Det räcker inte 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 tillbaka. Det här varningsjobbet kan göras genom att använda e-postvarningar, textvarningar eller andra verktyg som Slack.

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.

En viktig punkt här är att ClusterControl fungerar på molnet, on-prem eller till och med en kombination av båda. Kravet här är att ha SSH-åtkomst till noderna, och sedan tar ClusterControl hand om dem.

Övervaka din PostgreSQL-databas med ClusterControl

ClusterControl ä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. Den har stöd för de bästa databasteknologierna 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.

ClusterControl låter dig övervaka dina servrar i realtid med en fördefinierad uppsättning instrumentpaneler för att analysera några av de vanligaste mätvärdena.

Det låter dig anpassa graferna 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.

I sektionen för frågeövervakare kan du hitta de vanligaste frågorna, de löpande frågorna, frågeavvikelserna och frågestatistiken för att övervaka din databastrafik.

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å att du kan se till att säkerhetskopieringen fungerar.

Slutligen behöver du inte komma åt din databasnod för att kontrollera loggarna, du kan hitta alla dina databasloggar centraliserade i avsnittet ClusterControl Log.

Som du kan se kan du hantera alla nämnda saker från samma centraliserade system:ClusterControl.

Övervakning med kommandoraden ClusterControl

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 eller övervaka ditt databaskluster.

Klusterlista

Nodlista

Du kan utföra alla uppgifter (och ännu fler) som finns tillgängliga i 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

Som du kan se är övervakning absolut nödvändig, oavsett om den körs på plats, i molnet eller till och med på en blandning av dem, och det bästa sättet att göra det beror på infrastrukturen och själva systemet. I den här bloggen nämnde vi några viktiga mätvärden att övervaka i din PostgreSQL-miljö, hur du använder ClusterControl för att göra jobbet.


  1. Ansluter till PostgreSQL i IRI Workbench

  2. Hur man får aktuellt datum och tid (utan tidszon) i PostgreSQL

  3. Ta bort ett databaspostkonto från en profil (SSMS)

  4. Cloud Backup-alternativ för MySQL- och MariaDB-databaser