This is a translation of the original English documentation page. Help us make it better.

Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

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.

Examples of hardware configuration

The table provides examples of hardware configuration, assuming a Linux/BSD/Unix platform.

These are size and hardware configuration examples to start with. Each Zabbix installation is unique. Make sure to benchmark the performance of your Zabbix system in a staging or development environment, so that you can fully understand your requirements before deploying the Zabbix installation to its production environment.

Installation size Monitored metrics1 CPU/vCPU cores Memory
(GiB)
Database Amazon EC22
Small 1 000 2 8 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.large/m6g.large
Medium 10 000 4 16 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.xlarge/m6g.xlarge
Large 100 000 16 64 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL,
Oracle
m6i.4xlarge/m6g.4xlarge
Very large 1 000 000 32 96 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL,
Oracle
m6i.8xlarge/m6g.8xlarge

1 1 metric = 1 item + 1 trigger + 1 graph
2 Example with Amazon general purpose EC2 instances, using ARM64 or x86_64 architecture, a proper instance type like Compute/Memory/Storage optimised should be selected during Zabbix installation evaluation and testing before installing in its production environment.

Actual configuration depends on the number of active items and refresh rates very much (see database size section of this page for details). It is highly recommended to run the database on a separate box for large installations.

Plates-formes supportées

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

Les composants Zabbix sont disponibles et testés pour les plateformes suivantes :

Plateforme Serveur Agent Agent2
Linux x x x
IBM AIX x x -
FreeBSD x x -
NetBSD x x -
OpenBSD x x -
HP-UX x x -
Mac OS X x x -
Solaris x x -
Windows - x x

Le serveur/agent Zabbix peut également fonctionner sur d'autres systèmes d'exploitation de type Unix. L'agent Zabbix est pris en charge sur toutes les versions de bureau et de serveur Windows depuis XP.

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

Logiciels requis

Zabbix est construit autour de serveurs Web modernes, de moteurs de base de données de pointe et du langage de script PHP.

Third-party external surrounding software

Mandatory requirements are needed always. Optional requirements are needed for the support of the specific function.

Software Mandatory status Supported versions Comments
MySQL/Percona One of 8.0.X Required if MySQL (or Percona) is used as Zabbix backend database. InnoDB engine is required. We recommend using the MariaDB Connector/C library for building server/proxy.
MariaDB 10.5.00-10.8.X InnoDB engine is required. We recommend using the MariaDB Connector/C library for building server/proxy.
Oracle 19c - 21c Required if Oracle is used as Zabbix backend database.
PostgreSQL 13.0-14.X Required if PostgreSQL is used as Zabbix backend database.
TimescaleDB for PostgreSQL 2.0.1-2.7 Required if TimescaleDB is used as a PostgreSQL database extension. Make sure to install TimescaleDB Community Edition, which supports compression.
SQLite Optional 3.3.5-3.34.X SQLite is only supported with Zabbix proxies. Required if SQLite is used as Zabbix proxy database.
smartmontools 7.1 or later Required for Zabbix agent 2.
who Required for the user count plugin.
dpkg Required for the system.sw.packages plugin.
pkgtool Required for the system.sw.packages plugin.
rpm Required for the system.sw.packages plugin.
pacman Required for the system.sw.packages plugin.

Although Zabbix can work with databases available in the operating systems, for the best experience, we recommend using databases installed from the official database developer repositories.

Interface Web

La largeur d'écran minimale prise en charge pour l'interface Zabbix est de 1200 pixels.

Logiciel Obligatoire Version
Apache Oui 1.3.12 ou version ultérieure
PHP 7.4.0 ou version ultérieure,
8.0, 8.1
Extensions PHP :
gd Oui 2.0.28 ou version ultérieure
bcmath
ctype
libXML 2.6.15 ou version ultérieure
xmlreader
xmlwriter
session
sockets
mbstring
gettext
ldap Non
*openss <l*
mysqli
oci8
pgsql

Librairies tierces fournies avec Zabbix :

