Le monitoring est une préoccupation centrale chez Cyrès. Nous supervisons l’essentiel de nos machines, de nos services via le logiciel Zabbix. Le choix de ce logiciel s’est montré pertinent par sa qualité, sa flexibilité et son développement. Il est ancré dans notre quotidien et même dans nos nuits !
Le premier trigger Zabbix chez Cyrès
Même si la date d’installation de notre tout premier Zabbix n’est pas identifiable, les documentations de la migration de notre première base en version 1.4.6 sont inscrites à la date de fin décembre 2009. La solution de monitoring Zabbix est donc installée depuis plus de 10 ans chez Cyrès. On pourrait dire que c’est une preuve d’amour, non ?
Une de mes premières tâches chez Cyrès en 2011 a été de préparer la migration du Zabbix 1.8 vers une version 2.0. À cette époque, les migrations n’étaient pas aussi faciles qu’aujourd’hui et demandaient de nombreux tests et de la préparation. Le produit manquait de contrôles et certains éléments se retrouvaient orphelins, sans possibilité de les migrer proprement. L’équipe a travaillé deux mois pour aboutir à une documentation et à un script de migration.
Nous n’avions à ce moment qu’une centaine de machines à monitorer, mais déjà avec beaucoup de spécificités et d’exceptions. Il a donc été décidé de partir sur une nouvelle base, plus propre et plus claire.
Une version Zabbix nommée 2.0
Une solution de monitoring dotée de nombreuses fonctionnalités
Il faut dire que la version 2.0 de Zabbix nous a apporté beaucoup de tranquillité. L’interface restait vieillotte mais ne générait plus d’erreur à tout bout de champ : cette version et nos efforts ont payé rapidement. Nous avons donc passé ces années à migrer de version majeure en version majeure sans gros accroc, appréciant fortement les nouvelles fonctionnalités du produit : les découvertes automatiques (LLD), le chiffrement des échanges (en TLS via PSK et certificat), l’intégration du JSONPath, du XML, du Javascript, etc. Chaque rajout de fonctionnalités nous a demandé d’adapter le monitoring mais a rendu les alertes plus pertinentes, plus efficaces. Il faut préciser qu’en tant que solution de monitoring, Zabbix s’est montré de plus en plus complexe (coucou les regex !) et de manière logique nous avons dû nous adapter pour fonctionner en effectif réduit sur cette technologie nécessitant davantage de compétences.
Le travail sur la qualité des alertes nous a aidé à anticiper et à résoudre des pannes. L’implication des équipes s’est aussi clairement améliorée : entre la rédaction de documentations sur le fonctionnement des produits et services, les formations en interne et les explications en « off », nous sommes passés d’un travail presque individuel à un beau travail d’équipe où tout le monde a pu s’impliquer dans la construction, l’adaptation ou la résolution de problème. L’astreinte, qui était régulièrement dérangée la nuit, est devenue plus tranquille et un point hebdomadaire (voire quotidien) a été mis en place pour faire des bilans.
Zabbix is running
Capacité de monitoring au-delà de 100 K métriques
Nous surveillons près de 2 000 machines (hosts) et nous avons environ 60 000 alertes (triggers) différentes. Toutes ces alertes sont un savant mélange de 100 000 métriques (items) remontées. Une certaine base de ce travail est fournie par Zabbix, avec des templates officiels. Une autre, bien plus importante a été construite pendant des années en interne avec les équipes. Cette dernière base est en très grande partie adaptée à être utilisée sur d’autres Zabbix. Nous nous efforçons de suivre les bonnes pratiques proposées afin de fusionner régulièrement les efforts effectués de notre côté avec ceux effectués par Zabbix et les éditeurs.
Près de 400 métriques sont remontées toutes les secondes et sont stockées au sein d’une base PostgreSQL. Deux serveurs de base de données équipés de SSD de type Dell Write Intensive et de RAID10 stockent ces données sur plusieurs mois.
Aujourd’hui, nous monitorons tout ce que nous avons avec cet outil : nos infrastructures Gitlab, nos certificats, les performances Exchange, DNS, les temps de réponses de nos API et de SharePoint. Nous savons déployer en masse par Ansible sur de grosses infrastructures BigData, vérifier l’état de ports réseau, nos routes BGP et le trafic IPv6. Nous anticipons les dégradations de service mais aussi les pannes matériels ou disques (via S.M.A.R.T.). Nous optimisons nos services avec des statistiques précises (Apache, MySQL, Nginx par exemple).
Malgré des performances honorables et une stabilité éprouvée, cette infrastructure nécessite une mise à jour « physique » et c’est pourquoi nous travaillons déjà sur un projet de virtualisation.
Cyrès, totalement tournée vers cette solution de monitoring et sa communauté
Depuis notre première installation, nous avons régulièrement interagi avec la communauté :
- Nous avons commencé par de l’aide à la traduction de la documentation en français ce qui permettait de bien comprendre le produit et d’avoir une bonne connaissance de la documentation officielle (https://www.zabbix.com/documentation/current/start).
- Suite à cette prise de connaissance, nous avons commencé à entrevoir les limites, les problèmes et donc à participer à l’ouverture de tickets sur des bugs ou des améliorations possibles (https://support.zabbix.com).
- Nous avons partagé nos connaissances sur le forum et parfois sur le salon IRC ! Depuis, nos spécificités au sein de Cyrès et les quelques manques du produit ont été comblés en grande partie par des templates (modèles), des scripts, des plugins et quelques patchs que nous avons partagé via git, ou par le https://share.zabbix.com.
- Partie certification Zabbix : nous sommes trois au sein de l’équipe technique à avoir reçu une certification complète ! D’ailleurs, nous avons des échanges réguliers et très intéressants avec les formateurs dans le cadre de webinars ou même autour d’une bière 😉 Ces échanges sont forts de sens et nous apprécions participer à l’évolution de ce produit.
Un serveur de supervision v6 dans les tuyaux et après !?
Et après ? Toujours autant de travail 🙂
Zabbix est un outil de supervision complexe qui s’enrichit régulièrement. Nous avons des tonnes de projets : la virtualisation est presque finie, la mise en place de proxy est bien avancée, nous attendons la V6 avec impatience pour tester la haute disponibilité, le monitoring des certificats va certainement être revu.
L’accès facilité à du XML, Prometheus ou JSON donne un nouveau champ de perspectives, une possibilité de collecter massivement des données formatées. Le nouvel agent en Go s’annonce prometteur et fait déjà un excellent travail sur certaines machines « LAMP » où il est déjà en production. Beaucoup de choses mais nous pouvons travailler à trois en parallèle sur ces évolutions !
Avec cela, nous avons de la demande client. Nous savons accompagner dans la mise en place ou l’évolution de Zabbix. Le travail avec le client et avec nos équipes en interne nous permet d’avoir de la pertinence dans des alertes génériques comme sur des applicatifs métiers. Cette plus-value est réellement importante car elle permet d’être alerté au bon moment d’un problème spécifique. C’est de la proactivité ou du curatif efficace ! Et cette demande ne fait que grandir : nous voyons encore des infrastructures entières monitorées avec un simple ping !
Cyrès loves Zabbix ❤️
Voilà, un petit tour de piste (pas trop technique !) de notre voyage avec la solution de monitoring Zabbix : nous avons grandi avec et il est clair que nous allons encore l’utiliser pour de nombreuses années. Il nous paraît pertinent de réfléchir à ce logiciel si vous estimez que votre système d’information est mal supervisé : sa richesse et sa forte communauté en font un outil très concurrent à Nagios/Centreon. Nous aurons d’ailleurs plaisir à vous conseiller si vous avez des questions !
Plus d’infos sur Zabbix ? Parlez avec nos équipes ici