Sådan overvåges MongoDB med Grafana og Prometheus på Ubuntu 20.04

Sådan overvåges MongoDB med Grafana og Prometheus på Ubuntu 20.04

Overvågning af din MongoDB-database er afgørende for at sikre dens stabilitet, ydeevne og generelle sundhed. Ved at holde øje med vigtige metrikker kan du identificere potentielle problemer tidligt og foretage rettidige ændringer for at undgå nedetid og dataforringelse.

Grafana og Prometheus er kraftfulde værktøjer, der sammen kan give en omfattende overvågningsløsning til MongoDB-databaser. Prometheus er en tidsserie-database, der bruges til at indsamle og gemme metrikker fra dine systemer, mens Grafana er et dashboarding-værktøj, der giver dig mulighed for at visualisere de data, der indsamles af Prometheus.

Denne artikel vil guide dig gennem processen med at konfigurere Prometheus og Grafana til at overvåge din MongoDB-database på Ubuntu 20.04. Vi vil dække installationen, konfigurationen og integrationen af ​​de forskellige komponenter, så du kan begynde at overvåge dine MongoDB-databaser i realtid.

Installation af MongoDB

Før vi dykker ned i monitoreringsprocessen, skal vi sikre, at MongoDB er installeret og kører på din Ubuntu 20.04-server. Hvis du ikke allerede har MongoDB installeret, kan du følge disse trin til at installere det:

1. Opdater pakkelister:


sudo apt update

2. Installer MongoDB:


sudo apt install mongodb-org

3. Start MongoDB-tjenesten:


sudo systemctl start mongod

4. Aktiver MongoDB-tjenesten ved opstart:


sudo systemctl enable mongod

5. Bekræft installationen:


mongod --version

Installation af Prometheus

Prometheus er en tidsserie-database, der bruges til at indsamle og gemme metrikker fra forskellige kilder. Vi vil installere og konfigurere Prometheus til at indsamle metrikker fra din MongoDB-database.

1. Download og installer Prometheus:


wget https://github.com/prometheus/prometheus/releases/download/v2.39.0/prometheus-2.39.0.linux-amd64.tar.gz
tar -xvf prometheus-2.39.0.linux-amd64.tar.gz

2. Opret en konfigurationsfil:

Indsæt følgende konfiguration i en fil kaldet prometheus.yml i Prometheus-installationsmappen:

yaml
global:
scrape_interval: 15s

scrape_configs:
- job_name: 'mongodb'
static_configs:
- targets: ['localhost:27017']
metrics_path: '/metrics'
scheme: 'http'

3. Start Prometheus:


./prometheus --config.file=prometheus.yml

Installation af Grafana

Grafana er et dashboarding-værktøj, der giver dig mulighed for at visualisere de data, der indsamles af Prometheus. Vi vil installere og konfigurere Grafana til at vise grafer og dashboards for MongoDB-metrikker.

1. Download og installer Grafana:


wget https://dl.grafana.com/oss/grafana-8.4.6.linux-amd64.tar.gz
tar -xvf grafana-8.4.6.linux-amd64.tar.gz

2. Opret en konfigurationsfil:

Indsæt følgende konfiguration i en fil kaldet grafana.ini i Grafana-installationsmappen:


[server]
http_port = 3000

3. Start Grafana:


./grafana-server cfg:./grafana.ini

Konfigurering af MongoDB til Prometheus

For at indsamle metrikker fra MongoDB skal vi aktivere en MongoDB-exporter. En exporter er en applikation, der eksporterer metrikker til en tidsserie-database som Prometheus. Vi bruger mongod_exporter, der leverer en række MongoDB-specifikke metrikker.

1. Installér mongod_exporter:


sudo apt update
sudo apt install -y golang-go
go get github.com/prometheus/client_golang/prometheus/promhttp
go get github.com/mongodb/mongodb-exporter

2. Opret en konfigurationsfil for mongod_exporter:

Indsæt følgende konfiguration i en fil kaldet mongod_exporter.yml i din mongod_exporter-mappe:

yaml
global:
scrape_interval: 15s
evaluation_interval: 15s

scrape_configs:
- job_name: 'mongodb-exporter'
static_configs:
- targets: ['localhost:9100']
metrics_path: '/metrics'
scheme: 'http'

3. Start mongod_exporter:


./mongod_exporter --config.file=mongod_exporter.yml

Opsætning af Grafana-dashboards

Nu hvor vi har sat Prometheus og mongod_exporter op, skal vi konfigurere Grafana til at visualisere de indsamlede metrikker.

1. Åbn Grafana:

Besøg http://localhost:3000 i din webbrowser.

2. Log ind på Grafana:

Standardbrugernavn og adgangskode er admin og admin.

3. Tilføj en datakilde:

