Prérequis
Matériel
Mémoire
Zabbix nécessite à la fois de la mémoire physique et de l’espace disque. La quantité d’espace disque nécessaire dépend évidemment du nombre d’hôtes et de paramètres surveillés. Si vous prévoyez de conserver un long historique des paramètres surveillés, vous devriez envisager au moins quelques gigaoctets afin de disposer de suffisamment 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 disposez de mémoire physique, plus la base de données (et donc Zabbix) fonctionne rapidement.
CPU
Zabbix, et en particulier la base de données Zabbix, peuvent nécessiter d’importantes ressources CPU en fonction du nombre de paramètres surveillés et du moteur de base de données choisi.
Autre matériel
Un port de communication série et un modem GSM série sont nécessaires pour utiliser la prise en charge des notifications par SMS dans Zabbix. Un convertisseur USB-série fonctionnera également.
Exemples de configuration matérielle
Le tableau fournit des exemples de configuration matérielle, en supposant une plateforme Linux/BSD/Unix.
Il s'agit d'exemples de dimensionnement et de configuration matérielle pour démarrer. Chaque installation Zabbix est unique. Veillez à évaluer les performances de votre système Zabbix dans un environnement de préproduction ou de développement, afin de bien comprendre vos besoins avant de déployer l'installation Zabbix dans son environnement de production.
| Taille de l'installation | Métriques surveillées1 | Cœurs CPU/vCPU | Mémoire (GiB) |
Base de données | Amazon EC22 |
|---|---|---|---|---|---|
| Petite | 1 000 | 2 | 8 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.large/m6g.large |
| Moyenne | 10 000 | 4 | 16 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.xlarge/m6g.xlarge |
| Grande | 100 000 | 16 | 64 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.4xlarge/m6g.4xlarge |
| Très grande | 1 000 000 | 32 | 96 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.8xlarge/m6g.8xlarge |
1 1 métrique = 1 élément + 1 déclencheur + 1 graphique
2 Exemple avec des instances Amazon EC2 à usage général, utilisant une architecture ARM64 ou x86_64 ; un type d'instance approprié, comme Compute/Memory/Storage optimised, doit être sélectionné lors de l'évaluation et des tests de l'installation Zabbix avant son déploiement dans l'environnement de production.
La configuration réelle dépend fortement du nombre d'éléments actifs et des intervalles d'actualisation (voir la section database size de cette page pour plus de détails). Il est fortement recommandé d'exécuter la base de données sur un serveur distinct pour les grandes installations.
Plateformes prises en charge
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 de manière constante les performances, la tolérance aux pannes et la résilience nécessaires. Zabbix fonctionne sur les versions leaders du marché.
Les composants Zabbix sont disponibles et testés pour les plateformes suivantes :
| Plateforme | Serveur | Agent | Agent 2 | Commentaires |
|---|---|---|---|---|
| Linux | x | x | x | |
| Windows | - | x | x | L'agent Zabbix est pris en charge sur toutes les versions de bureau et serveur depuis Windows XP (64 bits)/Server 2003. Zabbix agent 2 est pris en charge sur toutes les versions de bureau et serveur depuis Windows 10 (32 bits)/Server 2016, car il est compilé uniquement avec une version de Go prise en charge afin d'éviter des vulnérabilités de sécurité critiques. Depuis Go 1.21, les versions minimales requises de Windows ont été relevées, ce qui fait de Windows 10/Server 2016 la version minimale pour Zabbix agent 2. |
| macOS | x | x | - | |
| IBM AIX | x | x | - | L'agent Zabbix ne fonctionne pas sur les plateformes AIX antérieures aux versions 6.1 TL07 / 7.1 TL01. |
| FreeBSD | x | x | - | |
| OpenBSD | x | x | - | |
| Solaris | x | x | - | |
| NetBSD | x | x | - | |
| HP-UX | x | x | - |
Le serveur/l'agent Zabbix peut fonctionner sur d'autres systèmes d'exploitation de type Unix.
Zabbix désactive les core dumps s'il est compilé avec le chiffrement et ne démarre pas si le système n'autorise pas la désactivation des core dumps.
Logiciels requis
Zabbix repose sur des serveurs web modernes, des moteurs de base de données de premier plan et le langage de script PHP.
Logiciels externes tiers environnants
S'il est indiqué comme obligatoire, le logiciel/la bibliothèque requis(e) est strictement nécessaire. Les éléments optionnels sont nécessaires pour prendre en charge certaines fonctions spécifiques.
| Logiciel | Statut obligatoire | Versions prises en charge | Commentaires |
|---|---|---|---|
| MySQL/Percona | L'un de | 8.4.0-9.5.X | Requis si MySQL (ou Percona) est utilisé comme base de données backend de Zabbix. Le moteur InnoDB est requis. Nous recommandons d'utiliser la bibliothèque C API (libmysqlclient) pour compiler le serveur/le proxy. |
| MariaDB | 10.11.00-12.0.X | Le moteur InnoDB est requis. La version recommandée est 11.4. Nous recommandons d'utiliser la bibliothèque MariaDB Connector/C pour compiler le serveur/le proxy. Voir aussi : Interblocages possibles avec MariaDB et Accès aux éléments de l'interface avec MariaDB 10.5.1–10.5.9. |
|
| PostgreSQL | 15.0-18.X | Requis si PostgreSQL est utilisé comme base de données backend de Zabbix. Selon la taille de l'installation, il peut être nécessaire d'augmenter la propriété de configuration PostgreSQL work_mem (4MB étant la valeur par défaut), afin que la quantité de mémoire utilisée par la base de données pour une opération particulière soit suffisante et que l'exécution des requêtes ne prenne pas trop de temps. |
|
| TimescaleDB pour PostgreSQL | 2.20.X-2.25.X | Requis si TimescaleDB est utilisé comme extension de base de données PostgreSQL. Assurez-vous d'installer TimescaleDB Community Edition, qui prend en charge la compression. Notez que PostgreSQL 15 est pris en charge à partir de TimescaleDB 2.10. Vous pouvez également consulter la documentation TimescaleDB pour plus de détails concernant la compatibilité des versions de PostgreSQL et de TimescaleDB. |
|
| SQLite | Optionnel | 3.3.5-3.34.X | SQLite est uniquement pris en charge avec les proxys Zabbix. Requis si SQLite est utilisé comme base de données de proxy Zabbix. |
| Elasticsearch | 7.X | Elasticsearch est uniquement pris en charge avec les serveurs Zabbix, exclusivement pour le stockage des données d'historique. La prise en charge d'Elasticsearch est actuellement expérimentale. Voir aussi les logiciels requis pour server/proxy. | |
| smartmontools | 7.1 ou version ultérieure | Requis pour l'agent Zabbix 2. | |
| who | Requis pour le plugin de comptage des utilisateurs. | ||
| dpkg | Requis pour le plugin system.sw.packages. | ||
| pkgtool | Requis pour le plugin system.sw.packages. | ||
| rpm | Requis pour le plugin system.sw.packages. | ||
| pacman | Requis pour le plugin system.sw.packages. | ||
| q applets | qlist et qsize, faisant partie de q applets, sont requis pour le plugin system.sw.packages sur Gentoo Linux. |
Bien que Zabbix puisse fonctionner avec les bases de données disponibles dans les systèmes d'exploitation, pour une expérience optimale, nous recommandons d'utiliser des bases de données installées à partir des dépôts officiels des développeurs de bases de données.
Interface web
La largeur minimale d’écran prise en charge pour l’interface web Zabbix est de 1200px.
Si un composant est indiqué comme obligatoire, le logiciel/la bibliothèque requis(e) est strictement nécessaire. Les composants optionnels sont nécessaires pour prendre en charge certaines fonctions spécifiques.
| Logiciel | Statut obligatoire | Versions prises en charge | Commentaires |
|---|---|---|---|
| PHP | Oui | 8.2.0 - 8.4.X | |
| Apache | L’un de | 2.4 ou ultérieure | |
| Nginx | 1.20 ou ultérieure | ||
| MySQL | L’un de | Voir Logiciels externes tiers de l’environnement | |
| PostgreSQL | |||
| Extensions PHP | |||
| mysqli | Oui | Requis si MySQL est utilisé comme base de données backend de Zabbix. | |
| pgsql | Requis si PostgreSQL est utilisé comme base de données backend de Zabbix. | ||
| bcmath | php-bcmath (--enable-bcmath) | ||
| mbstring | php-mbstring (--enable-mbstring) | ||
| sockets | php-net-socket (--enable-sockets) ; requis pour la prise en charge des scripts utilisateur. | ||
| gd | 2.0.28 ou ultérieure | php-gd (si fourni en tant que paquet séparé par le distributeur) ; l’extension PHP GD doit prendre en charge les images PNG (--with-png-dir), les images JPEG (--with-jpeg-dir) et FreeType 2 (--with-freetype-dir). La version 2.3.0 ou ultérieure peut être requise pour éviter un possible chevauchement du texte dans les graphiques pour certaines langues de l’interface web. | |
| libxml | 2.6.15 ou ultérieure | php-xml (si fourni en tant que paquet séparé par le distributeur) | |
| xmlwriter | php-xmlwriter (si fourni en tant que paquet séparé par le distributeur) | ||
| xmlreader | php-xmlreader (si fourni en tant que paquet séparé par le distributeur) | ||
| ctype | php-ctype (--enable-ctype) | ||
| session | php-session (si fourni en tant que paquet séparé par le distributeur) | ||
| ldap | Non | php-ldap ; requis pour l’authentification LDAP. | |
| openssl | php-openssl ; requis pour l’authentification SAML. | ||
| gettext | php-gettext (--with-gettext) ; requis pour les traductions. | ||
| cURL | 7.19.4 ou ultérieure | php-curl ; requis pour l’AMF Duo Universal Prompt et l’authentification SMTP. | |
Bibliothèques frontend tierces fournies avec Zabbix :
| Bibliothèque | Statut obligatoire | Version minimale | Commentaires |
|---|---|---|---|
| jQuery JavaScript Library | Oui | 3.6.0 | Bibliothèque JavaScript qui simplifie le processus de développement multiplateforme entre navigateurs. |
| jQuery UI | 1.12.1 | Ensemble d’interactions d’interface utilisateur, d’effets, de widgets et de thèmes construit au-dessus de jQuery. | |
| SAML PHP Toolkit | 4.0.0 | Boîte à outils PHP qui ajoute la prise en charge de l’authentification SAML 2.0 afin de permettre la connexion à Zabbix. | |
| Symfony Yaml Component | 5.1.0 | Ajoute la prise en charge de l’exportation et de l’importation des éléments de configuration Zabbix au format YAML. |
Zabbix peut également fonctionner avec des versions antérieures d’Apache, MySQL et PostgreSQL.
Pour des polices autres que la police DejaVu par défaut, la fonction PHP imagerotate peut être requise. Si elle est absente, ces polices peuvent être affichées incorrectement lors de l’affichage d’un graphique. Cette fonction n’est disponible que si PHP est compilé avec GD intégré, ce qui n’est pas le cas dans Debian et d’autres distributions.
Bibliothèques tierces utilisées pour l’écriture et le débogage du code de l’interface web Zabbix :
| Bibliothèque | Statut obligatoire | Version minimale | Description |
|---|---|---|---|
| Composer | Non | 2.4.1 | Gestionnaire de paquets au niveau applicatif pour PHP qui fournit un format standard pour gérer les dépendances des logiciels PHP et des bibliothèques requises. |
| PHPUnit | 8.5.29 | Framework de tests unitaires PHP pour tester l’interface web Zabbix. | |
| SASS | 3.4.22 | Langage de script de préprocesseur interprété et compilé en feuilles de style en cascade (CSS). |
Navigateur web côté client
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 même origine pour les IFrames est appliqué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 un cadre Zabbix auront accès à l’interface web de Zabbix (via JavaScript) si la page placée dans le cadre et l’interface web de Zabbix se trouvent sur le même domaine.
Une page telle que 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/proxy
Si un élément est indiqué comme obligatoire, le logiciel/la bibliothèque requis est strictement nécessaire. Les éléments optionnels sont nécessaires pour prendre en charge certaines fonctions spécifiques.
| Exigence | Statut obligatoire | Description |
|---|---|---|
| libpcre2 | Oui | La bibliothèque PCRE2 est requise pour la prise en charge des expressions régulières compatibles Perl (PCRE). PCRE2 v10.x est pris en charge. |
| libevent | Requis pour la communication inter-processus. Version 2.0.10 ou supérieure. | |
| libevent-pthreads | Requis pour la communication inter-processus. | |
| libpthread | Requis pour la prise en charge des mutex et des verrous lecture-écriture (peut faire partie de libc). | |
| libresolv | Requis pour la résolution DNS (peut faire partie de libc). | |
| libiconv | Requis pour l’encodage/la conversion du format du texte (peut faire partie de libc). Obligatoire pour le serveur Zabbix sous Linux. | |
| libz | Requis pour la prise en charge de la compression. | |
| libm | Bibliothèque mathématique. Requise uniquement par le serveur Zabbix. | |
| libmysqlclient | L’un de | Requis si MySQL est utilisé. |
| libmariadb | Requis si MariaDB est utilisé. | |
| libpq5 | Requis si PostgreSQL est utilisé ; la version de libpq5 doit correspondre à celle de la base de données PostgreSQL utilisée ou lui être supérieure. | |
| libsqlite3 | Requis si SQLite est utilisé. Requis uniquement pour le proxy Zabbix. | |
| libOpenIPMI | Non | Requis pour la prise en charge d’IPMI. Requis uniquement par le serveur Zabbix. |
| libssh2 or libssh | Requis pour les vérifications SSH. Version 1.8.0 ou supérieure (libssh2) ; 0.9.0 ou supérieure (libssh). | |
| libcurl | Requis pour les fonctionnalités suivantes : - les éléments de surveillance Web, de surveillance VMware et agent HTTP (pour tous : version 7.19.1 ou supérieure) ; - les éléments web.page.* de l’agent Zabbix (version 7.19.1 ou supérieure ; voir aussi les exigences de l’agent) ; - l’authentification SMTP (Basic : version 7.20.0 ou supérieure ; OAuth : version 7.33 ou supérieure ; voir aussi les exigences du frontend) ; - Elasticsearch (version 7.28.0 ou supérieure). La version 7.28.0 ou supérieure est recommandée pour toutes les fonctionnalités. Pour utiliser les fonctionnalités cURL mises à niveau pour les éléments web.page.*, redémarrez le serveur/proxy Zabbix.Pour l’authentification SMTP, utilisez le paquet libcurl-full à l’exécution. |
|
| libxml2 | Requis pour la surveillance VMware et le prétraitement XML XPath. | |
| net-snmp | Requis pour la prise en charge de SNMP. Version 5.3.0 ou supérieure. La prise en charge des protocoles de chiffrement forts (AES192/AES192C, AES256/AES256C) est disponible à partir de la bibliothèque net-snmp 5.8 ; sur les systèmes basés sur RHEL 8+, il est recommandé d’utiliser net-snmp 5.8.15 ou une version ultérieure. |
|
| libunixodbc | Requis pour la surveillance de base de données. | |
| libgnutls or libopenssl | Requis lors de l’utilisation du chiffrement. Versions minimales : libgnutls - 3.1.18, libopenssl - 1.0.1 |
|
| libldap | Requis pour la prise en charge de LDAP. | |
| fping | Requis pour les éléments ping ICMP. | |
| c-ares | Requis pour la résolution DNS asynchrone si Zabbix est configuré avec l’option --with-ares. Sinon, libevent sera utilisé.Version minimale : 1.16.0. La mise en cache des requêtes DNS (cache de requêtes activé par défaut) nécessite c-ares 1.26.0 ou une version ultérieure. |
Agent
| Exigence | Statut obligatoire | Description |
|---|---|---|
| libpcre2 | Oui | La bibliothèque PCRE2 est requise pour la prise en charge des expressions régulières compatibles Perl (PCRE). PCRE2 v10.x est pris en charge. Requise pour la surveillance des journaux. Également requise sous Windows. |
| libpthread | Requise pour la prise en charge des mutex et des verrous lecture-écriture (peut faire partie de libc). Non requise sous Windows. | |
| libresolv | Requise pour la résolution DNS (peut faire partie de libc). Non requise sous Windows. | |
| libiconv | Requise pour l’encodage/la conversion du format du texte en UTF-8 dans les éléments de journal, le contenu de fichier, les éléments de regex de fichier et regmatch (peut faire partie de libc). Non requise sous Windows. | |
| libgnutls ou libopenssl | Non | Requise si le chiffrement est utilisé. Versions minimales : libgnutls - 3.1.18, libopenssl - 1.0.1 Sous Microsoft Windows, OpenSSL 1.1.1 ou une version ultérieure est requis. |
| libldap | Requise si LDAP est utilisé. Non prise en charge sous Windows. | |
| libcurl | Requise pour la prise en charge étendue des éléments web.page.* de l’agent Zabbix. Sans libcurl, les fonctionnalités de base sont disponibles (par exemple, web.page.get[http://example.com]). Avec libcurl, l’agent prend en charge des fonctionnalités supplémentaires, telles que les URL HTTP avec identifiants (par exemple, http://user:[email protected]) et les URL HTTPS. La version 7.19.1 ou supérieure est requise (la version 7.28.0 ou supérieure est recommandée). Pour utiliser les fonctionnalités cURL mises à niveau, redémarrez l’agent Zabbix. |
|
| libmodbus | Requise uniquement si la surveillance Modbus est utilisée. Version 3.0 ou supérieure. |
Agent 2
| Exigence | Statut obligatoire | Description |
|---|---|---|
| Go | Oui | Requis pour compiler l'agent Zabbix 2 et ses plugins à partir des sources. Go 1.24.10 ou version ultérieure est pris en charge. Voir go.dev pour les instructions d'installation. Les bibliothèques Go utilisées par l'agent Zabbix 2 et ses plugins sont répertoriées dans le dépôt Git de Zabbix (les bibliothèques marquées comme indirect dans le dépôt sont des dépendances d'autres bibliothèques requises) :- Agent Zabbix 2 - Prise en charge des plugins - PostgreSQL - MongoDB - MSSQL - Ember+ - GPU NVIDIA - Plugin d'exemple |
| libpcre2 | Oui | La bibliothèque PCRE2 est requise pour la prise en charge des expressions régulières compatibles Perl (PCRE). PCRE2 v10.x est pris en charge. Requis pour la surveillance des journaux. Également requis sous Windows. |
| libopenssl | Non | Requis lors de l'utilisation du chiffrement. OpenSSL 1.0.1 ou version ultérieure est requis sur les plateformes UNIX. La bibliothèque OpenSSL doit avoir la prise en charge de PSK activée. LibreSSL n'est pas pris en charge. Sur les systèmes Microsoft Windows, OpenSSL 1.1.1 ou version ultérieure est requis. |
Service web
La dernière version stable de Google Chrome est prise en charge pour générer des rapports planifiés à l’aide du service web Zabbix.
La version de Go requise pour compiler le service web correspond à celle utilisée pour Zabbix agent 2.
Java gateway
Si vous avez obtenu Zabbix à partir du dépôt des sources ou d’une archive, les dépendances nécessaires sont déjà incluses dans l’arborescence des sources.
Si vous avez obtenu Zabbix à partir du paquet de votre distribution, les dépendances nécessaires sont déjà fournies par le système de paquets.
Dans les deux cas ci-dessus, le logiciel est prêt à être utilisé et aucun téléchargement supplémentaire n’est nécessaire.
Si, toutefois, vous souhaitez fournir vos propres versions de ces dépendances (par exemple, si vous préparez un paquet pour une distribution Linux), vous trouverez ci-dessous la liste des versions de bibliothèques avec lesquelles Java gateway est connu pour fonctionner. Zabbix peut également fonctionner avec d’autres versions de ces bibliothèques.
Le tableau suivant répertorie les fichiers JAR actuellement fournis avec Java gateway dans le code source d’origine :
| Library | Mandatory status | Minimum version | Comments |
|---|---|---|---|
| android-json | Oui | 4.3r1 | JSON (JavaScript Object Notation) est un format léger d’échange de données. Il s’agit de l’implémentation Android compatible org.json extraite du SDK Android. |
| logback-classic | 1.5.16 | ||
| logback-core | 1.5.16 | ||
| slf4j-api | 2.0.16 |
Java gateway peut être compilé à l’aide d’Oracle Java ou de l’OpenJDK open source (version 1.6 ou ultérieure). Les paquets fournis par Zabbix sont compilés avec OpenJDK. Le tableau suivant répertorie les paquets OpenJDK utilisés pour compiler les paquets Zabbix selon la distribution :
| Distribution | OpenJDK package |
|---|---|
| AlmaLinux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
| AlmaLinux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.332.b09-2; arm64: 1.8.0.382.b05-2) |
| Amazon Linux 2023 | java-22-amazon-corretto-devel (amd64, arm64: 22.0.2+9-1) |
| CentOS Stream 9 | java-11-openjdk-devel (amd64, arm64: 11.0.18.0.10-3) |
| CentOS Stream 8 | java-1.8.0-openjdk-devel (amd64, arm64: 1.8.0.362.b08-3) |
| CentOS 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
| Debian 12 | default-jdk-headless (amd64, arm64: 2:1.17-74) |
| Debian 11 | default-jdk-headless (amd64: 2:1.11-72) |
| OpenSUSE Leap 15 | java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1) |
| Oracle Linux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4.0.1; arm64: 11.0.20.0.8-2.0.1) |
| Oracle Linux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4.0.1); java-11-openjdk-devel (arm64: 11.0.20.0.8-3.0.1) |
| Oracle Linux 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
| Raspberry Pi OS 12 | default-jdk-headless (arm64, armhf: 2:1.17-74) |
| Raspberry Pi OS 11 | default-jdk-headless (arm64: 2:1.11-72; armhf: 2:1.11-72+b4) |
| RHEL 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
| RHEL 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2) |
| RHEL 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
| Rocky Linux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
| Rocky Linux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2) |
| SLES 15 | java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1) |
| Ubuntu 24.04 | default-jdk-headless (amd64, arm64: 2:1.21-75+exp1) |
| Ubuntu 22.04 | default-jdk-headless (amd64, arm64: 2:1.11-72build2) |
| Ubuntu 20.04 | default-jdk-headless (amd64, arm64: 2:1.11-72) |
Numéros de port par défaut
La liste suivante des ports ouverts par composant s'applique à la configuration par défaut :
| Composant Zabbix | Numéro de port | Protocole | Type de connexion |
|---|---|---|---|
| Agent Zabbix | 10050 | TCP | à la demande |
| Agent Zabbix 2 | 10050 | TCP | à la demande |
| Serveur Zabbix | 10051 | TCP | à la demande |
| Proxy Zabbix | 10051 | TCP | à la demande |
| Zabbix Java gateway | 10052 | TCP | à la demande |
| Service web Zabbix | 10053 | TCP | à la demande |
| Frontend Zabbix | 80 | HTTP | à la demande |
| 443 | HTTPS | à la demande | |
| Trappeur Zabbix | 10051 | TCP | à la demande |
Les numéros de port doivent être ouverts dans le pare-feu pour permettre les communications Zabbix. Les connexions TCP sortantes ne nécessitent généralement pas de règles explicites dans le pare-feu.
Taille de la base de données
Les données de configuration de Zabbix nécessitent une quantité fixe d’espace disque et n’augmentent 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é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 surveillés avec un intervalle d’actualisation de 60 secondes, le nombre de valeurs par seconde est calculé comme suit : 3000/60 = 50.
Cela signifie que 50 nouvelles valeurs sont ajoutées à la base de données Zabbix chaque seconde.
- Paramètres du housekeeper pour l’historique
Zabbix conserve les valeurs pendant une période fixe, généralement plusieurs semaines ou plusieurs mois. Chaque nouvelle valeur nécessite une certaine quantité d’espace disque pour les données et l’index.
Ainsi, 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 130M de valeurs.
Selon le moteur de base de données utilisé et le type de valeurs reçues (nombres à virgule flottante, entiers, chaînes, fichiers journaux, etc.), l’espace disque nécessaire pour conserver une seule valeur peut varier de 40 octets à plusieurs centaines d’octets. En général, il est 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.9GB d’espace disque.
La taille des valeurs des éléments texte/log est impossible à prévoir exactement, mais vous pouvez compter sur environ 500 octets par valeur.
- Paramètre du housekeeper pour les tendances
Zabbix conserve, pour chaque élément, un ensemble de valeurs max/min/moyenne/nombre sur 1 heure dans la table trends. Ces données sont utilisées pour les tendances et les graphiques sur 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 3000 éléments nécessiteront 3000*24*365* 90 = 2.2GB par an, soit 11GB pour 5 ans.
- Paramètres du housekeeper 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.
Pour chaque événement résolu, un enregistrement event_recovery est créé. Normalement, la plupart des événements seront résolus, nous pouvons donc supposer un enregistrement event_recovery par événement. Cela signifie 80 octets supplémentaires par événement.
Les événements peuvent éventuellement avoir des tags, chaque enregistrement de tag nécessitant environ 100 octets d’espace disque1. Le nombre de tags par événement (#tags) dépend de la configuration. Chacun nécessitera donc un espace disque supplémentaire de #tags * 100 octets.
Cela signifie que si nous voulons conserver 3 ans d’événements, cela nécessitera 3*365*24*3600* (250+80+#tags*100) = \~30GB+#tags*100B d’espace disque2.
1 Davantage en présence de noms d’événements, de tags et de valeurs non ASCII.
2 Les estimations de taille sont basées sur MySQL et peuvent être différentes pour d’autres bases de données.
Le tableau contient des formules pouvant être utilisées pour calculer l’espace disque requis pour le système Zabbix :
| Paramètre | Formule de l’espace disque requis (en octets) |
|---|---|
| Configuration Zabbix | Taille fixe. Normalement 10MB ou moins. |
| Historique | days*(items/refresh rate)*24*3600*bytes items : nombre d’éléments days : nombre de jours de conservation de l’historique refresh rate : intervalle d’actualisation moyen des éléments bytes : nombre d’octets nécessaires pour conserver une seule valeur, dépend du moteur de base de données, normalement \~90 octets. |
| Tendances | days*(items/3600)*24*3600*bytes items : nombre d’éléments days : nombre de jours de conservation de l’historique bytes : nombre d’octets nécessaires pour conserver une seule tendance, dépend du moteur de base de données, normalement \~90 octets. |
| Événements | days*events*24*3600*bytes events : nombre d’événements par seconde. Un (1) événement par seconde dans le pire des cas. days : nombre de jours de conservation de l’historique bytes : nombre d’octets nécessaires pour conserver un seul événement, dépend du moteur de base de données, normalement \~330 + nombre moyen de tags 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 d’augmenter à un certain moment, selon les paramètres du housekeeper.
Synchronisation de l'heure
Il est très important d'avoir une heure système précise sur le serveur exécutant Zabbix. ntpd est le démon le plus populaire pour synchroniser l'heure de l'hôte avec celle d'autres machines. Il est fortement recommandé de maintenir une heure système synchronisée sur tous les systèmes sur lesquels les composants Zabbix sont exécutés.
Exigences réseau
La liste suivante des ports ouverts par composant s’applique à la configuration par défaut.
| Composants | Port |
|---|---|
| Frontend | http sur 80, https sur 443 |
| Serveur | 10051 (à utiliser avec le proxy/les agents actifs) |
| Proxy actif | 10051 |
| Proxy passif | 10051 |
| Agent2 | 10050 |
| Trapper | |
| Java gateway | 10052 |
| Service Web | 10053 |
Les numéros de port doivent être ouverts dans le pare-feu afin de permettre les communications externes avec Zabbix. Les connexions TCP sortantes ne nécessitent généralement pas de paramètres explicites dans le pare-feu.