KVM Monitoring avec Prometheus et Grafana

Share
Share

Que se passe t-il au cœur d’un hyperviseur KVM ?
Comment se rendre compte de l’activité des appels système ?
Est-ce la folie et l’effervescence digne des rues de Tokyo ou plutôt celle d’un village tranquille avec un petit port de pêche ?

Si vous êtes un fan du modèle UNIX – et je sais que vous l’êtes – vous voulez qu’un outil fasse une chose et qu’il le fasse bien.

Alors pour découvrir ce qui se passe dans notre hyperviseur, nous allons utiliser 3 outils open source, le tout interconnecté via des api pour exporter où l’on veut :

  • collectd : collecte les statistiques de libvirt
  • promotheus : stock les statistiques
  • grafana : présente les statistiques sous forme de graphique ou de conteur

 

collect - store - visualize

 

Installation des outils

Première étape, installer nos 3 outils depuis l’open build service.
Nous allons ajouter le dépôt dédié aux outils de monitoring et installer via zypper (rpm)

zypper ar http://download.opensuse.org/repositories/server:/monitoring/openSUSE_Factory/server:monitoring.repo

zypper in collectd collectd-plugin-virt
zypper in golang-github-prometheus-prometheus
zypper in grafana

 

Configuration de collectd

Dans collectd il est nécessaire de renseigner le chemin vers la socket libvirt, puis présenter les statistiques au format prometheus.

Dans le fichier /etc/collectd.conf ajouter les lignes suivantes :

LoadPlugin virt
<Plugin virt>
 Connection "qemu:///system"
 HostnameFormat "name"
</Plugin>

LoadPlugin write_prometheus
<Plugin write_prometheus>
 Port "9103"
</Plugin>

Puis relancer le service :

systemctl restart collectd

 

Configuration de prometheus

La configuration de prometheus est assez simple.
Il suffit de créer un nouveau job pour stocker les statistiques présentées par collectd.

Dans le fichier /etc/prometheus/prometheus.yml ajouter :

- job_name: collectd
   static_configs:
   - targets:
     - 'localhost:9103'

Puis relancer le service.

systemctl start prometheus.service

 

Configuration de grafana

Comme une image vaut 1000 mots, un graphique coloré peut facilement nous raconter l’histoire d’un système.

La définition du compte admin se fait dans le fichier /etc/grafana/grafana.ini :

admin_user = admin
admin_password = strongsecret

Puis relancer le service.

systemctl start grafana-server.service

Vous pouvez maintenant vous connecter à l’interface web de grafana via l’url : https://mon_serveur:3000/

Ajout d’une datasource

Depuis l’interface web de grafana, la première étape est de récupérer les statistiques stockées dans prometheus.
Pour cela il faut créer une datasource :

Ajout d’un dashboard

La seconde étape, est d’ajouter un dashboard pour transformer les statistiques en graphique.

Le site de grafana recense plusieurs dashboards créés par la communauté. Voici le lien pour le dashboard que j’utilise.
Importer le dashboard grace à l’ID 8396

Lors de l’importation, sélectionner la datasource créer précédemment.

Profit

Maintenant grace à grafana, vous pouvez faire parler les chiffres.
Que ce soit un vert apaisant signe que tout va bien ou un rouge criant : « on a besoin de plus de ressources ».

Share
(Visited 1 times, 1 visits today)

Comments

  • Avatar photo Sebastien dit :

    Merci Brice très utile !

  • Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Avatar photo
    7 720 views