This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

2 Pré-requis

Matériel

Mémoire

Zabbix nécessite à la fois de la mémoire physique et de la mémoire disque. 128 Mo de mémoire physique et 256 Mo d'espace disque libre pourraient être un bon point de départ. Cependant, la quantité de mémoire disque requise dépend évidemment du nombre d'hôtes et de paramètres surveillés. Si vous prévoyez de conserver un historique conséquent des paramètres surveillés, vous devriez penser à au moins quelques gigaoctets pour avoir assez d'espace pour stocker l'historique dans la base de données. Chaque processus démon Zabbix nécessite plusieurs connexions à un serveur de base de données. La quantité de mémoire allouée à la connexion dépend de la configuration du moteur de base de données.

Plus vous aurez de mémoire physique, plus la base de données (et donc Zabbix) fonctionnera rapidement !

CPU

Zabbix et en particulier la base de données Zabbix peuvent nécessiter des ressources CPU importantes en fonction du nombre de paramètres surveillés et du moteur de base de données choisi.

Autre materiel

Un port série et un modem GSM sont requis pour l'utilisation des notifications par SMS dans Zabbix. Un convertisseur USB vers série fonctionnera également.

Exemples de configuration matérielle

Le tableau fourni plusieurs exemples de configuration matérielle :

Nom Platforme CPU/Mémoire Base de données hôtes supervisés
Petit CentOS Appliance Virtuelle MySQL InnoDB 100
Moyen CentOS 2 cœurs CPU/2GB MySQL InnoDB 500
Grand RedHat Enterprise Linux 4 cœurs CPU/8GB RAID10 MySQL InnoDB ou PostgreSQL >1000
Très grand RedHat Enterprise Linux 8 cœurs CPU/16GB Fast RAID10 MySQL InnoDB ou PostgreSQL >10000

La configuration réelle dépend énormément du nombre d'éléments actifs et du taux de rafraîchissement. Il est fortement recommandé d'exécuter la base de données séparément pour les grands (et très grands) environnement.

Plateformes supportées

En raison des exigences de sécurité et de la nature critique du serveur de supervision, UNIX est le seul système d'exploitation capable de fournir systématiquement les performances, la tolérance aux pannes et la résilience nécessaires. Zabbix fonctionne sur les meilleures versions d'OS du marché.

Zabbix a été testé sur les plateformes suivantes :

  • Linux
  • IBM AIX
  • FreeBSD
  • NetBSD
  • OpenBSD
  • HP-UX
  • Mac OS X
  • Solaris
  • Windows : toutes les versions bureautiques et serveurs depuis XP (agent Zabbix uniquement)

Zabbix peut également fonctionner sur d'autres systèmes d'exploitation de type Unix.

Zabbix désactive les core dumps s'ils sont compilés avec chiffrement et ne démarre pas si le système n'autorise pas la désactivation des core dumps.

Logiciel

Zabbix est construit autour d'un serveur Web Apache moderne, de moteurs de base de données leaders et du langage PHP.

Système de gestion de base de données
Logiciel Version Commentaires
MySQL 5.0.3 - 8.0.x Obligatoire si MySQL est utilisé comme base de données principale. Le moteur InnoDB est requis.
MariaDB fonctionne également avec Zabbix.
Oracle 10g ou ultérieur Obligatoire si Oracle est utilisé comme base de données principale.
PostgreSQL 8.1 ou ultérieur Obligatoire si PostgreSQL est utilisé comme base de données principale.
Il est suggéré d'utiliser au minimum PostgreSQL 8.3, qui introduit de bien meilleures performances au niveau du VACCUM.
IBM DB2 9.7 ou ultérieur Obligatoire si IBM DB2 est utilisé comme base de données principale.
SQLite 3.3.5 ultérieur SQLite est uniquement pris en charge avec les proxys Zabbix. Obligatoire si SQLite est utilisé comme base de données du proxy Zabbix.

Le support de IBM DB2 est expérimental !

Interface Web

Les logiciels suivants sont nécessaires pour exécuter l'interface Web Zabbix :

