3 Installation à partir des sources
Vous pouvez obtenir la toute dernière version de Zabbix en la compilant à partir des sources.
Un tutoriel étape par étape pour installer Zabbix à partir des sources est fourni ici.
Installation des démons Zabbix
1 Télécharger l'archive source
Accédez à la page de téléchargement de Zabbix et téléchargez l'archive source. Une fois téléchargée, extrayez les sources en exécutant :
tar -zxvf zabbix-7.4.0.tar.gz
Saisissez la version correcte de Zabbix dans la commande. Elle doit correspondre au nom de l'archive téléchargée.
2 Créer un compte utilisateur
Tous les processus démon Zabbix s'exécutent sous des utilisateurs système non privilégiés.
Si un démon Zabbix est démarré à partir d'un compte utilisateur non privilégié, il continuera à s'exécuter sous cet utilisateur.
Dans la configuration par défaut, si un démon est démarré en tant que root, il basculera vers le compte utilisateur zabbix, qui doit être présent.
Pour créer un utilisateur et un groupe système zabbix, exécutez les commandes ci-dessous.
Système basé sur RedHat :
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
Système basé sur Debian :
addgroup --system --quiet zabbix
adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix
Il n'est pas nécessaire de créer un compte utilisateur séparé pour l'interface Zabbix.
Recommandation de sécurité
Si le serveur Zabbix et l'agent s'exécutent sur la même machine, il est recommandé de les faire fonctionner sous des comptes utilisateur distincts. Les exécuter tous deux sous le même utilisateur permet à l'agent d'accéder au fichier de configuration du serveur, ce qui pourrait exposer des informations sensibles, telles que le mot de passe de la base de données, à tout utilisateur disposant des droits Admin dans Zabbix.
Exécuter Zabbix en tant que root, bin ou tout autre compte disposant de droits spéciaux présente un risque de sécurité.
Répertoire personnel (facultatif)
Les processus Zabbix n'ont pas besoin d'un répertoire personnel, donc en créer un n'est généralement pas recommandé. Cependant, si vous avez besoin d'une fonctionnalité qui requiert un répertoire personnel (par exemple, le stockage des identifiants MySQL dans $HOME/.my.cnf), vous pouvez le créer à l'aide des commandes ci-dessous.
Sur les systèmes basés sur RedHat, exécutez :
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix
Sur les systèmes basés sur Debian, exécutez :
mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
chown zabbix:zabbix /var/lib/zabbix
3 Créer la base de données Zabbix
Pour les démons serveur et proxy, tout comme pour l'interface Web, une base de données est nécessaire. Cela n’est pas nécessaire pour l'agent Zabbix.
Des scripts SQL sont fournis pour créer le schéma de base de données et insérer l'ensemble de données. La base de données du proxy Zabbix n'a besoin que du schéma tandis que la base de données du serveur Zabbix requiert également l'ensemble de données au-dessus du schéma.
Après avoir créé la base de données Zabbix, passez aux étapes suivantes de la compilation de Zabbix.
4 Configurer les sources
C99 avec les extensions GNU est requis pour compiler le serveur Zabbix, le proxy Zabbix ou l'agent Zabbix. Cette version peut être spécifiée explicitement en définissant CFLAGS="-std=gnu99" :
export CFLAGS="-std=gnu99"
Si vous installez depuis le dépôt Git Zabbix, il est nécessaire d'exécuter d'abord :
./bootstrap.sh
Lors de la configuration des sources pour un serveur Zabbix ou un proxy, vous devez spécifier le type de base de données à utiliser. Un seul type de base de données peut être compilé à la fois avec un processus serveur ou proxy.
Pour voir toutes les options de configuration prises en charge, dans le répertoire source Zabbix extrait, exécutez :
./configure --help
Pour configurer les sources pour un serveur Zabbix et un agent, vous pouvez exécuter par exemple :
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-ares
Pour configurer les sources pour un serveur Zabbix (avec PostgreSQL, etc.), vous pouvez exécuter :
./configure --enable-server --with-postgresql --with-net-snmp
Pour configurer les sources pour un proxy Zabbix (avec SQLite, etc.), vous pouvez exécuter :
./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2
Pour configurer les sources pour un agent Zabbix, vous pouvez exécuter :
./configure --enable-agent
ou, pour Zabbix agent 2 :
./configure --enable-agent2
Une version Go prise en charge doit être installée pour compiler Zabbix agent 2.
Remarques sur les options de compilation :
--enable-agent- compile l'agent Zabbix, ainsi que les utilitaires en ligne de commande Zabbix get et Zabbix sender.--with-libcurl- requis pour la surveillance des machines virtuelles, l'authentification SMTP et les éléments d'agent Zabbixweb.page.*. Voir aussi : Exigences (libcurl).--with-libxml2- requis pour la surveillance des machines virtuelles.--with-libpcre2[=DIR]- Zabbix compile toujours avec la bibliothèque PCRE2 ; cette option permet uniquement de spécifier un chemin d'installation PCRE2 personnalisé.--with-mysql=/path/to/mysql_config- spécifie le chemin vers une configuration particulière de la bibliothèque cliente MySQL. Utile lorsque plusieurs versions de MySQL ou MariaDB sont installées.--enable-static- lie les bibliothèques de manière statique (non pris en charge sur Solaris). Utilisez cette option si vous prévoyez de distribuer des binaires compilés à des systèmes ne disposant pas des bibliothèques requises. Déconseillé lors de la compilation du serveur Zabbix. Pour compiler le serveur de manière statique, une version statique de chaque bibliothèque externe est requise. Le script configure ne vérifie pas cela automatiquement.--with-stacksize=<value>- définit la taille de la pile par thread en kilo-octets (par exemple,--with-stacksize=512). Vous pouvez augmenter cette valeur si Zabbix plante ou se fige en raison de débordements de pile (par exemple, lors du prétraitement sur des systèmes dont les limites par défaut de pile de thread sont faibles).
Si ./configure échoue en raison de bibliothèques manquantes ou d'autres problèmes, veuillez consulter le fichier config.log pour obtenir des informations détaillées sur l'erreur.
Par exemple, si libssl est manquante, le message d'erreur immédiat peut être trompeur :
checking for main in -lmysqlclient... no
configure: error: Not found mysqlclient library
Dans ce cas, config.log révèle la cause réelle :
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
Voir aussi :
5 Construire et installer l'ensemble
Si l'installation se fait depuis le dépôt Git Zabbix, il est nécessaire d'exécuter d'abord :
$ make dbschema
make install
Cette étape doit être exécutée par un utilisateur disposant de permissions suffisantes (généralement
root, ou en utilisant sudo).
L'exécution de make install installera par défaut les binaires du démon
(zabbix_server, zabbix_agentd, zabbix_proxy) dans /usr/local/sbin et
les binaires client (zabbix_get, zabbix_sender) dans /usr/local/bin.
Pour spécifier un emplacement différent de /usr/local, utilisez une
clé --prefix à l'étape précédente de configuration des sources, par exemple
--prefix=/home/zabbix. Dans ce cas, les binaires du démon seront installés
sous <prefix>/sbin, tandis que les utilitaires seront installés sous <prefix>/bin. Les pages de manuel
seront installées sous <prefix>/share.
6 Examiner et modifier les fichiers de configuration
- éditez le fichier de configuration de l'agent Zabbix /usr/local/etc/zabbix_agentd.conf
Vous devez configurer ce fichier pour chaque hôte où zabbix_agentd est installé.
Vous devez spécifier l'adresse IP du serveur Zabbix dans le fichier. Les connexions des autres hôtes seront refusées.
- éditez le fichier de configuration du serveur Zabbix /usr/local/etc/zabbix_server.conf
Vous devez spécifier le nom de la base de données, l'utilisateur et le mot de passe (si vous en utilisez un).
Le reste des paramètres devrait vous convenir avec leurs valeurs par défaut si vous avez une petite installation (jusqu'à dix hôtes surveillés). Vous devrez cependant modifier les paramètres par défaut si vous souhaitez optimiser les performances du serveur Zabbix (ou du proxy).
- Si vous avez installé un proxy Zabbix, éditez le fichier de configuration du proxy /usr/local/etc/zabbix_proxy.conf
Vous devez spécifier l'adresse IP du serveur et le nom d'hôte du proxy (qui doit être connu du serveur), ainsi que le nom de la base de données, l'utilisateur et le mot de passe (si vous en utilisez un).
Avec SQLite, le chemin complet du fichier de la base de données doit être spécifié ; l'utilisateur de la base de données et le mot de passe ne sont pas obligatoires.
7 Démarrer les démons
Exécutez zabbix_server côté serveur.
zabbix_server
Assurez-vous que votre système autorise l'allocation de 36 Mo (ou un peu plus) de mémoire partagée, sinon le serveur risque de ne pas démarrer et vous verrez "Cannot allocate shared memory for <type of cache>." dans le fichier journal du serveur. Cela peut se produire sur FreeBSD, Solaris 8.
Exécutez zabbix_agentd sur toutes les machines surveillées.
zabbix_agentd
Assurez-vous que votre système autorise l'allocation de 2 Mo de mémoire partagée, sinon l'agent risque de ne pas démarrer et vous verrez "Cannot allocate shared memory for collector." dans le fichier journal de l'agent. Cela peut se produire sur Solaris 8.
Si vous avez installé Zabbix proxy, exécutez zabbix_proxy.
zabbix_proxy
Installation de l'interface web Zabbix
Copie des fichiers PHP
L'interface Zabbix est écrite en PHP, donc pour l'exécuter, un serveur web prenant en charge PHP est nécessaire. L'installation se fait simplement en copiant les fichiers PHP du répertoire ui vers le répertoire des documents HTML du serveur web.
Les emplacements courants des répertoires de documents HTML pour les serveurs web Apache incluent :
- /usr/local/apache2/htdocs (répertoire par défaut lors de l'installation d'Apache à partir des sources)
- /srv/www/htdocs (OpenSUSE, SLES)
- /var/www/html (Debian, Ubuntu, Fedora, RHEL)
Il est recommandé d'utiliser un sous-répertoire plutôt que la racine HTML. Pour créer un sous-répertoire et y copier les fichiers de l'interface Zabbix, exécutez les commandes suivantes, en remplaçant <htdocs> par le répertoire réel :
mkdir <htdocs>/zabbix
cd ui
cp -a . <htdocs>/zabbix
Si vous prévoyez d'utiliser une autre langue que l'anglais, consultez Installation de langues supplémentaires de l'interface pour obtenir les instructions.
Installation de l'interface
Veuillez consulter la page Installation de l'interface Web pour obtenir des informations sur l'assistant d'installation de l'interface Zabbix.
Installation des plugins chargeables de Zabbix agent 2
L'installation des plugins chargeables de Zabbix agent 2 n'est nécessaire que si vous souhaitez surveiller des cibles non couvertes par les plugins intégrés (par exemple, des serveurs ou des clusters MongoDB, PostgreSQL et ses dérivés, etc.). Consultez la liste complète des plugins chargeables et des plugins intégrés.
Avant d'installer un plugin, veuillez consulter son fichier README. Il peut contenir des exigences spécifiques et des instructions d'installation.
Pour installer à partir des sources, commencez par télécharger et extraire l'archive source du plugin chargeable.
Pour compiler le plugin, accédez au répertoire du plugin extrait et exécutez make :
make
Une version prise en charge de Go doit être installée pour compiler les plugins chargeables de Zabbix agent 2.
L'exécutable du plugin peut être placé n'importe où, à condition qu'il puisse être chargé par Zabbix agent 2. Indiquez le chemin vers le binaire du plugin dans le fichier de configuration du plugin, par exemple dans postgresql.conf pour le plugin PostgreSQL :
Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql
Le chemin vers le fichier de configuration du plugin doit être spécifié dans le paramètre Include du fichier de configuration de Zabbix agent 2 :
Include=/path/to/plugin/configuration/file/postgresql.conf
Passez à la section configuration pour plus de détails sur la configuration des plugins.
Les plugins chargeables fournis par Zabbix utilisent des makefiles simples avec les cibles de compilation suivantes :
make- compiler le pluginmake clean- supprimer tous les fichiers créés lors de la compilation du pluginmake check- exécuter les auto-tests (nécessite une vraie cible de surveillance, par exemple une base de données PostgreSQL)make style- vérifier le style du code Go avecgolangci-lintmake format- formater le code Go avecgo fmtmake dist- créer une archive source incluant toutes les dépendances
Installation de Java gateway
Il est nécessaire d'installer Java gateway uniquement si vous souhaitez surveiller des applications JMX. Java gateway est léger et ne nécessite pas de base de données.
Pour installer à partir des sources, commencez par télécharger et extraire l'archive des sources.
Pour compiler Java gateway, exécutez le script ./configure avec l'option
--enable-java. Il est recommandé de spécifier l'option --prefix
pour demander un chemin d'installation autre que le chemin par défaut /usr/local,
car l'installation de Java gateway créera toute une arborescence de répertoires,
et pas seulement un exécutable unique.
./configure --enable-java --prefix=$PREFIX
Pour compiler et empaqueter Java gateway dans un fichier JAR, exécutez make. Notez
que pour cette étape, vous aurez besoin des exécutables javac et jar
dans votre chemin.
make
Vous disposez maintenant d'un fichier zabbix-java-gateway-$VERSION.jar dans
src/zabbix_java/bin. Si vous êtes à l'aise avec l'exécution de Java gateway
depuis src/zabbix_java dans le répertoire de distribution, vous pouvez
alors passer aux instructions de configuration et d'exécution de Java
gateway.
Sinon, assurez-vous d'avoir les privilèges suffisants et exécutez make install.
make install
Consultez la configuration pour plus de détails sur la configuration et l'exécution de Java gateway.
Installation du service web Zabbix
L'installation du service web Zabbix n'est nécessaire que si vous souhaitez utiliser les rapports planifiés.
Pour installer à partir des sources, commencez par télécharger et extraire l'archive source.
Pour compiler le service web Zabbix, exécutez le script ./configure avec
l'option --enable-webservice.
Une version prise en charge de Go doit être installée pour compiler le service web Zabbix.
Exécutez zabbix_web_service sur la machine où le service web est installé :
zabbix_web_service
Consultez la section configuration pour plus de détails sur la configuration de la génération des rapports planifiés.