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 !
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.
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.
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.
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 :
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.
Zabbix est construit autour d'un serveur Web Apache moderne, de moteurs de base de données leaders et du langage PHP.
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 !
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.
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. |
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.
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 :
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.
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.
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.
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.
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 |
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.
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.