{"id":517,"date":"2018-10-17T15:41:07","date_gmt":"2018-10-17T15:41:07","guid":{"rendered":"https:\/\/www.appservgrid.com\/paw92\/?p=517"},"modified":"2018-10-17T16:15:14","modified_gmt":"2018-10-17T16:15:14","slug":"kvm-monitoring-avec-prometheus-et-grafana","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw92\/index.php\/2018\/10\/17\/kvm-monitoring-avec-prometheus-et-grafana\/","title":{"rendered":"KVM Monitoring avec Prometheus et Grafana"},"content":{"rendered":"<p>Share with friends and colleagues on social media<\/p>\n<p>Que se passe t-il au c\u0153ur d\u2019un hyperviseur KVM ?<br \/>\nComment se rendre compte de l\u2019activit\u00e9 des appels syst\u00e8me ?<br \/>\nEst-ce la folie et l\u2019effervescence digne des rues de Tokyo ou plut\u00f4t celle d\u2019un village tranquille avec un petit port de p\u00eache ?<\/p>\n<p>Si vous \u00eates un fan du mod\u00e8le UNIX \u2013 et je sais que vous l\u2019\u00eates \u2013 vous voulez qu\u2019un outil fasse une chose et qu\u2019il le fasse bien.<\/p>\n<p>Alors pour d\u00e9couvrir ce qui se passe dans notre hyperviseur, nous allons utiliser 3 outils open source, le tout interconnect\u00e9 via des api pour exporter o\u00f9 l\u2019on veut :<\/p>\n<ul>\n<li>collectd : collecte les statistiques de libvirt<\/li>\n<li>promotheus : stock les statistiques<\/li>\n<li>grafana : pr\u00e9sente les statistiques sous forme de graphique ou de conteur<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.suse.com\/c\/wp-content\/uploads\/2018\/10\/process_monitoring.png\" alt=\"collect - store - visualize\" width=\"671\" height=\"201\" \/><\/p>\n<h2>Installation des outils<\/h2>\n<p>Premi\u00e8re \u00e9tape, installer nos 3 outils depuis l\u2019open build service.<br \/>\nNous allons ajouter le d\u00e9p\u00f4t d\u00e9di\u00e9 aux outils de monitoring et installer via zypper (rpm)<\/p>\n<p>zypper ar http:\/\/download.opensuse.org\/repositories\/server:\/monitoring\/openSUSE_Factory\/server:monitoring.repo<\/p>\n<p>zypper in collectd collectd-plugin-virt<br \/>\nzypper in golang-github-prometheus-prometheus<br \/>\nzypper in grafana<\/p>\n<h2>Configuration de collectd<\/h2>\n<p>Dans collectd il est n\u00e9cessaire de renseigner le chemin vers la socket libvirt, puis pr\u00e9senter les statistiques au format prometheus.<\/p>\n<p>Dans le fichier <em>\/etc\/collectd.conf<\/em> ajouter les lignes suivantes :<\/p>\n<p>LoadPlugin virt<br \/>\n&lt;Plugin virt&gt;<br \/>\nConnection &#8220;qemu:\/\/\/system&#8221;<br \/>\nHostnameFormat name<br \/>\n&lt;\/Plugin&gt;<\/p>\n<p>LoadPlugin write_prometheus<br \/>\n&lt;Plugin write_prometheus&gt;<br \/>\nPort &#8220;9103&#8221;<br \/>\n&lt;\/Plugin&gt;<\/p>\n<p>Puis relancer le service :<\/p>\n<p>systemctl restart collectd<\/p>\n<h2>Configuration de prometheus<\/h2>\n<p>La configuration de prometheus est assez simple.<br \/>\nIl suffit de cr\u00e9er un nouveau job pour stocker les statistiques pr\u00e9sent\u00e9es par collectd.<\/p>\n<p>Dans le fichier <em>\/etc\/prometheus\/prometheus.yml<\/em> ajouter :<\/p>\n<p>&#8211; job_name: collectd<br \/>\nstatic_configs:<br \/>\n&#8211; targets:<br \/>\n&#8211; &#8216;localhost:9103&#8217;<\/p>\n<p>Puis relancer le service.<\/p>\n<p>systemctl start prometheus.service<\/p>\n<h2>Configuration de grafana<\/h2>\n<p>Comme une image vaut 1000 mots, un graphique color\u00e9 peut facilement nous raconter l\u2019histoire d\u2019un syst\u00e8me.<\/p>\n<p>La d\u00e9finition du compte admin se fait dans le fichier<em> \/etc\/grafana\/grafana.ini<\/em> :<\/p>\n<p>admin_user = admin<br \/>\nadmin_password = strongsecret<\/p>\n<p>Puis relancer le service.<\/p>\n<p>systemctl start grafana-server.service<\/p>\n<p>Vous pouvez maintenant vous connecter \u00e0 l\u2019interface web de grafana via l\u2019url : https:\/\/mon_serveur:3000\/<\/p>\n<h3>Ajout d\u2019une datasource<\/h3>\n<p>Depuis l\u2019interface web de grafana, la premi\u00e8re \u00e9tape est de r\u00e9cup\u00e9rer les statistiques stock\u00e9es dans prometheus.<br \/>\nPour cela il faut cr\u00e9er une datasource :<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.suse.com\/c\/wp-content\/uploads\/2018\/10\/Datasources.png\" alt=\"\" width=\"692\" height=\"478\" \/><\/p>\n<h3>Ajout d\u2019un dashboard<\/h3>\n<p>La seconde \u00e9tape, est d\u2019ajouter un dashboard pour transformer les statistiques en graphique.<\/p>\n<p>Le site de grafana recense plusieurs dashboards cr\u00e9\u00e9s par la communaut\u00e9. Voici le lien pour le dashboard que j\u2019utilise.<br \/>\nImporter le dashboard grace \u00e0 l\u2019ID <a href=\"https:\/\/grafana.com\/dashboards\/8396\">8396<\/a><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.suse.com\/c\/wp-content\/uploads\/2018\/10\/dashboard_id.png\" alt=\"\" width=\"580\" height=\"105\" \/><\/p>\n<p>Lors de l\u2019importation, s\u00e9lectionner la datasource cr\u00e9er pr\u00e9c\u00e9demment.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.suse.com\/c\/wp-content\/uploads\/2018\/10\/dashboard_import.png\" alt=\"\" width=\"811\" height=\"430\" \/><\/p>\n<h2>Profit<\/h2>\n<p>Maintenant grace \u00e0 grafana, vous pouvez faire parler les chiffres.<br \/>\nQue ce soit un vert apaisant signe que tout va bien ou un rouge criant : \u201con a besoin de plus de ressources\u201d.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.suse.com\/c\/wp-content\/uploads\/2018\/10\/dashboard-1024x546.png\" alt=\"\" width=\"1024\" height=\"546\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Share with friends and colleagues on social media<\/p>\n<p><a href=\"https:\/\/www.suse.com\/c\/kvm-monitoring-avec-prometheus-et-grafana\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Share with friends and colleagues on social media Que se passe t-il au c\u0153ur d\u2019un hyperviseur KVM ? Comment se rendre compte de l\u2019activit\u00e9 des appels syst\u00e8me ? Est-ce la folie et l\u2019effervescence digne des rues de Tokyo ou plut\u00f4t celle d\u2019un village tranquille avec un petit port de p\u00eache ? Si vous \u00eates un &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw92\/index.php\/2018\/10\/17\/kvm-monitoring-avec-prometheus-et-grafana\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;KVM Monitoring avec Prometheus et Grafana&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-517","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/comments?post=517"}],"version-history":[{"count":1,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/517\/revisions"}],"predecessor-version":[{"id":562,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/517\/revisions\/562"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/media?parent=517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/categories?post=517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/tags?post=517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}