Moodle is een Learning Management System (LMS) dat is ontworpen om docenten, beheerders en leerlingen te voorzien van één robuust, veilig en geïntegreerd systeem om gepersonaliseerde leeromgevingen te creëren. Het ondersteunt verschillende databasetechnologieën (bijv. MariaDB, MySQL, PostgreSQL, enz.).
Als gevolg van COVID-19 is thuiswerken en studeren de laatste tijd exponentieel toegenomen, dus de beschikbaarheid en prestaties van dit soort leerplatforms worden steeds belangrijker. De enige manier waarop u ervoor kunt zorgen dat alles goed gaat, is door een goed monitoring- en waarschuwingssysteem te hebben, maar de vraag is wat u moet controleren om ervoor te zorgen dat uw systemen op een gezonde manier werken.
In deze blog bekijken we wat u moet controleren in een PostgreSQL Moodle-database en hoe u dit gemakkelijker kunt doen met ClusterControl.
Wat te controleren in PostgreSQL
Bij het bewaken van een databaseknooppunt of cluster, zijn er twee belangrijke dingen om rekening mee te houden:het besturingssysteem en de database zelf. U moet bepalen welke statistieken u van beide kanten gaat controleren en hoe u dit gaat doen.
Besturingssysteembewaking
Eén belangrijk ding (dat gemeenschappelijk is voor alle database-engines en zelfs voor alle systemen) is om het gedrag van het besturingssysteem te controleren. Hier zijn enkele punten om hier te controleren.
CPU-gebruik
Een buitensporig percentage CPU-gebruik kan een probleem zijn als dit niet gebruikelijk is. In dit geval is het belangrijk om het proces/de processen te identificeren die dit probleem veroorzaken. Als het probleem het databaseproces is, moet u controleren wat er in de database gebeurt.
RAM-geheugen of SWAP-gebruik
Als u een hoge waarde voor deze statistiek ziet en er is niets veranderd in uw systeem, moet u waarschijnlijk uw databaseconfiguratie controleren. Parameters zoals shared_buffers en work_mem kunnen dit rechtstreeks beïnvloeden, omdat ze de hoeveelheid geheugen definiëren die voor de PostgreSQL-database kan worden gebruikt.
Schijfgebruik
Een abnormale toename van het gebruik van schijfruimte of een buitensporig gebruik van schijftoegang zijn belangrijke dingen om te controleren, aangezien er een groot aantal fouten in het PostgreSQL-logbestand kan worden vastgelegd of een slechte cacheconfiguratie die kan een belangrijk schijftoegangsverbruik genereren in plaats van geheugen te gebruiken om de query's te verwerken.
Gemiddelde laden
Het heeft te maken met de drie bovengenoemde punten. Een hoge gemiddelde belasting kan worden gegenereerd door overmatig CPU-, RAM- of schijfgebruik.
Netwerk
Een netwerkprobleem kan van invloed zijn op alle systemen, aangezien de applicatie geen verbinding kan maken (of geen verbinding kan maken met verliezende pakketten) met de database, dus dit is inderdaad een belangrijke statistiek om te controleren. U kunt latentie of pakketverlies controleren, en het belangrijkste probleem kan een netwerkverzadiging, een hardwareprobleem of gewoon een slechte netwerkconfiguratie zijn.
Databasecontrole
Het bewaken van je PostgreSQL-database is niet alleen belangrijk om te zien of je een probleem hebt, maar ook om te weten of je iets moet veranderen om de prestaties van je database te verbeteren, dat is waarschijnlijk een van de belangrijkste dingen te monitoren in een database. Laten we eens kijken naar enkele statistieken die hiervoor belangrijk zijn.
Query-controle
Over het algemeen zijn de databases standaard geconfigureerd met het oog op compatibiliteit en stabiliteit, dus u moet uw query's en zijn patroon kennen en uw databases configureren afhankelijk van het verkeer dat u heeft. Hier kunt u de opdracht EXPLAIN gebruiken om het queryplan voor een specifieke query te controleren, en u kunt ook het aantal SELECT-, INSERT-, UPDATE- of DELETE's op elk knooppunt controleren. Als u een lange zoekopdracht of een groot aantal zoekopdrachten tegelijkertijd heeft, kan dat een probleem zijn voor alle systemen.
Actieve sessies
Je moet ook het aantal actieve sessies in de gaten houden. Als u de limiet nadert, moet u controleren of er iets mis is of dat u alleen de maximale verbindingswaarde in de databaseconfiguratie moet verhogen. Het verschil in het aantal kan een toename of afname van aansluitingen zijn. Slecht gebruik van pooling van verbindingen, vergrendeling of netwerkproblemen zijn de meest voorkomende problemen met betrekking tot het aantal verbindingen.
Sloten
Als je een vraag hebt die wacht op een andere vraag, moet je controleren of die andere vraag een normaal proces is of iets nieuws. In sommige gevallen, als iemand bijvoorbeeld een update uitvoert op een grote tafel, kan deze actie het normale gedrag van uw database beïnvloeden en een groot aantal vergrendelingen genereren.
Replicatie
De belangrijkste meetwaarden die moeten worden gecontroleerd op replicatie zijn de vertraging en de replicatiestatus. De meest voorkomende problemen zijn netwerkproblemen, problemen met hardwarebronnen of problemen met de maatvoering. Als u een replicatieprobleem ondervindt, moet u dit zo snel mogelijk weten, aangezien u dit moet oplossen om de omgeving met hoge beschikbaarheid te garanderen.
Back-ups
Het voorkomen van gegevensverlies is een van de basistaken van DBA, dus u hoeft niet alleen de back-up te maken, u moet ook weten of de back-up is voltooid en of deze bruikbaar is. Meestal wordt met dit laatste geen rekening gehouden, maar het is waarschijnlijk de belangrijkste controle in een back-upproces.
Databaselogboeken
U moet uw databaselogboek controleren op fouten, authenticatieproblemen of zelfs langlopende query's. De meeste fouten worden in het logbestand geschreven met gedetailleerde nuttige informatie om ze op te lossen.
Meldingen en waarschuwingen
Alleen het monitoren van een systeem is niet genoeg als u geen melding over elk probleem ontvangt. Zonder een waarschuwingssysteem zou je naar de monitoringtool moeten gaan om te zien of alles in orde is, en het zou mogelijk kunnen zijn dat je een groot probleem hebt sinds vele uren geleden. Deze waarschuwingstaak kan worden gedaan door e-mailwaarschuwingen, tekstwaarschuwingen of andere hulpmiddelen zoals Slack te gebruiken.
Uw PostgreSQL Moodle-database bewaken met ClusterControl
ClusterControl is een beheer- en bewakingssysteem dat helpt bij het implementeren, beheren, bewaken en schalen van uw databases vanuit een gebruiksvriendelijke interface. ClusterControl biedt ondersteuning voor de beste open-source databasetechnologieën en u kunt veel van de databasetaken automatiseren die u regelmatig moet uitvoeren, zoals het toevoegen en schalen van nieuwe knooppunten, het uitvoeren van back-ups en herstelbewerkingen, en meer.
Hiermee kunt u uw servers in realtime bewaken met een vooraf gedefinieerde set dashboards om enkele van de meest voorkomende statistieken te analyseren.
Hiermee kunt u de beschikbare grafieken in de cluster aanpassen, en u kunt schakel de op agenten gebaseerde monitoring in om meer gedetailleerde dashboards te genereren.
U kunt ook waarschuwingen maken, die u informeren over gebeurtenissen in uw cluster, of integreer het met verschillende diensten zoals PagerDuty of Slack.
In de sectie Querymonitor vindt u de meest voorkomende query's, query-uitbijters en de querystatistieken om uw databaseverkeer te controleren.
Voor back-upbeheer centraliseert ClusterControl het om uw gegevens, en met de back-upfunctie voor verificatie kunt u bevestigen of de back-up klaar is voor gebruik.
Deze verificatie-back-uptaak herstelt de back-up in een aparte zelfstandige host, dus u kunt ervoor zorgen dat de back-up werkt.
Ten slotte hoeft u uw databaseknooppunt niet te openen om de logboeken te controleren, u kunt al uw databaselogboeken gecentraliseerd vinden in het gedeelte ClusterControl Log.
Zoals je kunt zien, kun je alle genoemde dingen vanaf hetzelfde gecentraliseerd systeem:ClusterControl.
Bewaken met de ClusterControl-opdrachtregel
Voor het scripten en automatiseren van taken, of zelfs als je gewoon de voorkeur geeft aan de opdrachtregel, heeft ClusterControl de s9s-tool. Het is een opdrachtregelprogramma voor het beheren van uw databasecluster.
Clusterlijst
Knooppuntenlijst
U kunt alle taken uitvoeren die u in ClusterControl kunt zien UI (en zelfs meer), en je kunt deze functie integreren met een aantal externe tools zoals speling, om het vanaf daar te beheren.
Conclusie
Het monitoren van je Moodle PostgreSQL-database is noodzakelijk, maar ook een tijdrovende taak als je geen tool hebt om je hierbij te helpen. In deze blog hebben we enkele belangrijke statistieken genoemd die u in uw Moodle PostgreSQL-database moet controleren, en hoe u uw systemen onder controle kunt houden met ClusterControl.