Librairie Obligatoire Commentaires
jQuery JavaScript Library Oui Librairie JavaScript qui simplifie le processus de développement multi-navigateur.
Version 3.4.1 ou supérieure.
jQuery UI Un ensemble d'interactions, d'effets, de widgets et de thèmes d'interface utilisateur construits en jQuery.
Version 1.12.1 ou supérieure.
OneLogin's SAML PHP Toolkit Une boîte à outils PHP qui ajoute la prise en charge de l'authentification SAML 2.0 pour pouvoir se connecter à Zabbix.
Version 3.4.1 ou supérieure.
Symfony Yaml Component Ajoute la prise en charge de l'exportation et de l'importation des éléments de configuration Zabbix au format YAML.
Version 5.1.13 ou supérieure.

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

Pour d'autres polices que la DejaVu par défaut, la fonction PHP imagerotate peut être requise. Si elle est manquante, ces polices peuvent être rendues de manière incorrecte lors de l'affichage d'un graphique. Cette fonction n'est disponible que si PHP est compilé avec GD fourni, ce qui n'est pas le cas dans Debian et d'autres distributions.

Les cookies et JavaScript doivent être activés.

Les dernières versions stables de Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari et Opera sont prises en charge.

La politique de same-origin 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.

Néanmoins, les pages placées dans une frame Zabbix auront accès à l'interface Zabbix (via JavaScript) si la page placée dans le cadre et l'interface Zabbix se trouvent sur le même domaine. Une page comme http://secure-zabbix.com/cms/page.html, si elle est placée dans des tableaux de bord sur http://secure-zabbix.com/zabbix/, aura un accès JS complet à Zabbix.

Serveur

Les exigences obligatoires sont toujours nécessaires. Les exigences facultatives sont nécessaires à la prise en charge de la fonction spécifique.

Exigence Obligatoire Description
libpcre Oui La bibliothèque PCRE/PCRE2 est requise pour la prise en charge de Perl Compatible Regular Expression (PCRE).
La dénomination peut différer selon le GNU/Distribution Linux, par exemple 'libpcre3' ou 'libpcre1'. PCRE v8.x et PCRE2 v10.x (à partir de Zabbix 6.0.0) sont pris en charge.
libevent Requis pour la prise en charge des métriques en masse et la surveillance IPMI. Version 1.4 ou supérieure.
Notez que pour le proxy Zabbix, cette exigence est facultative ; il est nécessaire pour la prise en charge de la surveillance IPMI.
pthread Requis pour la prise en charge du mutex et du verrouillage en lecture-écriture.
zlib Requis pour la prise en charge de la compression.
resolv Requis pour la résolution DNS.
iconv Requis pour l'encodage de texte/la conversion de format. Obligatoire pour le serveur Zabbix sous Linux.
libmysqlclient Un des Obligatoire si MySQL est utilisé.
libmariadb Obligatoire si MariaDBest utilisé.
libclntsh Obligatoire si Oracle est utilisé. Version 10.0 ou supérieure.
libpq Obligatoire si PostgreSQL est utilisé. Version 9.2 ou supérieure.
libsqlite3 Obligatoire si SQLite est utilisé. Requis pour le proxy Zabbix uniquement.
openipmi Non Requis pour la prise en charge d'IPMI. Requis pour le serveur Zabbix uniquement.
libssh2 ou libssh Obligatoire pour les vérifications SSH. Version 1.0 ou supérieure (libssh2) ; 0.6.0 ou supérieur (libssh).
libssh est pris en charge depuis Zabbix 4.4.6.
fping Requis pour éléments de ping ICMP.
libcurl Requis pour la surveillance Web, la surveillance VMware, l'authentification SMTP, les éléments d'agent Zabbix web.page.*, les éléments de l'agent HTTP et Elasticsearch (le cas échéant). La version 7.28.0 ou supérieure est recommandée.
Configuration requise pour la version de Libcurl :
- Authentification SMTP : version 7.20.0 ou supérieure
- Elasticsearch : version 7.28.0 ou supérieure.
libxml2 Requis pour la surveillance VMware et le prétraitement XML XPath.
netsnmp Requis pour la prise en charge SNMP. Version 5.3.0 ou supérieure.
libunixodbc Requis pour la surveillance de la base de données. Requis pour le serveur Zabbix uniquement.
libgnutls ou libopenssl Requis lors de l'utilisation du cryptage.
Versions minimales : libgnutls - 3.1.18, libopenssl - 1.0.1
ldap Requis pour la prise en charge LDAP.
Agent
Pré-requis Obligation Description
libpcre/libpcre2 L'une des bibliothèques PCRE/PCRE2 est requise pour la prise en charge de Perl Compatible Regular Expression (PCRE).
La dénomination peut différer selon la distribution GNU/Linux , par exemple 'libpcre3' ou 'libpcre1'. PCRE v8.x et PCRE2 v10.x (à partir de Zabbix 6.0.0) sont pris en charge.
Requis pour la surveillance des journaux. Également requis sous Windows.
libpthread Oui Requis pour la prise en charge du mutex et du verrouillage en lecture-écriture (peut faire partie de la libc). Non requis sous Windows.
libresolv Requis pour la résolution DNS (peut faire partie de la libc). Non requis sous Windows.
libiconv Requis pour l'encodage de texte/la conversion de format en UTF-8 dans les éléments de journal, le contenu du fichier, l'expression régulière de fichier et les éléments de correspondance de règle (peut faire partie de la libc). Non requis sous Windows.
libgnutls or libopenssl Non Requis si vous utilisez l'encryptage.
Versions minimales : libgnutls - 3.1.18, libopenssl - 1.0.1
Sur Microsoft Windows, OpenSSL 1.1.1 ou version ultérieure est requis .
libldap Requis si LDAP est utilisé. Non pris en charge sous Windows.
libcurl Requis pour les éléments agent Zabbix web.page.*. Non pris en charge sur Windows.
La version 7.28.0 ou supérieure est recommandée.
libmodbus Nécessaire uniquement si la surveillance Modbus est utilisée.
Version 3.0 ou supérieure.