Logiciel Version Commentaires
Apache 1.3.12 ou ultérieur
PHP 5.4.0 ou ultérieur
Extensions PHP :
gd 2.0 ou ultérieur L'extension PHP GD doit prendre en charge les images au format PNG. (--with-png-dir), JPEG (--with-jpeg-dir) et FreeType 2 (--with-freetype-dir).
bcmath php-bcmath (--enable-bcmath)
ctype php-ctype (--enable-ctype)
libXML 2.6.15 ou ultérieur php-xml or php5-dom, si fourni séparément par le distributeur.
xmlreader php-xmlreader, si fourni séparément par le distributeur.
xmlwriter php-xmlwriter, si fourni séparément par le distributeur.
session php-session, si fourni séparément par le distributeur.
sockets php-net-socket (--enable-sockets). Nécessaire pour la prise en charge des scripts utilisateurs.
mbstring php-mbstring (--enable-mbstring)
gettext php-gettext (--with-gettext). Nécessaire pour que les traductions fonctionnent.
ldap php-ldap. Nécessaire uniquement si l’authentification LDAP est utilisée sur l’interface utilisateur.
ibm_db2 Nécessaire si IBM DB2 est utilisée comme base de données principale.
mysqli Nécessaire si MySQL est utilisée comme base de données principale.
oci8 Nécessaire si Oracle est utilisée comme base de données principale.
pgsql Nécessaire si PostgreSQL est utilisée comme base de données principale.

Zabbix peut également fonctionner sur les versions précédentes d'Apache, MySQL, Oracle et PostgreSQL.

Pour les autres polices d’écriture que le DejaVu par défaut, la fonction PHP imagerotate peut être requise. Si elle est manquante, ces polices peuvent être affichées de façon incorrecte lorsqu'un graphique est affiché. Cette fonction n'est disponible que si PHP est compilé avec le GD fourni, ce qui n'est pas le cas dans Debian et d'autres distributions.

Les cookies et les scripts Java doivent être activés.

Les dernières versions de Google Chrome, Mozilla Firefox, Microsoft Internet Explorer et Opera sont prises en charge. D'autres navigateurs (Apple Safari, Konqueror) peuvent également fonctionner avec Zabbix.

La stratégie d'origine pour les IFrames est implémentée, ce qui signifie que Zabbix ne peut pas être placé dans des cadres sur un domaine différent.

Cependant, les pages placées dans un cadre Zabbix auront accès à l’interface utilisateur Zabbix (via JavaScript) si la page qui est placée dans le cadre et l’interface utilisateur Zabbix sont sur le même domaine. Une page comme http://secure-zabbix.com/cms/page.html, si elle est placée dans les écrans ou les tableaux de bord sur http://secure-zabbix.com/zabbix/, aura un accès JavaScript complet à Zabbix.

Serveur

Les pré-requis obligatoires sont toujours nécessaires. Des pré-requis facultatifs peuvent être nécessaires pour le support de certaines fonctions spécifiques.

Pré-requis Statut Description
libpcre Obligatoires La librairie PCRE est obligatoire pour la prise en charge des expressions régulières Perl (PCRE).
La dénomination peut différer selon la distribution GNU/Linux, par exemple 'libpcre3' ou 'libpcre1'. Notez que vous avez besoin exactement de PCRE (v8.x) ; La bibliothèque PCRE2 (v10.x) n'est pas utilisée.
libevent Nécessaire pour le support des métriques groupées et la surveillance IPMI. Version 1.4 ou supérieure.
Notez que pour le proxy Zabbix ce pré-requis est facultatif ; il est seulement nécessaire pour le support de la surveillance IPMI.
OpenIPMI Facultatifs Nécessaire pour la prise en charge IPMI.
libssh2 Nécessaire pour la prise en charge de SSH. Version 1.0 ou supplémentaire.
fping Nécessaire pour les éléments ping ICMP.
libcurl Requis pour la surveillance Web, la surveillance VMware, l'authentification SMTP, web.page.*, les éléments d'agent Zabbix, les éléments de l'agent HTTP. La version 7.20.0 ou supérieure est requise. Egalement requis si Elasticsearch est utilisé.
libiksemel Obligatoire pour la prise en charge de Jabber.
libxml2 Obligatoire pour la supervision VMware et le pré-traitement XML XPath.
net-snmp Obligatoire pour la prise en charge de SNMP.
zlib Obligatoire pour la prise en charge de la compression.
Passerelle Java

