Présentation

Alain Ganuchaud
Consultant chez Core IT Project
http://www.coreit.fr
alain@coreit.fr

Agence commerciale Lyon
chris@coreit.fr
Agence commerciale Valence
steph@coreit.fr

1/42

Zabbix Webinar
Optimisation des
Performances Zabbix
Tirez le meilleur de vos serveurs

2/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 …
3/42

Zabbix Webinar
Vue d’ensemble
Quels sont les éléments de performance Zabbix?

4/42

Zabbix Webinar
Flux de données standard
Alerter

GUI

Poller

DATA

Escalator

History
syncer

Poller

DATA

DATA
History
syncer

Trapper

Database
Conf
syncer

Conf syncer

OTHER

Trapper

DATA

Serveur Zabbix

Architecture standalone (pas de proxies, non distribuée)
5/42

Zabbix Webinar
Zabbix Server Components
poller
Zabbix server
Configuration
cache

alerter
escalator

ipmi poller
unreachable poller
proxy poller

self-monitoring
History & trends
cache
timer

icmp pinger

history syncer

db watchdog

trapper
http poller
discoverer
node watcher

configuration syncer

housekeeper

java gateway poller

snmp trapper

Database

6/31

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

7/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

8/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

9/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
10/42

Zabbix Webinar
Performance versus nombre
d’hôtes
60 items par hôte, régularité une fois par minute
Nombre d’hôtes
100
1000
10000

Performance (valeurs par seconde)
100
1000
10000

600 items par hôte, régularité une fois par minute
Nombre d’hôtes
100
1000
10000
11/42

Performance (valeurs par seconde)
1000
10000
100000
Zabbix Webinar
Lent versus Rapide
Objet

Lent

Rapide

Taille de la base

Volumineuse

Montée en RAM

Expressions des
Triggers
Collecte des
données

min(),max(),avg() last(), nodata()

Type des données

Texte, string

12/42

Polling (SNMP,
Trappers (agents
Agent-less, agents actifs)
passifs)
Numerique

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
13/42

Zabbix Webinar
Queue sans problème

14/42

Zabbix Webinar
Identifiez et corrigez
les problèmes
courants
ETAPE 1

15/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!
16/42

:-( - Unhappy!
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
17/42

Zabbix Webinar
Comment savoir si les
performances de la base sont
mauvaises?
Fichier de config du serveur zabbix, zabbix_server.conf:

LogSlowQueries=1000

18/42

Zabbix Webinar
Optimisez la
configuration de
Zabbix
ETAPE 2

19/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

20/42

Zabbix Webinar
Surveillez les items internes

Avant la 1.8.5, il était impossible
d’avoir le statut de chaque
composant Zabbix.

21/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
22/42

Zabbix Webinar
Graphez le Busy Time

• A graph indicating a problem

23/42

Zabbix Webinar
Optimisez le nombre de
processus Zabbix
Fichier de configuration du serveur Zabbix, zabbix_server.conf:

StartPollers=80
StartPingers=10
StartPollersUnreachable=80
StartIPMIPollers=10
StartTrappers=20
StartDBSyncers=8
24/42

Zabbix Webinar
Et après ?
ETAPE 3

25/42

Zabbix Webinar
Utilisez les Proxies
Alerter

Trapper

DATA

Proxy

History
syncer

History
syncer

Conf
syncer

Conf syncer

OTHER

Pollers

DATA

Proxy

Escalator

Pollers

DATA

Trapper

DATA
Trapper

Trapper

DATA

Zabbix Server

Les Proxies déchargent le serveur de la collecte
26/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
27/42

Zabbix Webinar
Zabbix server DB access
Housekeeper
Trends

28/42

Zabbix Webinar
Pas de table partitioning

Zabbix
Server
& GUI

29/42

History

Zabbix Webinar
Avec du table partitioning
Partition 2013_09

Zabbix
Server
& GUI

Partition 2013_08

Partition 2013_07

Partition 2013_06

30/42

Zabbix Webinar
J’ai tout essayé!
Les performances sont
toujours minables.
Architecture 3Tiers, répartissez sur 3 serveurs séparés!

Database
Zabbix Server
24 core CPU
8 core CPU
64GB of RAM
4GB of RAM
Disques rapides

31/42

Zabbix GUI
Fast CPU
4GB of RAM

Zabbix Webinar
Check List
Soyez certains de n’avoir rien oublié!

32/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
33/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-zabbi
x-processes-are

• http://www.zabbix.com/documentation/1.8/manual
/config/items#internal_checks

34/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
35/42

Zabbix Webinar
Retours d'expérience 2/8

Archi PRA peut vous aider !
36/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

37/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)

38/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

39/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
40/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
41/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

42/42

Zabbix Webinar