À partir de la version 5.0.3, l'agent Zabbix ne fonctionnera pas sur les plates-formes AIX inférieures aux versions 6.1 TL07 / AIX 7.1 TL01.

Agent 2
Exigence Statut Description
libpcre Obligatoire La bibliothèque PCRE est requise pour la prise en charge de Perl Compatible Regular Expression (PCRE).
La dénomination peut différer selon le GNU/ Distribution Linux, par exemple 'libpcre3' ou 'libpcre1'. PCRE v8.x et PCRE2 v10.x (à partir de Zabbix 6.0.0) sont pris en charge.
OpenSSL Facultatif Requis lors de l'utilisation du chiffrement.
OpenSSL 1.0.1 ou version ultérieure est requis sur les plates-formes UNIX.
La bibliothèque OpenSSL doit avoir le support PSK activé. LibreSSL n'est pas pris en charge.
Sur les systèmes Microsoft Windows, OpenSSL 1.1.1 ou version ultérieure est requis.
Passerelle Java

Si vous avez obtenu Zabbix à partir du référentiel source ou d'une archive, alors les dépendances nécessaires sont déjà incluses dans l'arborescence des sources.

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

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

Si toutefois vous souhaitez fournir vos versions de ces dépendances (par exemple, si vous préparez un paquet pour certaines distributions Linux), ci-dessous se trouve la liste des versions de librairie avec lesquelles la passerelle Java est réputée pouvoir fonctionner. Zabbix peut fonctionner avec d'autres versions de ces librairies aussi.

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

Librairie Obligatoire Commentaires
android-json Oui Version 4.3r1 ou supérieure.
JSON (JavaScript Object Notation) est un format d'échange de données léger. Il s'agit de l'implémentation Android compatible org.json extraite du SDK Android.
logback-classic Version 1.2.9 ou supérieure.
logback-core Version 1.2.9 ou supérieure.
slf4j-api Version 1.7.32 ou supérieure.

La passerelle Java peut être construite à l'aide d'Oracle Java ou de OpenJDK open-source (version 1.6 ou plus récente). Les packages fournis par Zabbix sont compilés en utilisant OpenJDK. Le tableau ci-dessous fournit des informations sur les versions OpenJDK utilisées pour créer des packages Zabbix par distribution :

Distribution Version OpenJDK
RHEL/CentOS 8 1.8.0
RHEL/CentOS 7 1.8.0
SLES 15 11.0.4
SLES 12 1.8.0
Debian 10 11.0.8
Ubuntu 20.04 11.0.8
Ubuntu 18.04 11.0.8

Default port numbers

