1/42 Zabbix Webinar
Alain GanuchaudConsultant chez Core IT Project
http://[email protected]
Agence commerciale [email protected]
Agence commerciale [email protected]
Présentation
2/42 Zabbix Webinar
Optimisation des Performances Zabbix
Tirez le meilleur de vos serveurs
3/42 Zabbix Webinar
De quoi s’agit-il ?
• Vue d’ensemble des performances Zabbix
• Etape 1. Identifiez et corrigez les problèmes basiques
• Etape 2. Optimisez les paramètres Zabbix
• Etape 3. Et plus encore …
4/42 Zabbix Webinar
Vue d’ensembleQuels sont les éléments de performance Zabbix?
5/42 Zabbix Webinar
Flux de données standard
Architecture standalone (pas de proxies, non distribuée)
Database
Poller
Poller
Trapper
Trapper
GUI
DATA
Historysyncer
DATA
DATA
Historysyncer
DATA
Alerter
Escalator
Conf syncer OTHERConf
syncer
Serveur Zabbix
6/31 Zabbix Webinar
Zabbix Server Components
Zabbix server
Database
history syncer db watchdog
housekeeper
escalator
alerter
timer
Configurationcache
History & trendscache
configuration syncer
node watcher
poller
icmp pinger
ipmi poller
http poller
trapper
discoverer
self-monitoringproxy poller
unreachable poller
java gateway poller
snmp trapper
7/42 Zabbix Webinar
Zabbix Server Components
alerter – envoie les notifications configuration syncer – gère le cache des configurations db watchdog - surveille la dispo de la base de données
Discoverer – gère le changement des composants découverts par le réseau
Escalator – gère les escalades history syncer – écrit les données mesurées dans la base
http poller processes – déroule les scénarii web Housekeeper – nettoie périodiquement les données obsoletes de la
base icmp pinger - icmpping & icmppingpersec items
ipmi poller - IPMI items node watcher – gère les nodes en architecture distribuée
Self-monitoring – mesure les internes Poller – collecte les données des agents passifs et snmp
proxy poller – gère les proxies passifs Timer – gère les fonctions de temps pour les triggers et les périodes de
maintenance Trapper – gère les connexions entrantes notamment les active agents,
zabbix_sender and active Zabbix proxies unreachable poller – gère les hosts non dispos
8/42 Zabbix Webinar
Métriques de Performance Zabbix
• Nombre de valeurs proceessées par seconde (NVPS)
• Evaluation des NVS dans le tableau de bord
NVPS
9/42 Zabbix Webinar
Performances assurées par Zabbix
Hardware: Quad Core CPU, 6GB, RAID10 BBWC*
Budget: ~ 2K EUR
• Zabbix est capable d’assurer 1 million de valeurs par minute ( ~15.000 valeurs /s)
• En pratique, ce sera moins. Pourquoi?!
* Battery Backed Write Cache
10/42 Zabbix Webinar
Facteurs impactant les performances
• Type d’items, types de valeurs, SNMPv3, nombre de triggers et la nature des triggers
• Paramètrages du Housekeeper et la taille de la Database
• Nombre d’utilisateurs sur le frontend
• Complexité des triggers
11/42 Zabbix Webinar
Performance versus nombre d’hôtes
Nombre d’hôtes Performance (valeurs par seconde)100 1001000 100010000 10000
60 items par hôte, régularité une fois par minute
Nombre d’hôtes Performance (valeurs par seconde)
100 10001000 10000
10000 100000
600 items par hôte, régularité une fois par minute
12/42 Zabbix Webinar
Lent versus Rapide
Objet Lent Rapide
Taille de la base Volumineuse Montée en RAM
Expressions des Triggers
min(),max(),avg() last(), nodata()
Collecte des données
Polling (SNMP, Agent-less, agents passifs)
Trappers (agents actifs)
Type des données Texte, string Numerique
13/42 Zabbix Webinar
Symptomes de baisse des performances
• La Queue d'attente Zabbix a trop de mesures en retard
Administration->Queue
• Trous dans les graphes, pas de données pour certains items
• Faux positifs pour les triggers ayant des fonctions nodata()
• Front-end lent
14/42 Zabbix Webinar
Queue sans problème
15/42 Zabbix Webinar
Identifiez et corrigezles problèmes
courantsETAPE 1
16/42 Zabbix Webinar
Ressentis différents
• “J’ai ajouté 5 hôtes et Zabbix est mort” :-(
• “Zabbix trop LENT, je n’ai que 48 hôtes” :-(
Pourtant:
• “Zabbix jalon 3 - 1000 hôtes et ça continue” :-)
• “Notre dernier point: 8500 hôtes, 950400 items, 670340 triggers, 9550 vps” :-)
:-) - Happy! :-( - Unhappy!
17/42 Zabbix Webinar
Problèmes courants
• Utilisation des templates par défaut
• Personnalisez vos templates
• Paramètres par défaut de la base de données
• Optimisez la base de données
• Paramètres par défaut des processus zabbix_server
• Optimisez les paramètres de la config zabbix_server
• Housekeeper
• Désactivez -le
• Utilisation de releases trop anciennes
• Mettez à jour régulièrement
18/42 Zabbix Webinar
Comment savoir si les performances de la base sont
mauvaises?
LogSlowQueries=1000
Fichier de config du serveur zabbix, zabbix_server.conf:
19/42 Zabbix Webinar
Optimisez la configuration de
ZabbixETAPE 2
20/42 Zabbix Webinar
Surveillez les items internes
• Nombre réel de VPS
• zabbix[wcache, values, all]
• zabbix[queue,1m] nombre d’items en retard de plus d’une minute
• Zabbix Server components
• Alerter, Configuration syncer, DB watchdog, discoverer, escalator, history syncer, http poller, housekeeper, icmp pinger, ipmi poller, poller, trapper
21/42 Zabbix Webinar
Surveillez les items internes
Avant la 1.8.5, il était impossible d’avoir le statut de chaque composant Zabbix.
22/42 Zabbix Webinar
Surveillez les items internes
• Depuis la 1.8.5, il est possible d’avoir le statut de chaque composant Zabbix
• Pourcentage du temps d’un processus en état BUSY
• zabbix[process,<type>,<mode>,<state>]
• <type> - trapper, discoverer, escalator, alerter, etc
• <mode> - avg, count, min, max
• <state> - busy, idle
23/42 Zabbix Webinar
Graphez le Busy Time
• A graph indicating a problem
24/42 Zabbix Webinar
Optimisez le nombre de processus Zabbix
StartPollers=80StartPingers=10StartPollersUnreachable=80StartIPMIPollers=10StartTrappers=20StartDBSyncers=8
Fichier de configuration du serveur Zabbix, zabbix_server.conf:
25/42 Zabbix Webinar
Et après ?ETAPE 3
26/42 Zabbix Webinar
Utilisez les Proxies
Les Proxies déchargent le serveur de la collecte
Trapper
Trapper
Trapper
Trapper
DATA
Historysyncer
DATA
DATA
Historysyncer
Alerter
Escalator
Conf syncer OTHERConf
syncer
Zabbix Server
Proxy
Proxy
Pollers
Pollers
DATA
DATA
27/42 Zabbix Webinar
Partitionnez vos tables
• Méthode pour répartir les grosses tables en petites partitions.
• C’est surtout important pour les tables d’historiques:
• history_*, trends*, events
• Bénéfices
• Il est plus facile de supprimer les données obsoletes
• Pas d’impact à la suppression des historiques
28/42 Zabbix Webinar
Zabbix server DB access
Housekeeper
Trends
29/42 Zabbix Webinar
Pas de table partitioning
ZabbixServer& GUI
History
30/42 Zabbix Webinar
Avec du table partitioning
ZabbixServer& GUI
Partition 2013_08
Partition 2013_09
Partition 2013_07
Partition 2013_06
31/42 Zabbix Webinar
J’ai tout essayé! Les performances sont
toujours minables.Architecture 3Tiers, répartissez sur 3 serveurs séparés!
Zabbix Server8 core CPU4GB of RAM
Database24 core CPU64GB of RAM
Disques rapides
Zabbix GUIFast CPU
4GB of RAM
32/42 Zabbix Webinar
Check ListSoyez certains de n’avoir rien oublié!
33/42 Zabbix Webinar
Check list
• Les Internes Zabbix sont surveillés!
• Sinon vous n’avez aucune visibilité sur la santé de votre plateforme Zabbix
• La configuration Zabbix est optimisée
• Les performances de la Base de données sont optimisées
• Le Housekeeper est dévalidé, utilisez le partitionning
DisableHousekeeper=1
34/42 Zabbix Webinar
Lectures de chevet
• MySQL & PostgreSQL Performance Tuning Guides
• Table partitioning for Zabbix
• MySQL: zabbixzone.com
• PostgreSQL: https://www.zabbix.org/wiki/Docs/howto/zabbix2_postgresql_partitioning
• Zabbix Internal Checks
• http://blog.zabbix.com/monitoring-how-busy-zabbix-processes-are
• http://www.zabbix.com/documentation/1.8/manual/config/items#internal_checks
35/42 Zabbix Webinar
Retours d'expérience 1/8
• A partir de quelles NVS a-t-on des problèmes de Perf ?
• 500 NVS (attention c'est une évaluation de Zabbix)
• Ne gardez pas une installation Zabbix par défaut
•Ne négligez pas les accès au Frontend
• Hackez le frontend (Limitation des périodes de graphes)
•Dévalidez le housekeeping & Partitionnez
• Changez l'architecture Zabbix
36/42 Zabbix Webinar
Retours d'expérience 2/8
Archi PRA peut vous aider !
37/42 Zabbix Webinar
Retours d'expérience 3/8
• Limitez la taille de la base
• Baissez les durées des historiques
• Augmentez les durées des tendances
• Augmentez les régularités
• Ne soyez pas radin sur le Hardware
• 2/3 du budget pour le serveur de base de données
•Disques SSD pour la base de données
• 95% des problèmes de perf = Base de données
38/42 Zabbix Webinar
Retours d'expérience 4/8
• Mettez à jour Zabbix et Base de données
• Zabbix 1.8 < Zabbix 2.0 < Zabbix 2.2
•Mysql 5.5 < Mysql 5.6
• N'adoptez pas l'architecture DM avant la 2.4
• Je ne suis pas convaincu par l'ajout de proxies
• Architecture DM Master/Child à proscrire
• Architecture DM Master/Child à reconsidérer en version 2.4 (fin 2014 / début 2015)
39/42 Zabbix Webinar
Retours d'expérience 5/8
• Active vs Passive
• Passive Proxy < Active Proxy
• Passive Agent < Active Agent
• Surveillez les paramètres internes
• Busy processes > 50 %
• Caches < 80 %
• ATTENTION StartDBSyncers
40/42 Zabbix Webinar
Retours d'expérience 6/8• Choisissez la bonne base de données
• Proscrivez DB2
•Oracle < Postgresql < Mysql (PerconaDB & MariaDB)
• Réservez sqlite aux proxies peu chargés (voire embarqués)
• Clustérisez votre base de données
• Galera V24 supporte Mysql 5.6
• Percona XtraDB Cluster intègre la réplication Galera
•MariaDB Galera Cluster
41/42 Zabbix Webinar
Retours d'expérience 7/8• Top 10 des problèmes de perf
1) Base de données
2) Config Zabbix
3) Organisation de la surveillance
4) CPU Serveur Zabbix
5) ...
6) ...
7) ...
8) ...
9) ...
10)Réseau : Jamais
42/42 Zabbix Webinar
Retours d'expérience 8/8
• Top 10 des outils utilisés
1) Innotop
2) Mysqltuner
3) Tuning-primer.sh
4) iostat
5) tcpdump