Installation
(Page créée avec « == Prérequis == === Physique === La machine virtuelle ''myserver'' sur laquelle sera installé '''Zabbix''' est un serveur CentOs 7 dont les caractéristiques sont les su... ») |
|||
Ligne 1 : | Ligne 1 : | ||
+ | == Présentation == | ||
+ | Cette section a pour objet de présenter l'installation de l'outil Zabbix. | ||
+ | |||
== Prérequis == | == Prérequis == | ||
=== Physique === | === Physique === |
Version du 9 décembre 2019 à 15:11
Sommaire
Présentation
Cette section a pour objet de présenter l'installation de l'outil Zabbix.
Prérequis
Physique
La machine virtuelle myserver sur laquelle sera installé Zabbix est un serveur CentOs 7 dont les caractéristiques sont les suivantes :
- CPU
- 4 vCPU
- RAM
- 4 Go
Logiciel
- BDD
- MySQL 5.7.26
- WebServer
- Apache 2.4.39
- PHP
- 5.6.40
- 7.3.4
- Extension PHP
- apcu, bz2, calendar, Core, ctype, curl, date, dom, fileinfo, filter, gd, hash, iconv, intl, json, ldap, libxml, mbstring, mysqli, mysqlnd, oci8, openssl, pcre, PDO, pdo_mysql, PDO_OCI, PDO_ODBC, pdo_sqlite, Phar, posix, Reflection, session, SimpleXML, soap, SPL, sqlite3, standard, tokenizer, xml, xmlreader, xmlwriter, zip et zlib
Au regard des prérequis listés sur [la documentation officielle de Zabbix 4.2], sachant que le nombre de serveurs surveillés est inférieur à 500, il manque les prérequis suivants :
- Extension PHP
- gd
- l'extension n'a pas été compilée avec l'option --with-freetype-dir
- bcmath
- sockets
- gettext
- gd
Re-compiler PHP en ajustant les options selon les prérequis ci-dessus.
Une fois PHP recompilé, vérifier que les prérequis sont respectés. Par exemple, pour le support freetype :
php7 -i|grep -i configure
Exemple de retour concluant :
Configure Command => './configure' '--prefix=/local/php/php7' '--enable-fpm' '--with-fpm-user=php-fpm' '--with-fpm-group=php-fpm' '--with-fpm-systemd' '--with-openssl' '--with-kerberos' '--with-pcre-regex' '--with-zlib' '--with-bz2' '--enable-calendar' '--with-curl' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir' '--with-ldap=/usr/include' '--enable-mbstring' '--with-mysqli' '--with-mysql-sock=/local/mysql/current/mysql.sock' '--with-oci8=instantclient,/usr/lib/oracle/18.5/client64/lib' '--with-pdo-mysql' '--with-pdo-oci=instantclient,/usr/lib/oracle/18.5/client64/lib,18.5' '--enable-soap' '--enable-zip' '--enable-mysqlnd' '--enable-intl' '--with-pdo-odbc=unixODBC,/usr' '--enable-bcmath' '--enable-sockets' '--with-gettext'
Pour les extensions bcmath, sockets et gettext :
php7 -m|grep -E "bcmath|sockets|gettext"
Exemple de retour concluant :
bcmath gettext sockets
Système
Les paquets suivants sont nécessaires :
- Obligatoires
- libpcre
- libevent
- libevent-devel
- libpthread
- zlib
- zlib-devl
- Optionnels
- OpenIPMI
- OpenIPMI-devel
- libssh2
- libssh2-devel
- fping
- libcurl
- libcurl-devel
- libiksemel
- libxml2
- libxml2-devel
- net-snmp
- net-snmp-devel
Pour vérifier la présence des paquets obligatoires :
rpm -qa|grep -E "pcre|libevent|zlib" && ll /usr/lib64/libpthread.so
Exemple de retour :
pcre-8.32-17.el7.x86_64 zlib-devel-1.2.7-18.el7.x86_64 zlib-1.2.7-18.el7.x86_64 pcre-devel-8.32-17.el7.x86_64 libevent-2.0.21-4.el7.x86_64 -rw-r--r--. 1 root root 222 9 avril 18:39 /usr/lib64/libpthread.so
Pour vérifier la présence des paquets optionnels :
rpm -qa|grep -E "OpenIPMI|libssh2|fping|libcurl|libiksemel|libxml2|net-snmp"
Exemple de retour :
OpenIPMI-libs-2.0.23-2.el7.x86_64 libcurl-7.29.0-51.el7.x86_64 libcurl-devel-7.29.0-51.el7.x86_64 OpenIPMI-modalias-2.0.23-2.el7.x86_64 libssh2-1.4.3-12.el7_6.2.x86_64 libxml2-devel-2.9.1-6.el7_2.3.x86_64 net-snmp-libs-5.7.2-37.el7.x86_64 libxml2-2.9.1-6.el7_2.3.x86_64 fping-3.10-4.el7.x86_64 OpenIPMI-2.0.23-2.el7.x86_64 libxml2-python-2.9.1-6.el7_2.3.x86_64
Si des paquets sont manquants, les installer.
Le paquet libiksemel n'est pas nécessaire dans la mesure où il n'y a pas de messagerie instantanée à surveiller sur les serveurs qui seront supervisés par Zabbix.
Base de données
Le calcul de l'espace disque nécessaire à la base de données dépend directement du nombre d'éléments à superviser, entre autres. Pour avoir une idée approximative de l'espace disque nécessaire, s'aider de la documentation : http://www.zabbix.com/documentation/4.2/manual/installation/requirements#database_size.
En l'occurrence, le déploiement, à ce jour, de Zabbix, étant à l'état de POC, il ne sera pas donné d'espace disque supplémentaire aux 3 Go déjà disponible. Une surveillance particulière de l'évolution de la taille de la base de données devra donc avoir lieu, afin d'allouer, en cas de saturation, plus d'espace disque si nécessaire.
Déploiement
Téléchargement des sources
Se rendre sur la page officielle de téléchargement Zabbix, récupérer le lien de téléchargement et télécharger le paquet sur le serveur :
wget -O ~/downloads/zabbix-4.2.4.tar.gz https://netcologne.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.2.4/zabbix-4.2.4.tar.gz
Décompresser le fichier dans le dossier /local/builds
:
tar -xzf ~/downloads/zabbix-4.2.4.tar.gz -C /local/builds/
Se rendre dans le dossier des sources et commencer la configuration de la compilation :
cd /local/builds/zabbix-4.2.4
Création utilisateur et groupe
Pour créer l'utilisateur et le groupe zabbix, lancer les commandes suivantes :
groupadd --system zabbix useradd --system -g zabbix -d /home/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
Créer le répertoire home de l'utilisateur zabbix :
mkdir -m u=rwx,g=,o= -p /home/zabbix chown zabbix:zabbix /home/zabbix
Paramétrage base de données
Se connecter à la base de données MySQL avec l'utilisateur root :
mysql -uroot -p
Renseigner le mot de passe comme demandé :
Enter password:
Le prompt suivant s'affiche confirmant la bonne connexion à la BDD :
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1981 Server version: 5.7.26 MySQL Community Server (GPL) Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Créer la base de données Zabbix :
create database zabbix_db character set utf8 collate utf8_bin;
Exemple de retour sans erreur :
Query OK, 1 row affected (0,00 sec)
Créer l'utilisateur Zabbix, lui donner tous les droits sur la base zabbix_db et quitter :
grant all privileges on zabbix_db.* to zabbix_user@localhost identified by 'xxxxxxxxxxxxxxxx';
quit;
Se rendre dans le dossier database/mysql
:
cd database/mysql
Lancer l'importation des données Zabbix dans la base de données :
mysql -uzabbix_user -p zabbix_db < schema.sql
mysql -uzabbix_user -p zabbix_db < images.sql
mysql -uzabbix_user -p zabbix_db < data.sql
Configuration de la compilation
Retourner dans le dossier de compilation :
cd /local/builds/zabbix-4.2.4
Créer le dossier dans lequel sera installé Zabbix :
mkdir -p /local/zabbix/zabbix-4.2.4
Créer le lien symbolique current :
ln -s /local/zabbix/zabbix-4.2.4 /local/zabbix/current
Lancer la configuration avec les options suivantes :
./configure \ --prefix=/local/zabbix/current \ --enable-server \ --enable-agent \ --with-mysql \ --with-libxml2 \ --with-net-snmp \ --with-ssh2 \ --with-openipmi \ --with-zlib \ --with-libpthread \ --with-libevent \ --with-openssl \ --with-ldap \ --with-libcurl \ --with-iconv
Exemple de retour sans erreur :
*********************************************************** * Now run 'make install' * * * * Thank you for using Zabbix! * * <http://www.zabbix.com> * ***********************************************************
Compilation
Lancer la compilation et l'installation avec :
make install
Exemple de retour :
... make[2]: Rien à faire pour « install-exec-am ». make[2]: Rien à faire pour « install-data-am ». make[2] : on quitte le répertoire « /local/builds/zabbix-4.2.4 » make[1] : on quitte le répertoire « /local/builds/zabbix-4.2.4 »
Configuration
Fichiers de conf :
- /local/zabbix/current/etc/zabbix_agentd.conf
- /local/zabbix/current/etc/zabbix_server.conf
Fichier de service :
- /usr/lib/systemd/system/zabbix-agent.service
- /usr/lib/systemd/system/zabbix-server.service
Fichier PHP :
- /local/php/php7/etc/php-fpm.d/zabbix.conf
Fichier Apache :
- /local/www/current/conf/sites/01_vmexploit02.conf
Pare-feu :
- firewall-cmd --add-port=10051/tcp ==> à corriger pour être sur la boucle locale 127.0.0.1
systemctl daemon-reload chown -R zabbix:zabbix /local/zabbix cp -a /local/builds/zabbix-4.2.4/frontends/php/* /data/www/zabbix/current/ mkdir -p /data/www/zabbix/zabbix-4.2.4 ln -s /data/www/zabbix/zabbix-4.2.4 /data/www/zabbix/current chown -R www:www /data/www/zabbix/ mkdir /data/logs/zabbix chown -R www:www /data/logs/zabbix