Attention, ce billet se traine depuis plus de 3 mois. Les informations qu'il contient ne sont peut-être plus à jour.
Installer mysqld_export pour Prometheus et Grafana
Rédigé par 2 commentaires
/ /Grafana, c'est mon dada (!) du moment. Après l'avoir installé pour avoir une vision d'ensemble de l'état de mes serveurs, voici l'heure de se pencher sur l'état d'un service en particulier : MariaDB
Je vous redirige vers l'article pour installer Grafana, Prometheus et node_exporter si ça vous intéresse.
Installer mysqld_exporter
On va commencer par récupérer l'exporter : wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gzEt on va le placer au chaud dans l’arborescence :
mkdir /opt/prometheus_exportersL'exporter est en place. Ce n'est pas plus compliqué que ça. Passons à la configuration.
tar zxf mysqld_exporter-0.10.0.linux-amd64.tar.gz -C /opt/prometheus_exporters
Configuration du mysqld_exporter
Il a besoin d'une seule chose : un utilisateur dédié avec les bons droits. GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'userdelexporter'@'localhost' identified by 'pwddelexporter';On va ajouter ces informations dans un .my.cnf que l'on va passer en paramètre à l'exporter :
GRANT SELECT ON performance_schema.* TO 'userdelexporter'@'localhost';
FLUSH PRIVILEGES;
[client]J'ai choisi de placer ce .my.cnf dans /opt/prometheus_exporters pour ne pas le perdre, mais vous pouvez le mettre ou vous voulez.
user=userdelexporter
password=pwddelexporter
Lancer l'exporter
On va déjà le tester :root@diaspote /opt/prometheus_exporters/ # ./mysqld_exporter -config.my-cnf=".my.cnf"Si vous avez ce retour, sans erreur, vous avez réussi l'installation de la bête.
INFO[0000] Starting mysqld_exporter (version=0.10.0, branch=master, revision=80680068f15474f87847c8ee8f18a2939a26196a) source="mysqld_exporter.go:460"
INFO[0000] Build context (go=go1.8.1, user=root@3b0154cd9e8e, date=20170425-11:24:12) source="mysqld_exporter.go:461"
INFO[0000] Listening on :9104 source="mysqld_exporter.go:479"
Configurer Prometheus
Ajoutez ces quelques lignes à votre prometheus.yml pour qu'il sache récupérer les informations :- job_name: 'mysql'Rechargez la configuration et le tour est joué :
# If prometheus-node-exporter is installed, grab stats about the local
# machine by default.
static_configs:
- targets: ['lipdemonserveuraveclexporter:9104']
root@dadall:/home/dada# curl -X POST http://localhost:9090/-/reloadPrometheus devrait signaler que tout va bien :
Il ne reste plus qu'à lancer tout ça en tâche de fond en ajoutant une esperluette à la fin de la commande précédente :
root@diaspote /opt/prometheus_exporters/ # ./mysqld_exporter -config.my-cnf=".my.cnf" &
Configurer un dashboard pour Grafana
Pour le dashbaord, sans honte, j'ai pompé sur celui de Perconna que vous pouvez trouver ici. Il est largement suffisant. Prenez quand même bien soin de vérifier que le nom de la data source corresponde bien avec la votre. Je me suis arraché les cheveux parce que la mienne s'appelle prometheus et cette du JSON s'appelle Prometheus. La majuscule, quoi.Et voilà, le tour est joué. Amusez-vous bien !
N'hésitez pas à me suivre sur Mastodon et/ou diaspora* pour me lire lutter avec cette stack ! :-)