Zabbix

De Wiki de Jordan LE NUFF
Sauter à la navigation Sauter à la recherche
(Page créée avec « == Présentation == Cette section a pour objet de regrouper les sujets liés à l'utilisation de l'outil Zabbix. == Installation == === Prérequis === ==== Physique ====... »)
 
(Contenu remplacé par « == Présentation == Cette section a pour objet de regrouper les sujets liés à l'utilisation de l'outil Zabbix au sein de l'équipe d'exploitation. == Liste des page... »)
Balise : Contenu remplacé
 
Ligne 1 : Ligne 1 :
 
== Présentation ==
 
== Présentation ==
−
Cette section a pour objet de regrouper les sujets liés à l'utilisation de l'outil Zabbix.
+
Cette section a pour objet de regrouper les sujets liés à l'utilisation de l'outil Zabbix au sein de l'équipe d'exploitation.
  
−
== Installation ==
+
== Liste des pages ==
−
=== Prérequis ===
+
{{#subpages:default=''}}
−
==== 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 [[http://www.zabbix.com/documentation/4.2/manual/installation/requirements 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
 
−
 
 
−
[[Technique/PHP/Compilation|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
 
−
 
 
−
<u>Exemple de retour concluant :</u>
 
−
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' <b>'--with-freetype-dir'</b> '--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"
 
−
 
 
−
<u>Exemple de retour concluant :</u>
 
−
<pre>
 
−
bcmath
 
−
gettext
 
−
sockets
 
−
</pre>
 
−
 
 
−
==== 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
 
−
 
 
−
<u>Exemple de retour :</u>
 
−
<pre>
 
−
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
 
−
</pre>
 
−
 
 
−
Pour vérifier la présence des paquets optionnels :
 
−
rpm -qa|grep -E "OpenIPMI|libssh2|fping|libcurl|libiksemel|libxml2|net-snmp"
 
−
 
 
−
<u>Exemple de retour :</u>
 
−
<pre>
 
−
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
 
−
</pre>
 
−
 
 
−
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 <code>/local/builds</code> :
 
−
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 :
 
−
<pre>
 
−
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>
 
−
</pre>
 
−
 
 
−
Créer la base de données ''Zabbix'' :
 
−
<syntaxhighlight lang="SQL">
 
−
create database zabbix_db character set utf8 collate utf8_bin;
 
−
</syntaxhighlight>
 
−
 
 
−
<u>Exemple de retour sans erreur :</u>
 
−
<syntaxhighlight lang="SQL">
 
−
Query OK, 1 row affected (0,00 sec)
 
−
</syntaxhighlight>
 
−
 
 
−
Créer l'utilisateur ''Zabbix'', lui donner tous les droits sur la base ''zabbix_db'' et quitter :
 
−
<syntaxhighlight lang="SQL">
 
−
grant all privileges on zabbix_db.* to zabbix_user@localhost identified by 'xxxxxxxxxxxxxxxx';
 
−
quit;
 
−
</syntaxhighlight>
 
−
 
 
−
Se rendre dans le dossier <code>database/mysql</code> :
 
−
cd database/mysql
 
−
 
 
−
Lancer l'importation des données ''Zabbix'' dans la base de données :
 
−
<syntaxhighlight lang="bash">
 
−
mysql -uzabbix_user -p zabbix_db < schema.sql
 
−
mysql -uzabbix_user -p zabbix_db < images.sql
 
−
mysql -uzabbix_user -p zabbix_db < data.sql
 
−
</syntaxhighlight>
 
−
 
 
−
==== 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 :
 
−
<pre>
 
−
./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
 
−
</pre>
 
−
 
 
−
<u>Exemple de retour sans erreur :</u>
 
−
<pre>
 
−
***********************************************************
 
−
*            Now run 'make install'                       *
 
−
*                                                        *
 
−
*            Thank you for using Zabbix!                  *
 
−
*              <http://www.zabbix.com>                    *
 
−
***********************************************************
 
−
</pre>
 
−
 
 
−
==== Compilation ====
 
−
Lancer la compilation et l'installation avec :
 
−
make install
 
−
 
 
−
<u>Exemple de retour :</u>
 
−
<pre>
 
−
...
 
−
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 »
 
−
</pre>
 
−
 
 
−
==== 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
 
−
 
 
−
<pre>
 
−
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
 
−
</pre>
 

Version actuelle datée du 9 décembre 2019 à 15:17

Présentation

Cette section a pour objet de regrouper les sujets liés à l'utilisation de l'outil Zabbix au sein de l'équipe d'exploitation.

Liste des pages