The following list of open ports per component is applicable for default configuration:

Zabbix component Port number Protocol Type of connection
Zabbix agent 10050 TCP on demand
Zabbix agent 2 10050 TCP on demand
Zabbix server 10051 TCP on demand
Zabbix proxy 10051 TCP on demand
Zabbix Java gateway 10052 TCP on demand
Zabbix web service 10053 TCP on demand
Zabbix frontend 80 HTTP on demand
443 HTTPS on demand
Zabbix trapper 10051 TCP on demand

The port numbers should be open in firewall to enable Zabbix communications. Outgoing TCP connections usually do not require explicit firewall settings.

Taille de la base de données

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

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

  • Nombre de valeurs traitées par seconde

Il s'agit du nombre moyen de nouvelles valeurs que le serveur Zabbix reçoit chaque seconde. Par exemple, si nous avons 3000 éléments à surveiller avec une cadence de rafraîchissementde à 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 de l'historique

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

Donc, si nous souhaitons conserver 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 130 millions de valeurs.

Selon le moteur de base de données utilisé, le 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 c'est autour 90 octets par valeur pour les éléments numériques 2. Dans notre cas, cela signifie que 130 M de valeurs nécessiteront 130 M * 90 octets = 10,9 Go d'espace disque.

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

  • Paramètres de Nettoyage des tendances

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

La base de données Zabbix, selon le type de base de données, nécessite environ 90 octets pour chaque total. Supposons que nous souhaitions conserver les données de tendance pendant 5 ans. Les valeurs pour 3 000 éléments nécessiteront 3 000*24*365* 90 = 2,2 Go par an, ou 11 Go pendant 5 ans.

  • Paramètres de Nettoyage des évènements

Chaque événement Zabbix nécessite environ 250 octets d'espace disque 1. 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.

Pour chaque événement récupéré, un enregistrement event_recovery est créé. Normalement la plupart des événements seront récupérés afin que nous puissions en supposer un enregistrement event_recovery par événement. Cela signifie 80 octets supplémentaires par événement.

Eventuellement, les événements peuvent avoir des tags, chaque enregistrement de tag nécessitant environ 100 octets d'espace disque 1. Le nombre de tags par événement (#tags) dépend de la configuration. Donc, chaque évènement aura besoin de #tags * 100 octets supplémentaires d'espace disque.

Cela signifie que si l'on veut conserver 3 ans d'événements, cela nécessiterait un espace disque de 3*365*24*3600* (250+80+#tags*100) = ~30GB+#tags*100B2.

1 Plus avec des noms d'événements, des balises et des valeurs.

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

Le tableau 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 requis (en octets)| |---------|---------------------------------------------------- ---| |Configuration Zabbix|Taille fixe. Normalement 10 Mo ou moins.| |Historique|jours*(éléments/taux de rafraîchissement)*24*3600*octets
éléments : nombre d'éléments
jours : nombre de jours pour conserver l'historique
taux de rafraîchissement : rafraîchissement moyen taux d'éléments
octets : nombre d'octets requis pour conserver une valeur unique, dépend du moteur de base de données, normalement ~90 octets.| |Tendances|jours*(éléments/3600)*24*3600*octets
éléments: nombre d'éléments
jours : nombre de jours pour conserver l'historique
octets : nombre d'octets requis pour conserver une seule tendance, dépend du moteur de base de données, normalement ~90 octets.| |Events|days*events*24*3600*bytes
events : nombre d'événements par seconde. Un (1) événement par seconde dans le pire des cas.
jours : nombre de jours pour conserver l'historique
octets : nombre d'octets requis pour conserver une seule tendance, dépend du moteur de base de données, normalement ~330 + moyenne nombre de balises par événement * 100 octets.|

Ainsi, l'espace disque total requis peut être calculé comme suit :
Configuration + Historique + Tendances + Événements
L'espace disque ne sera PAS utilisé immédiatement après l'installation de Zabbix. La taille de la base de données augmentera puis cessera de croître à un moment donné, ce qui dépend des paramètres de Nettoyage.

Synchronisation de l'heure

Il est très important d'avoir une heure système précise sur le serveur Zabbix en cours d'exécution. 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 une heure système synchronisée sur tous les composants systèmes Zabbix en cours d'exécution.