Tableaux de bord MongoDB
MongoDB -> Mongodb_Exporter -> Prometheus -> Grafana.
Environnement
- Docker : Mongodb 6.0.5
- Docker : percona/mongodb_exporter 2.37.0
- Docker : prometheus 2.44.0
- Docker : grafana 9.5.2
Attention le tableau de bord ne fonctionne qu’avec la version 2.x de mongodb_exporter.
Mongodb
- Version 6.0.5 ;
- Authentification désactivée pour les tests avec mongod_exporter ;
- Une instance, 160 collections.
Mongodb_exporter
La configuration du docker compose :
mongodb_exporter:
platform: "linux"
container_name: mongodb_exporter
image: percona/mongodb_exporter:${mongo_exporter_version}
command:
- '--mongodb.global-conn-pool'
- '--collector.diagnosticdata'
- '--discovering-mode'
- '--mongodb.uri=mongodb://mongodb:17001/admin?ssl=false'
Pour l’authentification :
- Il faut ajouter
--auth
comme paramètre à l’image docker de MongoDB. - `–mongodb.uri=mongodb://{login}:{password}@mongodb:27001/admin?ssl=false
L’utilisation de - '--collector.diagnosticdata'
et de --discovering-mode
remonte 5936 indicateurs, c’est déjà trop !
Prometheus
Pour la configuration, il ne faudra pas oublier d’ajouter dans le fichier prometheus.yml
la source pour la collecte des données. Pour une configuratyion docker, il faudra ajouter soit de façon statique l’adresse Ip du container ou utiliser la résolution DNS interne pour docker.
# MONGODB
- job_name: Mongodb_exporter
scrape_interval: 5s
tls_config:
insecure_skip_verify: true
dns_sd_configs:
- names:
- mongodb_exporter
type: A
port: 9216
mongodb_exporter
est le nom de l’image docker du service mongodb_exporter.
Grafana
J’utilise deux variables : $interval
et $instance
.
Auteur
Laurent HADJADJ - CC 4.0 BY-NC-SA
Data source config
Collector config:
Upload an updated version of an exported dashboard.json file from Grafana
Revision | Description | Created | |
---|---|---|---|
Download |
MongoDB
Easily monitor MongoDB, a general purpose, document-based, distributed database, with Grafana Cloud's out-of-the-box monitoring solution.
Learn more