RousselTMLEARNING

Observabilité

Zabbix en production : proxies, performance, haute disponibilité et Prometheus

Faire grandir Zabbix : proxies, dimensionnement des processus, base de données et TimescaleDB, housekeeping, haute disponibilité native du serveur, auto-supervision et cohabitation avec Prometheus.

1. Les proxies #

Distribuer la collecte.

Rôle #

Architecture avec proxies par site
Si le lien vers le serveur tombe, le proxy conserve les données et les renvoie ensuite.

Un proxy collecte pour un site ou un réseau et transmet au serveur. Il stocke les données localement si le lien est coupé. Il décharge le serveur et simplifie les flux réseau (un seul flux proxy → serveur).

# zabbix_proxy.conf
ProxyMode=0                     # 0 = actif (le proxy se connecte au serveur)
Server=zabbix.example.org
Hostname=proxy-lyon
ProxyBufferMode=hybrid          # mémoire puis disque
ProxyMemoryBufferSize=64M
À savoir : Depuis la version 7.0, les groupes de proxies répartissent automatiquement les hôtes entre plusieurs proxies et les redistribuent si l'un tombe.

2. Performance et données #

Les vrais goulots.

Réglages #

SujetRecommandation
Processus de collecteSurveiller le taux d'occupation des pollers (éléments internes) et ajuster StartPollers, StartAgentPollers, StartHTTPAgentPollers
CachesCacheSize, HistoryCacheSize, ValueCacheSize : à augmenter si l'occupation dépasse 75 %
Base de donnéesPostgreSQL + TimescaleDB : partitionnement et compression de l'historique
Historique et tendancesHistorique court (7 à 14 jours), tendances (moyennes horaires) longues (1 à 2 ans)
Intervalles1 min pour l'essentiel, 5 à 15 min pour ce qui varie peu
Bonne Pratique : Le modèle « Zabbix server health » affiche l'occupation des processus et caches : c'est le premier dashboard à ouvrir quand Zabbix ralentit.

3. Haute disponibilité et Prometheus #

Robustesse et cohabitation.

Cluster natif #

# zabbix_server.conf sur chaque nœud
HANodeName=zbx-node-1
NodeAddress=10.0.0.21:10051
zabbix_server -R ha_status     # état du cluster (un nœud actif, les autres en veille)

Les nœuds partagent la base de données (qui doit elle-même être hautement disponible). L'interface web et les agents doivent connaître tous les nœuds (Server= et ServerActive= avec plusieurs adresses).

Cluster HA natif de Zabbix
Le nœud en attente reprend la collecte si l'actif ne met plus à jour son état en base.

Zabbix et Prometheus #

Zabbix sait lire les pages /metrics des exporters Prometheus (élément HTTP agent + prétraitement « Prometheus pattern » ou découverte « Prometheus to JSON ») ; inversement, un exporter communautaire expose des données Zabbix à Prometheus. Les deux peuvent cohabiter : Zabbix pour l'infrastructure classique et le réseau, Prometheus pour les plateformes cloud-native.

Articles liés

Créer des tableaux de bord dans Zabbix : dashboards, widgets et pages

Construire des dashboards Zabbix utiles : pages, widgets (Graph, Problems, Top hosts, Honeycomb, Gauge...), w…

Tableaux de bord Grafana avec la source de données Zabbix

Afficher Zabbix dans Grafana : installer le plugin, créer un utilisateur et un jeton d'API, configurer et pro…

Zabbix : architecture et concepts de la supervision

Comprendre Zabbix : serveur, base de données, interface web, agents et proxies, et les concepts clés (hôtes, …

Pour aller plus loin