Optimisation / tuning de Centreon

Centreon est un très bon outils de Monitoring avec lequel on peut tout faire, mais quand on a une très grosse infrastructure, vous constaterez assez rapidement une dégradation des performances. Les temps de réponses augmentent sur notre frond-end, la charge CPU augmente et on note assez vite des problèmes de latence au niveau des checks.

La toute première chose à faire pour éviter ce genre de problèmes est d’héberger la base mysql sur un autre serveur puisque c’est la ressource la plus consommatrice en terme de CPU / RAM / IO disques.

Si comme pour moi il n’est pas possible d’avoir deux machines, voici quelques conseils qui vont aideront à améliorer les performances de votre Centreon :

Autour de Centreon

Le tuning MySQL :Téléchargez MySQLtuner et tester le après au moins 24H d’uptime de la base MySQL. Il vous indiquera de manière claire les paramètres à modifier dans votre my.conf. les paramètres les plus importants sont :

  • key_buffer_size,
  • innodb_buffer_pool_size,
  • innodb_additional_memory_pool_size,
  • innodb_log_buffer_size,
  • query_cache_size.
  • read_buffer_size,
  • sort_buffer_size

Les paramètres sont à modifier en fonction de la quantité de mémoire possédé sur le serveur.

Vérifiez vos équipements :
Une partie également de la latence est dû aux équipements que vous monitorez. Quand nagios appelle un script, ce dernier se lance, il envoie sa requête à l’hôte cible, puis attends sa réponse. Tant que ce dernier ne répond pas, le script continue de consommer des ressources.

Le disque dur :
Une des parties les plus importantes est bien évidemment le disque dur, si vous êtes sur machine virtuelle, assurez vous que le serveur possède des disques avec de bons temps de réponses et une bonne capacité d’écriture de petits fichiers.

Dans Centreon :

Les scripts PERL :
Les scripts PERL sont très fréquemment utilisés dans Centreon car simple à développer, mais il ne sont pas optimisés pour une utilisation agressive puisque se sont des scripts “interprétés”, il vaut mieux préférer des scripts de plus bas niveau tel que le C/C++. Pour les scripts PERL, je vous conseil d’activer l’interpréteur Nagios, pour se faire, rendez vous dans : configuration, nagios, nagios.cfg, allez dans l’onglet admin puis cochez les cases suivantes :

nagios embedded perl

Les commandes :
Un petit tweak facile à réaliser et qui fera économiser un peu de temps CPU est la suppression de certains arguments au profit de leur vraie valeur. Quand vous entrez un argument (exemple : $USER1$), Nagios doit aller chercher dans son fichier ressources à quoi correspond $USER1$ ce qui fait perdre un temps précieux. Idem pour les arguments du style Warning & Critical, quand c’est possible préférez ajouter une valeur fixe :

check_http nagios

Les checks passifs :
Peu utilisé et pourtant très utile, chaque fois que c’est possible, utilisez cette méthode. Des snmp-traps existent pour bon nombre d’équipements. A chaque fois qu’un équipement rencontre une erreur ou un warning, elle l’enverra à votre serveur de supervision, vous n’avez donc pas à consommer des ressources CPU pour une réponse identique. J’écrirai prochainement un article sur l’utilisation de ses traps.

L’intervalle des checks :
Afin de réduire significativement votre consommation CPU & disque, augmenter l’intervalle des checks sur les services non critiques. Par exemple, sur l’utilisation de la bande passante ou alors sur la consommation espace disque.

Tuning :
Dans l’espace : configuration, nagios, nagios.cfg, vous trouverez un onglet Tuning :

tuning nagios centreon

Les lignes importantes à modifier sont :

  • Maximum Concurrent Service Checks : Nombre de check maximum en même temps, à régler petit à petit.
  • Free child process memory : cocher “OUI”
  • Child processes fork twice : cocher “NON” : permet de lancer le plugin 1x au lieu de 2

Après toutes ces modifications, vous devriez remarquer une baisse de la consommation de ressources significatives.

Si vous avez d’autres conseils & astuces ou pour toutes remarques / questions, les commentaires sont juste en dessous ;)

About Alexandre Nogard

Check Also

Bash Scripting : Creation de vhosts automatisés avec Certificat Lets Encrypt

Bonjour à tous, Il y a quelques temps, j’avais posté un script bash permettant de …

Owncloud 9.X : Installation d’un certificat Let’s Encrypt – Part 2

Lets Encrypt est une autorité de certification libre, qui fournit des protocoles X.509. Il permet …

Owncloud 9.X : Installation & Configuration sur CentOs 7 et MariaDB – Part1

OwnCloud est un serveur de partage de fichiers qui vous permet de stocker votre contenu …

4 comments

  1. Petit article sympa qui en ravira plus d’un ;)

  2. Merci de ces tips! Cela m’a grandement aidé! Surtout le MySQLTuner!

  3. Great work…i think…

    Would you translate it into english?

    Thank you very much!

    Regards
    Chris

Leave a Reply

Your email address will not be published. Required fields are marked *