/ Docker

Monitorer son blog avec Docker

Dans cet article nous allons aborder une méthode pour monitorer votre site/blog, containeurisé sur Docker évidemment. J'ai choisi la combinaison Grafana/Prometheus pour ce tutoriel. Voici un schéma type qui présente ce que nous allons mettre en place :

prometheus-on-docker-1

J'ai donc commencé par me connecter à mon VPS OVH hébergeant mon blog sous Ghost.

*root@vps473745:~# docker ps *

ef0a0192ff62 nicolargo/glances "/bin/sh -c 'pytho..." 3 weeks ago Up 3 weeks 0.0.0.0:61208-61209->61208-61209/tcp wizardlybrattain
46f6541af0b2 mysql:5.7 "docker-entrypoint..." 3 weeks ago Up 44 hours 3306/tcp blogdb1
1febac5b487a ghost:1-alpine "docker-entrypoint..." 3 weeks ago Up 44 hours 0.0.0.0:80->2368/tcp blogghost1

Avec docker ps on check le nombre de containeurs actifs, j'ai bien glances pour superviser mes containeurs dockers, ma base MYSQL et mon blog Ghost.

Penchons-nous à présent sur la solution Dockprom qui permet de mettre en place les outils de surveillance pour les hôtes et les conteneurs Docker avec Prometheus, Grafana, cAdvisor, NodeExporter et l'alerte avec AlertManager.
( https://github.com/gabrielsagnard/dockprom )

Puis on lance les commandes :

*git clone https://github.com/stefanprodan/dockprom
cd dockprom

ADMINUSER=admin ADMINPASSWORD=admin docker-compose up -d*

Pré-requis :

Docker Engine >= 1.13
Docker Compose >= 1.11

Puis on accède en premier à http: // <ip-hôte>: 3000 et connectez-vous avec admin et admin en mot de passe. Vous pouvez modifier les informations d'identification dans le fichier de composition ou en fournissant les variables d'environnement ADMIN_USER et ADMIN_PASSWORD lors de la composition.

Grafana est préconfiguré avec des tableaux de bord et Prometheus comme source de données par défaut :

Name: Prometheus
Type: Prometheus
Url: http://prometheus:9090
Access: proxy

Puis magie :

Capture-d-e-cran-2017-12-12-a--19.02.11

On découvre alors plusieurs Dashboards sous Grafana nous permettant de visualiser les statistiques sur l'état de notre instance et de nos containeurs en action sur le serveur, ainsi nous avons observé le dashboard Docker hosts, voici les plusieurs graphiques de notre dashboard Docker containeurs :

Capture-d-e-cran-2017-12-13-a--21.37.43

Capture-d-e-cran-2017-12-13-a--21.37.59

On a accès à tout un tas d'informations passionnantes sous une forme lisible et agréable à lire à contrario d'un centreon ou d'un shinken voir même d'un nagios. En effet, Grafana bien qu'étant un projet open-source à l'instar de ces homologues, est en revanche beaucoup plus accessible. Le thème est vraiment design, les graph sont très parlants, un vrai plaisir donc.

  • Temps de disponibilité du serveur, pourcentage d'inactivité du processeur, nombre de cœurs de processeur,
  • mémoire disponible, échange et stockage
  • Graphique moyen de la charge du système, en cours d'exécution et bloqué par le graphique des processus d'E / S, interrompt le graphique
  • Graphique d'utilisation du CPU par mode (invité, inactif, iowait, irq, softirq, vol, système, utilisateur)
  • Graphique d'utilisation de la mémoire par distribution (utilisé, libre, tampons, mis en cache)
  • Graphique d'utilisation des E / S (lire les Bps, lire les Bps et les E / S)
  • Graphique d'utilisation du réseau par périphérique (Bps entrants, BPS sortants)
  • Permuter les graphiques d'utilisation et d'activité

Pour rappel, mon blog est vraiment très rapide grâce à la combinaison de Docker, Ghost et Alpine Linux qui héberge le containeur :

Capture-d-e-cran-2017-12-15-a--19.16.31

Le vrai truc sympa c'est qu'avec Prometheus joignable à l'ip de votre serveur:9090, on peut configurer de nouvelles tâches pour Grafana :

Capture-d-e-cran-2017-12-15-a--19.18.57

Accessible avec les identifiants que vous aurez choisi, Prometheus se gère très simplement. J'ai par exemple besoin de visualiser et d'avoir des statistiques sur la mémoire système disponible, j'exécute la commande suivante nodefilesystemfree et hop automatiquement les données vont remonter dans mon instance Grafana, vraiment cool.