Optimisation de la plateforme de Supervision Zabbix

  • 1.
    Présentation Alain Ganuchaud Consultant chezCore IT Project http://www.coreit.fr alain@coreit.fr Agence commerciale Lyon chris@coreit.fr Agence commerciale Valence steph@coreit.fr 1/42 Zabbix Webinar
  • 2.
    Optimisation des Performances Zabbix Tirezle meilleur de vos serveurs 2/42 Zabbix Webinar
  • 3.
    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 … 3/42 Zabbix Webinar
  • 4.
    Vue d’ensemble Quels sontles éléments de performance Zabbix? 4/42 Zabbix Webinar
  • 5.
    Flux de donnéesstandard Alerter GUI Poller DATA Escalator History syncer Poller DATA DATA History syncer Trapper Database Conf syncer Conf syncer OTHER Trapper DATA Serveur Zabbix Architecture standalone (pas de proxies, non distribuée) 5/42 Zabbix Webinar
  • 6.
    Zabbix Server Components poller Zabbixserver Configuration cache alerter escalator ipmi poller unreachable poller proxy poller self-monitoring History & trends cache timer icmp pinger history syncer db watchdog trapper http poller discoverer node watcher configuration syncer housekeeper java gateway poller snmp trapper Database 6/31 Zabbix Webinar
  • 7.
    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 7/42 Zabbix Webinar
  • 8.
    Métriques de Performance Zabbix •Nombre de valeurs proceessées par seconde (NVPS) • Evaluation des NVS dans le tableau de bord NVPS 8/42 Zabbix Webinar
  • 9.
    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 9/42 Zabbix Webinar
  • 10.
    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 10/42 Zabbix Webinar
  • 11.
    Performance versus nombre d’hôtes 60items par hôte, régularité une fois par minute Nombre d’hôtes 100 1000 10000 Performance (valeurs par seconde) 100 1000 10000 600 items par hôte, régularité une fois par minute Nombre d’hôtes 100 1000 10000 11/42 Performance (valeurs par seconde) 1000 10000 100000 Zabbix Webinar
  • 12.
    Lent versus Rapide Objet Lent Rapide Taillede la base Volumineuse Montée en RAM Expressions des Triggers Collecte des données min(),max(),avg() last(), nodata() Type des données Texte, string 12/42 Polling (SNMP, Trappers (agents Agent-less, agents actifs) passifs) Numerique Zabbix Webinar
  • 13.
    Symptomes de baissedes 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 13/42 Zabbix Webinar
  • 14.
  • 15.
    Identifiez et corrigez lesproblèmes courants ETAPE 1 15/42 Zabbix Webinar
  • 16.
    Ressentis différents • “J’aiajouté 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! 16/42 :-( - Unhappy! Zabbix Webinar
  • 17.
    Problèmes courants • Utilisationdes 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 17/42 Zabbix Webinar
  • 18.
    Comment savoir siles performances de la base sont mauvaises? Fichier de config du serveur zabbix, zabbix_server.conf: LogSlowQueries=1000 18/42 Zabbix Webinar
  • 19.
  • 20.
    Surveillez les itemsinternes • 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 20/42 Zabbix Webinar
  • 21.
    Surveillez les itemsinternes Avant la 1.8.5, il était impossible d’avoir le statut de chaque composant Zabbix. 21/42 Zabbix Webinar
  • 22.
    Surveillez les itemsinternes • 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 22/42 Zabbix Webinar
  • 23.
    Graphez le BusyTime • A graph indicating a problem 23/42 Zabbix Webinar
  • 24.
    Optimisez le nombrede processus Zabbix Fichier de configuration du serveur Zabbix, zabbix_server.conf: StartPollers=80 StartPingers=10 StartPollersUnreachable=80 StartIPMIPollers=10 StartTrappers=20 StartDBSyncers=8 24/42 Zabbix Webinar
  • 25.
    Et après ? ETAPE3 25/42 Zabbix Webinar
  • 26.
    Utilisez les Proxies Alerter Trapper DATA Proxy History syncer History syncer Conf syncer Confsyncer OTHER Pollers DATA Proxy Escalator Pollers DATA Trapper DATA Trapper Trapper DATA Zabbix Server Les Proxies déchargent le serveur de la collecte 26/42 Zabbix Webinar
  • 27.
    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 27/42 Zabbix Webinar
  • 28.
    Zabbix server DBaccess Housekeeper Trends 28/42 Zabbix Webinar
  • 29.
    Pas de tablepartitioning Zabbix Server & GUI 29/42 History Zabbix Webinar
  • 30.
    Avec du tablepartitioning Partition 2013_09 Zabbix Server & GUI Partition 2013_08 Partition 2013_07 Partition 2013_06 30/42 Zabbix Webinar
  • 31.
    J’ai tout essayé! Lesperformances sont toujours minables. Architecture 3Tiers, répartissez sur 3 serveurs séparés! Database Zabbix Server 24 core CPU 8 core CPU 64GB of RAM 4GB of RAM Disques rapides 31/42 Zabbix GUI Fast CPU 4GB of RAM Zabbix Webinar
  • 32.
    Check List Soyez certainsde n’avoir rien oublié! 32/42 Zabbix Webinar
  • 33.
    Check list • LesInternes 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 33/42 Zabbix Webinar
  • 34.
    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-zabbi x-processes-are • http://www.zabbix.com/documentation/1.8/manual /config/items#internal_checks 34/42 Zabbix Webinar
  • 35.
    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 35/42 Zabbix Webinar
  • 36.
    Retours d'expérience 2/8 ArchiPRA peut vous aider ! 36/42 Zabbix Webinar
  • 37.
    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 37/42 Zabbix Webinar
  • 38.
    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) 38/42 Zabbix Webinar
  • 39.
    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 39/42 Zabbix Webinar
  • 40.
    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 40/42 Zabbix Webinar
  • 41.
    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 41/42 Zabbix Webinar
  • 42.
    Retours d'expérience 8/8 •Top 10 des outils utilisés 1) Innotop 2) Mysqltuner 3) Tuning-primer.sh 4) iostat 5) tcpdump 42/42 Zabbix Webinar