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