Optimisation de Zabbix

Page rédigée pour une version Ubuntu 8.04/10.04 LTS et Zabbix 1.8.2.

Sur cette page, nous allons indiquer les différentes optimisations matérielles ou logicielles permettant d’améliorer le fonctionnement de Zabbix, et de ses performances.

Sources : site et wiki officiels de Zabbix.

Cette page a été rédigée par :

Rôle Nom
Rédacteur Ludovic VALENTIN

Matériel

Au niveau du matériel, il est possible d’optimiser les performances de Zabbix en acquérant en toute logique les meilleures technologies possibles. Ainsi, il est recommandé d’utiliser un processeur aussi rapide que possible, de manière à améliorer le traitement des informations.

Pour les supports de stockage, il est préférable de disposer d’un SCSI ou d’un NAS plutôt que de simples disques durs IDE, ou SATA. Pour les disques IDE, l’usage de l’utilitaire hdparm permet d’en accroître les performances. La vitesse de traitement des supports doit aussi être prise en compte, en favorisant une vitesse la plus élevée possible. Une vitesse de 15000 tr/min pour un disque dur est donc un meilleur choix qu’un de 7200 tr/min.

En cas de mise en place d’un système de stockage RAID, il faut faciliter le traitement des données en choisissant un système rapide de sauvegarde RAID.

Dans l’optimisation du matériel réseau, il est recommandé de disposer d’adaptateurs Ethernet rapides.

Et bien sûr, pour finir il est également conseillé de posséder une grande capacité de mémoire RAM, dans l’optique de favoriser les traitements des différents processus de Zabbix.

Système d'exploitation

Dans le choix du système d’exploitation, il est avant tout recommandé d’utiliser une version stable, et la plus récente possible. Certaines fonctionnalités du Kernel peuvent également être retirées, ou encore optimisées.

Zabbix

Zabbix Server

De nombreux paramètres de la configuration de Zabbix peuvent être optimisés :

Paramètre Description
StartPollers Ce paramètre correspond au nombre d’instances de zabbix_server démarrées. Il consomme de nombreuses ressources, car le parallélisme augmente en conséquence. Sa valeur doit être la plus basse possible, il faut donc trouver le paramétrage optimal. Le nombre optimal est trouvé lorsque la file d’attente de Zabbix (voir Administration/Queue dans l’interface web) ne contient pas beaucoup de paramètres (items) en attente de traitement (l’idéal étant bien sûr 0 paramètres en attente). Il est possible de surveiller cette valeur avec un check interne zabbix[queue].
DebugLevel La valeur optimale du DebugLevel est le niveau 3. Ce dernier permet de limiter les informations.
DBSocket L’optimisation de ce paramètre est valable seulement pour un SGBD MySQL. Il est recommandé de préciser le DBSocket afin d’améliorer la vitesse et la sécurité de la connexion.

Zabbix Frontend

Dans l’interface Zabbix, le réglage des mises à jour des items à une valeur moins basse que possible permet de ne pas surcharger Zabbix. Alors que l’usage de petits intervalles de temps entre chaque mise à jour d’items, apporte des graphiques plus précis et détaillés, mais plus gourmand en ressources de traitement des données.

Pour optimiser les performances, il faut donc éditer les templates afin de régler les paramètres par défaut de manière générale.

Au niveau des paramètres, il y a quelques réglages possibles dans l’interface Zabbix, comme les Housekeepers, permettant d’affiner la durée de conservation de certaines données (historiques, évènements, …etc).

De plus pour les items, il est recommandé de ne pas gaspiller les ressources et les performances de Zabbix en supervisant des paramètres en doublons sur un même hôte. Par exemple, un item peut remonter un ensemble d’informations A, B et C, tout en ayant un autre item remontant B, il y a donc une nécessité d’optimisation en supprimant ce deuxième item, celui-ci devenant inutile par rapport au premier.

Pour finir, il faut éviter l’usage de longues périodes données en argument dans les triggers. Pour exemple, Max(3600) sera plus long à calculer que Max(60).

Base de données

La base de données est une partie importante de l’optimisation de Zabbix, celui-ci dépendant essentiellement de la disponibilité et de la performance du SGBD utilisé. Il est donc conseillé d’utiliser un moteur de base de données rapide.

Il est recommandé d’utiliser une version du SGBD stable et récente, de plus pour améliorer les performances de MySQL et PostreSQL, ces derniers doivent être installés depuis les sources. Ensuite, il faut se tourner vers la documentation officielle du SGDB utilisé afin de d’optimiser les performances des bases de données.

Au niveau de MySQL, la structure de table InnoDB doit être activée, car Zabbix peut fonctionner jusqu’à 1,5 fois plus vite si InnoDB est utilisé, en comparaison de MyISAM. Cela est dû à l’augmentation du parallélisme, même si cette fonction est très gourmande en CPU et en espace disque. Pour les grandes infrastructures, il est recommandé de conserver les fichiers temporaires de MySQL en tmpfs.

Il peut être intéressant aussi de stocker les tables de la base de données sur différents disques durs. Les tables les plus utilisées sont « history », « history_str », « items », « functions », « triggers » et « trends ».

zabbix/zabbix-optimization.txt · Dernière modification: 02/03/2017 15:41 (modification externe)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0