Si vous avez obtenu Zabbix à partir du dépôt ou d'une archive, les dépendances nécessaires sont déjà incluses dans l'arborescence source.

Si vous avez obtenu Zabbix à partir du package de votre distribution, les dépendances nécessaires sont déjà fournies par le système de package.

Dans les deux cas ci-dessus, le logiciel est prêt à être utilisé et aucun téléchargement supplémentaire n'est nécessaire.

Toutefois, si vous souhaitez fournir vos versions de ces dépendances (par exemple, si vous préparez un package pour une distribution Linux), vous trouverez ci-dessous la liste des versions des bibliothèques avec lesquelles la passerelle Java fonctionne. Zabbix peut aussi fonctionner avec d'autres versions de ces bibliothèques.

Le tableau suivant répertorie les fichiers JAR actuellement associés à la passerelle Java dans le code d'origine :

Bibliothèque Licence Site Web Commentaires
logback-core-0.9.27.jar EPL 1.0, LGPL 2.1 http://logback.qos.ch/ Testée avec 0.9.27, 1.0.13, et 1.1.1.
logback-classic-0.9.27.jar EPL 1.0, LGPL 2.1 http://logback.qos.ch/ Testée avec 0.9.27, 1.0.13, et 1.1.1.
slf4j-api-1.6.1.jar Licence MIT http://www.slf4j.org/ Testée avec 1.6.1, 1.6.6, et 1.7.6.
android-json-4.3_r3.1.jar Licence Apache 2.0 https://android.googlesource.com/platform/libcore/+/master/json Testée avec 2.3.3_r1.1 et 4.3_r3.1. Voir src/zabbix_java/lib/README pour les instructions pour créer un fichier JAR.

La passerelle Java se compile et s'exécute avec Java 1.6 et ultérieurs. Il est recommandé pour ceux qui fournissent une version pré-compilée de la passerelle pour d'autres usages d'utiliser la compilation sous Java 1.6 de sorte qu'elle soit compatible avec toute autre version de Java jusqu'à la dernière.

Taille de la base de données

Les données de configuration Zabbix nécessitent une quantité d'espace disque fixe et ne grossissent pas beaucoup.

La taille de la base de données Zabbix dépend principalement des variables suivantes, qui définissent la quantité de données historiques stockée :

  • Nombre de valeurs traitées par seconde

C'est le nombre moyen de nouvelles valeurs que le serveur Zabbix reçoit chaque seconde. Par exemple, si nous avons 3000 éléments à superviser avec un taux de rafraîchissement de 60 secondes, le nombre de valeurs par seconde est calculé comme 3000/60 = 50.

Cela signifie que 50 nouvelles valeurs sont ajoutées à la base de données Zabbix chaque seconde.

  • Paramètres de nettoyage pour l’historique

Zabbix conserve les valeurs pour une période déterminée, normalement plusieurs semaines ou mois. Chaque nouvelle valeur nécessite une certaine quantité d'espace disque pour les données et les index.

Donc, si nous voulons garder 30 jours d'historique et que nous recevons 50 valeurs par seconde, le nombre total de valeurs sera d'environ (30*24*3600) * 50 = 129.600.000, soit environ 130M de valeurs.

En fonction du moteur de base de données utilisé et du type de valeurs reçues (flottants, entiers, chaînes, fichiers journaux, etc.), l'espace disque pour conserver une seule valeur peut varier de 40 octets à des centaines d'octets. Normalement, il s'agit d'environ 90 octets par valeur pour les éléments numériques2. Dans notre cas, cela signifie que 130M de valeurs nécessiteront 130M * 90 octets = 10.9 Go d'espace disque.

La taille des valeurs des éléments texte/log est impossible à prévoir exactement, mais vous pouvez vous attendre à environ 500 octets par valeur.

  • Paramètres de nettoyage pour les tendances

