Come monitorare MongoDB con Grafana e Prometheus su Ubuntu 20.04

Come monitorare MongoDB con Grafana e Prometheus su Ubuntu 20.04

Introduzione

Il monitoraggio delle prestazioni di un database è essenziale per garantire la disponibilità e le prestazioni ottimali dell’applicazione. Tra i vari strumenti di monitoraggio disponibili, Grafana e Prometheus emergono come una combinazione potente per il monitoraggio dei sistemi complessi, tra cui MongoDB.

Questo tutorial fornisce istruzioni dettagliate su come configurare e utilizzare Grafana e Prometheus per monitorare MongoDB su un server Ubuntu 20.04. Esploreremo l’installazione, la configurazione e l’utilizzo di questi strumenti per ottenere metriche chiave che ci consentono di valutare le prestazioni di MongoDB e di individuare tempestivamente eventuali problemi.

Prerequisiti

* Un server Ubuntu 20.04 aggiornato
* Privilegi di root o sudo
* Porta TCP 9100 aperta sul firewall
* MongoDB installato e in esecuzione
* Conoscenza di base di Grafana, Prometheus e MongoDB

1. Installare Prometheus

Prometheus è un sistema di monitoraggio open source che raccoglie e memorizza metriche.

1. Aggiungere il repository Prometheus:

bash
wget -q https://prometheus.io/download/prometheus-2.43.4.linux-amd64.tar.gz
tar xvf prometheus-2.43.4.linux-amd64.tar.gz
sudo mv prometheus-2.43.4.linux-amd64 /opt/prometheus

2. Creare l’utente prometheus:

bash
sudo useradd --no-create-home --shell /bin/false prometheus

3. Modificare i permessi della directory Prometheus:

bash
sudo chown prometheus:prometheus /opt/prometheus

4. Copiare file di sistema Prometheus:

bash
sudo cp /opt/prometheus/prometheus.yml /etc/prometheus/
sudo cp /opt/prometheus/rules/*.rules /etc/prometheus/rules/

5. Modificare il file di configurazione Prometheus:

bash
sudo vim /etc/prometheus/prometheus.yml

Modificare l’indirizzo di ascolto e la porta:

yaml
global:
scrape_interval: 15s
evaluation_interval: 15s
listen_local: 0.0.0.0:9100

6. Avviare Prometheus:

bash
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

2. Installare Grafana

Grafana è una piattaforma di visualizzazione e analisi open source per i dati del monitoraggio.

1. Aggiungere il repository Grafana:

bash
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

2. Aggiornare il sistema e installare Grafana:

bash
sudo apt update
sudo apt install grafana

3. Configurare Grafana:

bash
sudo vim /etc/grafana/grafana.ini

Modificare la porta di ascolto:

ini
[server]
protocol = https
port = 3000

4. Avviare Grafana:

bash
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

3. Configurare il monitoraggio di MongoDB

1. Installare l’esportatore MongoDB:

bash
wget -q https://github.com/percona/mongodb_exporter/releases/download/v1.8.0/mongodb_exporter-1.8.0.linux-amd64.tar.gz
tar xvf mongodb_exporter-1.8.0.linux-amd64.tar.gz

sudo mv mongodb_exporter-1.8.0.linux-amd64 /opt/mongodb_exporter
sudo chown prometheus:prometheus /opt/mongodb_exporter

2. Creare il file di configurazione:

bash
sudo vim /etc/prometheus/mongodb_exporter.yml

Inserire la seguente configurazione:

yaml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_timeout: 10s
scrape_configs:
- job_name: mongodb-exporter
scrape_interval: 15s
target_groups:
- targets: ['localhost:27017']

3. Avviare l’esportatore MongoDB:

bash
sudo /opt/mongodb_exporter/mongodb_exporter \
--web.listen-address=":9216" \
--config.file="/etc/prometheus/mongodb_exporter.yml"

4. Aggiungere il dashboard di monitoraggio

1. Accedere a Grafana:


http://localhost:3000

2. Creare una nuova dashboard:

* Fare clic su “Dashboards” nel menu di sinistra
* Fare clic su “Nuova dashboard”
* Inserire un nome per la dashboard (es. “MongoDB Monitoring”)

3. Aggiungere il pannello delle metriche:

* Fare clic sul pulsante “Aggiungi pannello”
* Selezionare “Metriche”
* Modificare la query per indirizzare l’esportatore MongoDB:


mongodb_global_index_seconds

* Fare clic su “Esegui query”

4. Aggiungere altri pannelli (opzionale):

* È possibile aggiungere altri pannelli per visualizzare metriche come:
* mongodb_collection_storage_size_bytes
* mongodb_connection_active
* mongodb_documents

Conclusione

Questo tutorial ha presentato una guida dettagliata su come configurare e utilizzare Grafana e Prometheus per monitorare MongoDB su Ubuntu 20.04. Con questa configurazione, gli amministratori del sistema possono ottenere metriche critiche che consentono di valutare le prestazioni di MongoDB, identificare tempestivamente eventuali problemi e garantire la disponibilità e l’integrità del database. Implementando questi strumenti di monitoraggio, è possibile gestire in modo proattivo le prestazioni di MongoDB e ottimizzare il funzionamento complessivo del sistema.

Domande frequenti

1. Quali informazioni posso monitorare con Grafana e Prometheus?

Con Grafana e Prometheus, è possibile monitorare metriche come:
* Query al secondo
* Connessione al database
* Dimensione della raccolta
* Uso della memoria

2. Come posso creare allarmi per i dati di monitoraggio?

Grafana consente di creare allarmi personalizzati basati sui dati del monitoraggio. È possibile configurare allarmi per ricevere notifiche su determinati valori soglia o condizioni.

3. Quali sono i vantaggi dell’utilizzo di Grafana e Prometheus per il monitoraggio di MongoDB?

Grafana e Prometheus offrono una visibilità completa sulle prestazioni di MongoDB, aiutando gli amministratori a identificare rapidamente i problemi, ottimizzare le prestazioni e garantire la disponibilità.

4. Come posso personalizzare i dashboard di Grafana?

I dashboard di Grafana sono altamente personalizzabili. È possibile aggiungere pannelli, modificare i colori e le dimensioni dei grafici e personalizzare il layout per soddisfare le esigenze specifiche.

5. Quali sono le alternative a Grafana e Prometheus?

Alcune alternative a Grafana e Prometheus includono:
* Zabbix
* New Relic
* AppDynamics

6. È possibile monitorare anche altri database oltre a MongoDB?

Sì, Grafana e Prometheus possono essere utilizzati per monitorare vari altri database, tra cui MySQL, PostgreSQL e Oracle.

7. Come posso accedere ai dati di monitoraggio tramite un’API?

Sia Grafana che Prometheus forniscono API che consentono di accedere ai dati di monitoraggio programmatically.

8. Quali sono le migliori pratiche per il monitoraggio di MongoDB?

Le migliori pratiche includono:
* Monitorare regolarmente le metriche chiave
* Impostare avvisi per rilevare rapidamente i problemi
* Utilizzare più dashboard per ottenere una visualizzazione completa delle prestazioni
* Analizzare i dati del monitoraggio per identificare tendenze e migliorare le prestazioni