Nous allons évoquer ici les outils de monitoring utilisés par uh!live dans le cadre de la supervision de ses services.

Les outils de monitoring permettent non seulement d’être au courant de la vie de l’infrastructure et de son état, mais également d’améliorer les services auprès de nos clients, comme par exemple d’ajuster les seuils en fonction de leur activité et d’améliorer la proactivité lorsque cela est nécessaire.

La supervision regroupe plusieurs catégories distinctes : la supervision et la collecte d’informations. Il n’existe pas à proprement parler d’outil unique pouvant tout faire. C’est la combinaison de plusieurs outils qui vont rendre le tout efficace.

Voici une liste non exhaustive des outils au sein d’uh!live :

Icinga2

Icinga2 est l’outil principal de la supervision en vérifiant régulièrement l’état des serveurs et des services. Il permet d’alerter en cas de problème.

Couplé à l’interface web icingaweb2 en font un choix solide pour superviser des parcs machines hétérogènes, qu’il s’agisse de serveurs physiques ou de machines virtuelles.

Basé sur Nagios, il nous permet de créer nos propres scripts de monitoring (bash/python), de créer des zones géographiques distinctes grâce à la configuration en satellite, d’installer l’interface web sur d’autres zones géographiques et de faire du custom sur la moindre configuration (délai, alertes mail/SMS/outils de communication interne).

Prometheus

Prometheus collecte et stocke des métriques en temps réel depuis nos applications et nos serveurs. Il interroge régulièrement des points d’accès exposés par nos services, puis permet d’y faire des requêtes via son propre langage, nommé PromQL.

Couplé avec Grafana, nous avons la possibilité de créer plusieurs dashboards personnalisés en fonction des besoins remontés par nos équipes en interne.

Les agents Prometheus

Nous nous appuyons sur plusieurs agents installés localement afin de remonter toutes les métriques dont nous avons besoin :

  • Node Exporter expose les métriques système (CPU, mémoire, disque, réseau),
  • MySQL Exporter expose les métriques concernant les bases de données MySQL/MariaDB,
  • PostgreSQL Exporter expose les métriques concernant les bases de données PostgreSQL.

Les métriques sont exposées dans un format que seul Prometheus peut lire. Les agents sont simples, légers et discrets sans consommer trop de ressources sur les serveurs.

Smokeping

Smokeping est un outil permettant de surveiller en continu la qualité des latences réseaux et les pertes de paquets vers des cibles définies. La présentation des résultats se fait sous forme de graphiques, rappelant l’outil Cacti pour les plus nostalgiques.

Il est très utile lorsque vous possédez une architecture informatique déployée sur plusieurs sites et datacenters géographiques, ainsi qu’une segmentation réseau accrue comme c’est le cas au sein d’uh!live.

Graylog

Graylog est un outil de type SIEM qui centralise tous les journaux produits par nos serveurs et nos applications en un seul endroit. L’interface basique permet de rechercher, filtrer et créer des alertes sur ces logs facilement.

Il permet également d’être géré en cluster de manière à supporter un volume conséquent de données. Il est possible de garder les données sur un laps de temps défini suivant les politiques de sécurité ou de revenir sur un incident qui s’est produit. La création d’alerte en utilisant de multiples connecteurs est la touche supplémentaire à l’outil.

L’emploi d’un outil tel que Graylog est primordial dans notre architecture car il permet d’avoir des informations et des alertes en temps réel, ce qui est le coeur du métier d’uh!live.

Autres outils

Dans cet article, nous évoquons seulement les principaux outils utilisés au sein de la gestion de l’infrastructure. Nous ne parlons pas des outils utilisés dans le développement applicatif qui sont tout aussi nombreux et précieux.

Nous avons également développé des outils personnalisés et surtout utilisés d’une manière très spécifique pour certains cas de figure.

L’ensemble des scripts et des configurations est stocké et versionné dans GitHub, mis en ligne grâce aux outils Ansible et Puppet. Même si ces derniers outils ne concernent pas le monitoring, ils nous aident au quotidien dans la gestion de l’infrastructure.


Il n’y a pas que les outils …

La gestion des alertes

Afin de ne pas se laisser submerger par le nombre d’alertes, nous réalisons une revue régulière des alertes afin de décider de leur pertinence et de leur statut. Un « ménage » de printemps en quelque sorte.

La documentation

Dans un système complexe où plusieurs corps de métier sont mêlés, il est impératif de maintenir une documentation à jour en y indiquant le comportement à avoir face à un incident et de disposer de memento sur les outils, l’historique afin de vérifier les fréquences d’incidents, etc.

L’aspect humain

Tous ces outils mis en place, il ne faut pas négliger le côté humain qui est indispensable à la bonne réalisation de la surveillance de l’infrastructure :

  • Mise en place d’une revue régulière des incidents passés,
  • Mise en place d’une documentation claire,
  • Observer les répétitions et alerter les bonnes personnes afin d’améliorer les outils et les processus,
  • Pratique une veille informatique régulière,
  • La cohésion d’équipe est primordiale avec un passage d’informations optimal.

Ressources

Share