Zabbix conserve un ensemble de valeurs de 1 heure max/min/moy/count pour chaque élément dans la table tendances. Les données sont utilisées pour les graphiques de tendance et de longue période. La période d'une heure ne peut pas être personnalisée.

La base de données Zabbix, en fonction du type de base de données, nécessite environ 90 octets pour chaque total. Supposons que nous aimerions conserver les données sur les tendances pendant 5 ans. Les valeurs pour 3000 éléments exigeront 3000 * 24 * 365 * 90 = 2.2 Go par an, ou 11 Go pour 5 années.

  • Paramètres de nettoyage pour les événements

Chaque événement Zabbix nécessite environ 250 octets d'espace disque1. Il est difficile d'estimer le nombre d'événements générés quotidiennement par Zabbix. Dans le pire des cas, nous pouvons supposer que Zabbix génère un événement par seconde.

Un enregistrement event_recovery est créé pour chaque événement récupéré. Normalement, la plupart des événements seront récupérés donc nous pouvons supposer qu'il existe un enregistrement event_recovery par événement. Cela signifie 80 octets supplémentaires par événement.

Les événements peuvent éventuellement comporter des tags, chaque enregistrement de tag nécessitant environ 100 octets d'espace disque<​sup>​1</​sup>​. Le nombre de tags par événement (#tags) dépend de la configuration. Donc chacun aura besoin de #tags * 100 octets supplémentaires d’espace disque.

Cela signifie que si nous voulons garder 3 ans d'événements, cela nécessitera 3*365*24*3600* *(250+80+#​tags*100) = = ~30GB+#​tags*100B d'espace disque<​sup>​2</​sup>.

1 Plus, si vous avez des noms d'événements, des balises et des valeurs non-ASCII.

2 Les approximations de taille sont basées sur MySQL et peuvent être différentes pour d’autres bases de données.

Le tableau suivant contient des formules qui peuvent être utilisées pour calculer l'espace disque requis pour le système Zabbix :

Paramètre Formule pour l'espace disque nécessaire (en octets)
Configuration Zabbix Taille fixe. Environ 10Mo ou moins.
Historique jours*(éléments/taux de rafraîchissement)*24*3600*octets
éléments : nombre d'éléments
jours : nombre de jours d'historique à garder
taux de rafraîchissement : moyenne de rafraîchissement des éléments
octets : nombre d'octets nécessaires pour garder une seule valeur, dépend du moteur de base de données, généralement ~90 octets.
Tendances jours*(éléments/3600)*24*3600*octets
éléments : nombre d'éléments
jours : nombre de jours à garder
octets : nombre d'octets nécessaires pour garder une seule tendance, dépend du moteur de base de données, généralement ~90 octets.
événements jours*événements*24*3600*octets
événements : nombre d'événements par seconde. Un (1) événement par seconde dans le pire scenario.
jours : nombre de jours à garder
octets : nombre d'octets nécessaire pour garder une seule tendance, dépend du moteur de base de données, généralement ~330 + nombre moyen de tags par événement * 100 octets.

Donc, l'espace disque total nécessaire peut être calculé de la manière suivante :
Configuration + Historique + Tendances + Événements
L'espace disque ne sera pas immédiatement utilisé après l'installation de Zabbix. La base de données va grossir et arrêtera de grossir à un certain moment, qui dépendra des paramètres de nettoyage.

Default port numbers

The following table lists default port numbers that Zabbix components listen on:

Zabbix component Port number Protocol Type of connection
Zabbix agent 10050 TCP on demand
Zabbix server 10051 TCP on demand
Zabbix proxy 10051 TCP on demand
Zabbix Java gateway 10052 TCP on demand

Synchronisation de l'heure

Il est très important d'avoir une date précise sur le serveur qui exécute Zabbix. ntpd est le démon le plus populaire qui synchronise l'heure de l'hôte avec l'heure des autres machines. Il est fortement recommandé de maintenir la date du système synchronisée sur tous les systèmes où des composants Zabbix s’exécutent.

Time synchronization

It is very important to have precise system time on server with Zabbix running. ntpd is the most popular daemon that synchronizes the host's time with the time of other machines. It's strongly recommended to maintain synchronized system time on all systems Zabbix components are running on.