Moodle è un sistema di gestione dell'apprendimento (LMS) progettato per fornire a educatori, amministratori e studenti un unico sistema solido, sicuro e integrato per creare ambienti di apprendimento personalizzati. Supporta diverse tecnologie di database (ad es. MariaDB, MySQL, PostgreSQL, ecc.).
A causa del COVID-19, il lavoro e lo studio da casa sono recentemente aumentati in modo esponenziale, quindi la disponibilità e le prestazioni di questo tipo di piattaforma di apprendimento stanno diventando sempre più importanti. L'unico modo per assicurarti che tutto vada bene è disporre di un buon sistema di monitoraggio e avviso, ma la domanda è cosa devi monitorare per assicurarti che i tuoi sistemi funzionino in modo sano.
In questo blog, daremo un'occhiata a ciò che è necessario monitorare in un database PostgreSQL Moodle e come puoi farlo più facilmente utilizzando ClusterControl.
Cosa monitorare in PostgreSQL
Durante il monitoraggio di un nodo o cluster di database, ci sono due cose principali da tenere in considerazione:il sistema operativo e il database stesso. Dovrai definire quali metriche monitorerai da entrambi i lati e come lo farai.
Monitoraggio del sistema operativo
Una cosa importante (comune a tutti i motori di database e anche a tutti sistemi) è quello di monitorare il comportamento del sistema operativo. Ecco alcuni punti da controllare qui.
Utilizzo CPU
Una percentuale eccessiva di utilizzo della CPU potrebbe essere un problema se non è un comportamento normale. In questo caso, è importante identificare il processo/i processi che stanno generando questo problema. Se il problema è il processo del database, dovrai controllare cosa sta succedendo all'interno del database.
Memoria RAM o utilizzo SWAP
Se vedi un valore elevato per questa metrica e non è cambiato nulla nel tuo sistema, probabilmente devi controllare la configurazione del database. Parametri come shared_buffers e work_mem possono influire direttamente su questo dato che definiscono la quantità di memoria da utilizzare per il database PostgreSQL.
Utilizzo del disco
Un aumento anomalo dell'uso dello spazio su disco o un consumo eccessivo di accesso al disco sono cose importanti da monitorare poiché potresti avere un numero elevato di errori registrati nel file di registro di PostgreSQL o una configurazione della cache errata che potrebbe generare un consumo importante di accesso al disco invece di utilizzare la memoria per elaborare le query.
Carico medio
È correlato ai tre punti sopra menzionati. Un carico medio elevato potrebbe essere generato da un utilizzo eccessivo di CPU, RAM o disco.
Rete
Un problema di rete può interessare tutti i sistemi poiché l'applicazione non può connettersi (o connettere pacchetti persi) al database, quindi questa è una metrica importante da monitorare. Puoi monitorare la latenza o la perdita di pacchetti e il problema principale potrebbe essere una saturazione della rete, un problema hardware o semplicemente una cattiva configurazione di rete.
Monitoraggio database
Il monitoraggio del tuo database PostgreSQL non è solo importante per vedere se stai riscontrando un problema, ma anche per sapere se hai bisogno di cambiare qualcosa per migliorare le prestazioni del tuo database, questa è probabilmente una delle cose più importanti da monitorare in un database. Vediamo alcune metriche importanti per questo.
Monitoraggio query
In generale, i database sono configurati tenendo conto della compatibilità e della stabilità per impostazione predefinita, quindi devi conoscere le tue query e il suo schema e configurare i tuoi database in base al traffico che hai. Qui puoi utilizzare il comando EXPLAIN per controllare il piano di query per una query specifica e puoi anche monitorare la quantità di SELECT, INSERT, UPDATE o DELETE su ciascun nodo. Se hai una query lunga o un numero elevato di query in esecuzione contemporaneamente, potrebbe essere un problema per tutti i sistemi.
Sessioni attive
Dovresti anche monitorare il numero di sessioni attive. Se sei vicino al limite, devi controllare se qualcosa non va o se hai solo bisogno di incrementare il valore massimo di connessione nella configurazione del database. La differenza nel numero può essere un aumento o una diminuzione delle connessioni. Il cattivo utilizzo del pool di connessioni, il blocco oi problemi di rete sono i problemi più comuni relativi al numero di connessioni.
Blocca
Se hai una query in attesa di un'altra query, devi controllare se quell'altra query è un processo normale o qualcosa di nuovo. In alcuni casi, se qualcuno sta effettuando un aggiornamento su un grande tavolo, ad esempio, questa azione può influire sul normale comportamento del tuo database, generando un numero elevato di blocchi.
Replica
Le metriche chiave da monitorare per la replica sono il ritardo e lo stato di replica. I problemi più comuni sono problemi di rete, problemi di risorse hardware o problemi di dimensionamento. Se stai affrontando un problema di replica, dovrai conoscerlo al più presto poiché dovrai risolverlo per garantire l'ambiente ad alta disponibilità.
Backup
Evitare la perdita di dati è una delle attività DBA di base, quindi non devi solo eseguire il backup, dovresti sapere se il backup è stato completato e se è utilizzabile. Di solito quest'ultimo punto non viene preso in considerazione, ma è probabilmente il controllo più importante in un processo di backup.
Registri del database
Dovresti monitorare il registro del database per errori, problemi di autenticazione o persino query di lunga durata. La maggior parte degli errori viene scritta nel file di registro con informazioni utili dettagliate per risolverli.
Notifiche e avvisi
Il solo monitoraggio di un sistema non è sufficiente se non ricevi una notifica su ogni problema. Senza un sistema di avviso, dovresti andare allo strumento di monitoraggio per vedere se tutto va bene e potrebbe essere possibile che tu abbia un grosso problema da molte ore. Questo lavoro di avviso può essere eseguito utilizzando avvisi e-mail, avvisi di testo o altri strumenti come Slack.
Monitoraggio del database Moodle PostgreSQL con ClusterControl
ClusterControl è un sistema di gestione e monitoraggio che aiuta a distribuire, gestire, monitorare e ridimensionare i database da un'interfaccia intuitiva. ClusterControl supporta le principali tecnologie di database open source e puoi automatizzare molte delle attività del database che devi eseguire regolarmente, come l'aggiunta e il ridimensionamento di nuovi nodi, l'esecuzione di backup e ripristini e altro ancora.
Ti permette di monitorare i tuoi server in tempo reale con un set predefinito di dashboard per analizzare alcune delle metriche più comuni.
Ti permette di personalizzare i grafici disponibili nel cluster e puoi abilitare il monitoraggio basato sugli agenti per generare dashboard più dettagliati.
Puoi anche creare avvisi che ti informano sugli eventi nel tuo cluster, oppure integralo con diversi servizi come PagerDuty o Slack.
Nella sezione Query Monitor, puoi trovare le query principali, le query in esecuzione query, valori anomali delle query e statistiche delle query per monitorare il traffico del database.
Per la gestione del backup, ClusterControl lo centralizza per proteggere, proteggere e ripristinare dati e con la funzione di backup di verifica, puoi confermare se il backup è pronto.
Questo processo di backup di verifica ripristinerà il backup in un host autonomo separato, quindi puoi assicurarti che il backup funzioni.
Infine, non è necessario accedere al nodo del database per controllare i log, puoi trovare tutti i log del database centralizzati nella sezione Log di ClusterControl.
Come puoi vedere, puoi gestire tutte le cose menzionate dallo stesso sistema centralizzato:ClusterControl.
Monitoraggio con la riga di comando ClusterControl
Per lo scripting e l'automazione delle attività, o anche se preferisci semplicemente la riga di comando, ClusterControl ha lo strumento s9s. È uno strumento da riga di comando per la gestione del cluster di database.
Elenco cluster
Elenco nodi
Puoi eseguire tutte le attività che puoi vedere in ClusterControl UI (e anche altro) e puoi integrare questa funzione con alcuni strumenti esterni come slack, per gestirla da lì.
Conclusione
Il monitoraggio del tuo database Moodle PostgreSQL è necessario ma anche un'attività che richiede tempo se non disponi di alcuno strumento per aiutarti. In questo blog abbiamo menzionato alcune metriche chiave da monitorare nel tuo database Moodle PostgreSQL e come tenere sotto controllo i tuoi sistemi utilizzando ClusterControl.