Moodle är ett Learning Management System (LMS) designat för att ge lärare, administratörer och elever ett enda robust, säkert och integrerat system för att skapa personliga inlärningsmiljöer. Den stöder olika databasteknologier (t.ex. MariaDB, MySQL, PostgreSQL, etc).
På grund av covid-19 har arbete och studier hemifrån ökat på ett exponentiellt sätt nyligen, så tillgängligheten och prestandan för den här typen av lärplattform blir allt viktigare. Det enda sättet du kan se till att allt går bra är genom att ha ett bra övervaknings- och varningssystem på plats, men frågan är vad du behöver övervaka för att säkerställa att dina system fungerar på ett sunt sätt.
I den här bloggen kommer vi att ta en titt på vad du behöver övervaka i en PostgreSQL Moodle Database, och hur du kan göra det enklare med ClusterControl.
Vad man ska övervaka i PostgreSQL
När man övervakar en databasnod eller ett kluster 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.
Ö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
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 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.
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.
Lå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.
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 snarast 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.
Övervaka din PostgreSQL Moodle-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. 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.
Det 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 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 den med olika tjänster som PagerDuty eller Slack.
I sektionen för frågeövervakning kan du hitta de vanligaste frågorna, de körande frågor, avvikande frågor och frågestatistiken för att övervaka din databastrafik.
För säkerhetskopieringshantering centraliserar ClusterControl den för att skydda, säkra och återställa din 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.
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 centraliserat 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 ditt databaskluster.
Klusterlista
Nodlista
Du kan utföra alla uppgifter som du kan se i ClusterControl UI (och ännu mer), och du kan integrera den här funktionen med några externa verktyg som slack för att hantera den därifrån.
Slutsats
Att övervaka din Moodle PostgreSQL-databas är nödvändigt men också en tidskrävande uppgift om du inte har något verktyg för att hjälpa till med detta. I den här bloggen nämnde vi några nyckeltal att övervaka i din Moodle PostgreSQL-databas, och hur du håller dina system under kontroll genom att använda ClusterControl.