Gå til Configuration -> Data Sources og tilføj en ny datakilde af typen Prometheus. Angiv URL’en for din Prometheus-server (http://localhost:9090) og gem ændringerne.

4. Opret et dashboard:

Gå til Dashboards -> New og opret et nyt dashboard.

5. Tilføj paneler:

Tilføj paneler til dit dashboard og brug Prometheus som datakilde. Vælg de relevante metrikker fra mongod_exporter. Eksempler på nyttige MongoDB-metrikker inkluderer:

* mongodb_server_connections_total: Antal åbne forbindelser til databasen.
* mongodb_server_operation_query_total: Antal udførte forespørgsler.
* mongodb_server_operation_insert_total: Antal indsættelser.
* mongodb_server_operation_update_total: Antal opdateringer.
* mongodb_server_operation_delete_total: Antal sletninger.
* mongodb_server_memory_resident: Mængden af ​​hukommelse, der bruges af MongoDB.
* mongodb_server_disk_used: Mængden af ​​diskplads, der bruges af MongoDB.
* mongodb_server_repl_lag: Replication lag, hvis du bruger MongoDB Replication.

6. Tilpas dine dashboards:

Tilpas dine paneler, så de viser de oplysninger, der er mest relevante for dig. Du kan bruge forskellige grafer, tabeller og paneler til at visualisere metrikker.

Overvågningstips

Udover de ovennævnte metrikker kan du overvåge yderligere aspekt af din MongoDB-database ved hjælp af Prometheus og Grafana. Her er et par tips:

* Opsæt advarsler: Konfigurér Prometheus til at sende dig advarsler, når specifikke metrikker overstiger tærskler. Du kan definere advarsler, der informerer dig om potentielle problemer med forbindelser, ydeevne eller ressourcebegrænsninger.
* Brugerdefinerede metrikker: Overvej at definere dine egne brugerdefinerede metrikker, der er specifikke for dine applikationskrav.
* Øg din overvågningsdækning: Udvid din overvågning til at omfatte andre systemkomponenter, der kan påvirke din MongoDB-database. Overvåg f.eks. CPU- og hukommelsebrug på din server for at identificere ressourcetrængsel.
* Del dine dashboards: Deel dine dashboards med andre for at forbedre samarbejdet og give et mere holistisk syn på MongoDB’s sundhed.

Konklusion

Ved at implementere Prometheus og Grafana til overvågning af din MongoDB-database kan du få indblik i dens ydeevne og stabilitet. Denne information kan hjælpe dig med at identificere potentielle problemer tidligt og foretage rettidige ændringer for at undgå nedetid og dataforringelse.

Grafana tilbyder en brugervenlig interface til at visualisere dine data og oprette dashboards, der er skræddersyet til dine behov. Du kan sammenligne forskellige metrikker over tid, identificere outliers og hurtigt få en oversigt over din MongoDB-databases sundhed.

Ved at kombinere Prometheus’s kraftfulde indsamlingsfunktioner med Grafana’s visuelt tiltalende dashboards, kan du opnå en omfattende løsning til overvågning af din MongoDB-database. Husk at justere din overvågningsstrategi i overensstemmelse med dine specifikke krav og din applikation’s behov for at sikre optimal ydeevne og stabilitet.

Ofte Stillede Spørgsmål

1. Hvordan konfigurerer jeg advarsler i Prometheus?

Du kan konfigurere advarsler i Prometheus ved hjælp af alert-reglen i din prometheus.yml-fil. Du skal specificere den metrik, der skal overvåges, tærskelværdien og den handling, der skal udføres, når tærskelværdien overskrides.

2. Hvilke andre MongoDB-metrikker kan jeg overvåge?

Udover de nævnte metrikker tilbyder mongod_exporter en række andre MongoDB-specifikke metrikker, der kan være nyttige til at overvåge databasen. Du kan finde en fuldstændig liste over metrikker i mongod_exporters dokumentation.

3. Kan jeg bruge Grafana til at overvåge andre databaser?

Ja, Grafana kan bruges til at overvåge en række forskellige databaser, herunder PostgreSQL, MySQL, Redis, ElasticSearch og mange andre. Grafana tilbyder en række datasources for at understøtte forskellige typer af databaser.

4. Hvad er forskellen mellem Prometheus og Grafana?

Prometheus er en tidsserie-database, der indsamler og gemmer metrikker fra dine systemer. Grafana er et dashboarding-værktøj, der giver dig mulighed for at visualisere de data, der indsamles af Prometheus, og oprette brugerdefinerede dashboards.

5. Hvad er de bedste praksisser for overvågning af MongoDB?

De bedste praksisser til overvågning af MongoDB omfatter konfiguration af advarsler, overvågning af relevante metrikker, herunder forbindelser, ydeevne og ressourcetrængsel, og at regelmæssigt revidere og forbedre din overvågningsstrategi.

6. Hvordan kan jeg finde mere information om Prometheus og Grafana?

Du kan finde yderligere ressourcer om Prometheus og Grafana på deres officielle websteder:
* Prometheus: https://prometheus.io/
* Grafana: https://grafana.com/

7. Hvordan kan jeg bidrage til udviklingen af ​​Prometheus og Grafana?

Prometheus og Grafana er open-source-projekter, og du kan bidrage til deres udvikling ved at rapportere fejl, indsende pull requests eller deltage i diskussioner på deres GitHub-sider.

8. Hvor kan jeg finde yderligere ressourcer om overvågning af MongoDB?

Du kan finde yderligere ressourcer om MongoDB-overvågning i den officielle dokumentation for MongoDB og i forskellige online ressourcer, såsom Stack Overflow og MongoDB-fora.

9. Hvordan kan jeg installere Prometheus og Grafana i produktionsmiljøer?

Installation og konfiguration af Prometheus og Grafana i produktionsmiljøer kræver mere avancerede overvejelser, herunder skalering, sikkerhed, overvågning og logning. Der er detaljerede guider og dokumentation til rådighed for implementering i produktionsmiljøer.

10. Hvilke alternativer til Prometheus og Grafana findes der?

Der findes andre overvågningsværktøjer, der kan bruges til at overvåge MongoDB, herunder:

* Datadog: https://www.datadog.com/
* New Relic: https://newrelic.com/
* Azure Monitor: https://azure.microsoft.com/en-us/services/monitor/
* Cloudwatch: https://aws.amazon.com/cloudwatch/

Tags: MongoDB, Grafana, Prometheus, Ubuntu, Monitoring, Overvågning, Database, Dashboard, System Performance, Performance Overvågning, Databas Overvågning, Data Visualisering, Datavisualisering, Open Source, Open Source Software