4 Installation depuis Les Sources
4.1 Prérequis logiciels
L'installation de Zabbix serveur ou agent depuis les sources requiert des logiciels additionnels.
Les logiciels suivant sont requis pour compiler Zabbix:
Un des moteurs de base de données suivant:
-
En-têtes et librairies MySQL
Version 3.22 ou supérieure requise.
-
En-têtes et librairies Oracle
Les en-têtes et librairies Sqlora8 sont requis.
-
En-têtes et librairies PostgreSQL
Version 7.0.2 ou supérieure requise. Pensez à utiliser PostgreSQL 8.x pour de meilleures performances.
-
En-têtes et librairies SQLite
Version 3.3.5 ou supérieure requise.
Librairies et fichiers d'entête NET-SNMP (ou UCD-SNMP)
Requis pour le support du SNMP. Optionnel.
Librairies et fichiers d'entête Iksemel
Requis pour activer la messagerie Jabber. Optionnel.
Librairies et fichiers d'entête Libcurl
Version 7.13.1 ou supérieur requis pour le module de supervision WEB. Optionnel.
Compilateur C
Un compilateur C est requis. Le compilateur GNU C est le meilleur choix pour les plateformes libres. Les autres compilateurs C (HP, IBM) peuvent tout aussi bien être utilisés.
GNU Make
GNU make est nécessaire pour traiter les fichier Makefiles de ZABBIX.
4.2 Structure de la distribution ZABBIX
-
docs
Contient ce manuel au format PDF
-
src
Contient les sources pour tous les processus ZABBIX excepté les fichier concernants l'interface.
-
src/zabbix_server
Contient les Makefiles et les sources pour zabbix_server.
-
src/zabbix_agent
Contient les Makefiles et les sources pour zabbix_agent et zabbix_agentd.
-
src/zabbix_get
Contient les Makefiles et les sources pour zabbix_get.
-
src/zabbix_sender
Contient les Makefiles et les sources pour zabbix_sender.
-
include
Contient les fichiers include de ZABBIX.
-
misc
-
misc/init.d
-
Contient les scripts de démarrage pour les différentes plateformes.
-
frontends
-
frontends/php
-
Contient les fichiers de l'interface PHP.
-
create
Contient les scripts SQL pour la création de la base de données.
-
create/schema
Contient les Schémas de création de la base de données
-
create/data
Contient les données pour la création de la base de données.
-
upgrades
Contient les procédures de mise à niveau pour les différentes versions de ZABBIX.
4.3 ZABBIX Server
Côté serveur
Etape 1
Créer le compte du super-utilisateur ZABBIX
Ceci est l'utilisateur qui sera utilisé par le serveur ZABBIX. Pour une utilisation en production, vous devez créer un compte dédié non privilégié ( 'zabbix' est couramment utilisé). Exécuter ZABBIX en tant que 'root', 'bin', ou tout autre compte avec des droits spéciaux est un risque de sécurité. Ne faites pas ça!
Etape 2
Extraction des sources ZABBIX
shell> gunzip zabbix-1.6.tar.gz && tar -xvf zabbix-1.6.tar
Etape 3
Créer la base de données ZABBIX
ZABBIX est livré avec des scripts SQL utilisés pour créer le schéma de la base de données requis et pour mettre en place une configuration par défaut. Il y a des scripts séparés pour MySQL, Oracle, Post-greSQL et SQLite.
Pour MySQL:
shell> mysql -u<username> -p<password> mysql> create database zabbix character set utf8; mysql> quit; shell> cd create/schema shell> cat mysql.sql | mysql -u<username> -p<password> zabbix shell> cd ../data shell> cat data.sql | mysql -u<username> -p<password> zabbix shell> cat images_mysql.sql | mysql -u<username> -p<password> zabbix
Pour Oracle (On admet que l'utilisateur zabbix avec pour mot de passe password existe déjà et possède les permissions pour créer des objets dans la base de données):
shell> cd create shell> sqlplus zabbix/password sqlplus> set def off sqlplus> @schema/oracle.sql sqlplus> @data/data.sql sqlplus> @data/images_oracle.sql sqlplus> exit
Pour PostgreSQL:
shell> psql -U <username> psql> create database zabbix; psql> \q shell> cd create/schema shell> cat postgresql.sql | psql -U <username> zabbix shell> cd ../data shell> cat data.sql | psql -U <username> zabbix shell> cat images_pgsql.sql | psql -U <username> zabbix
Pour SQLite:
shell> cd create/schema shell> cat sqlite.sql | sqlite3 /var/lib/sqlite/zabbix.db shell> cd ../data shell> cat data.sql | sqlite3 /var/lib/sqlite/zabbix.db shell> cat images_sqlite3.sql | sqlite3 /var/lib/sqlite/zabbix.db
Etape 4
Configurer et compiler le code source pour votre système
Les sources doivent être compilées à la fois pour le serveur (machine de supervision) et pour les clients (machines supervisées). Pour configurer la source du serveur, vous devez spécifier la base de données qui sera utilisée.
shell> ./configure --enable-server --with-mysql --with-net-snmp --with-jabber --with-libcurl # Pour MySQL + Jabber + WEB monitoring
ou
shell> ./configure --enable-server --with-pgsql --with-net-snmp --with-jabber --with-libcurl # Pour Post-greSQL + Jabber + WEB monitoring
ou
shell> ./configure --enable-server --with-oracle=/home/zabbix/sqlora8 --with-net-snmp --with-jabber --with-libcurl # Pour Oracle + Jabber + WEB monitoring
Cependant, si vous voulez compiler les binaires clients avec les binaires serveurs, utilisez:
shell> ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber --with-libcurl
L'option –enable-static peut être utilisée pour forcer la liaison statique.
Etape 5
Pour tout recompiler (avec make) et installer
shell> make install
Par défaut,
make install
installera tous les fichier dans /usr/local/bin, /usr/local/lib etc. Vous pouvez spécifier un autre préfixe d'ins-tallation autre que /usr/local en utilisant –prefix
Etape 6
Configurer /etc/services
Cette étape n'est pas réellement nécessaire. Cependant, elle est recommandée. Sur les machines clientes (supervisées), ajouter les lignes suivantes au fichier /etc/services:
zabbix-agent 10050/tcp Zabbix Agent zabbix-agent 10050/udp Zabbix Agent zabbix-trapper 10051/tcp Zabbix Trapper zabbix-trapper 10051/udp Zabbix Trapper
Etape 7
Configurer /etc/inetd.conf
Si vous prévoyez d'utiliser zabbix_agent à la place de zabbix_agentd qui est l'agent recommandé, la ligne suivante doit être ajoutée:
zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent
Redémarrer inetd
shell> killall -HUP inetd
Modifier les paramètres par défaut des fichiers de configuration
Etape 8
Configurer /etc/zabbix/zabbix_agent.conf
Il est nécessaire de configurer ce fichier pour chaque hôte qui possède zabbix_agent d'installé. Le fichier peut contenir l'adresse IP du serveur ZABBIX. Les connexions depuis un autre hôte seront refusées. Vous pouvez utiliser le fichier misc/conf/zabbix_agent.conf comme exemple.
Etape 9
Configurer /etc/zabbix/zabbix_agentd.conf
Il est nécessaire de configurer ce fichier pour chaque hôte qui possède zabbix_agentd d'installé. Le fichier peut contenir l'adresse IP du serveur ZABBIX. Les connexions depuis un autre hôte seront refusées. Vous pouvez utiliser le fichier misc/conf/zabbix_agentd.conf comme exemple.
Etape 10
Configurer /etc/zabbix/zabbix_server.conf
Pour les petites installations (jusqu'à dix hôtes supervisés), les paramètres par défaut sont suffisants. Cependant, Vous devriez changer ces paramètres pour optimiser les performances de ZABBIX. Voir la section [Performance tuning] pour plus de détails.
Vous pouvez utiliser le fichier misc/conf/zabbix_server.conf comme exemple.
.
Etape 11
Démarrer les processus serveurs
Exécuter zabbix_server sur le serveur.
shell> cd bin shell> ./zabbix_server
Etape 12
Démarrer l'agent
Exécuter zabbix_agentd ou c'est nécessaire.
shell> cd bin shell> ./zabbix_agentd
4.4 Proxy Zabbix
Le proxy ZABBIX est un processus spécial. Il n'est pas nécessaire pour démarrer le processus.
Etape 1
Créer le compte du super-utilisateur ZABBIX
Ceci est l'utilisateur qui sera utilisé par le Proxy. Pour une utilisation en production, vous devez créer un compte dédié non privilégié ( 'zabbix' est couramment utilisé). Exécuter ZABBIX Proxy en tant que 'root', 'bin', ou tout autre compte avec des droits spéciaux est un risque de sécurité. Ne faites pas ça!
Etape 2
Extraction des sources ZABBIX
shell> gunzip zabbix-1.6.tar.gz && tar -xvf zabbix-1.6.tar
Etape 3
Créer la base de données ZABBIX. Optionnel.
ZABBIX est livré avec des scripts SQL utilisés pour créer le schéma de la base de données requis et pour mettre en place une configuration par défaut. Il y a des scripts séparés pour MySQL, Oracle, Post-greSQL et SQLite.
Pour MySQL:
shell> mysql -u<username> -p<password> mysql> create database zabbix; mysql> quit; shell> cd create/schema shell> cat mysql.sql | mysql -u<username> -p<password> zabbix shell> cd ../data shell> cat data.sql | mysql -u<username> -p<password> zabbix shell> cat images_mysql.sql | mysql -u<username> -p<password> zabbix
Pour Oracle (On admet que l'utilisateur zabbix avec pour mot de passe password existe déjà et possède les permissions pour créer des objets dans la base de données):
shell> cd create/schema shell> cat oracle.sql | sqlplus zabbix/password >out.log
shell> cd ../data shell> cat data.sql | sqlplus zabbix/password >out.log shell> cat images_oracle.sql | sqlplus zabbix/password >>out.log
Pour PostgreSQL:
shell> psql -U <username> psql> create database zabbix; psql> \q shell> cd create/schema shell> cat postgresql.sql | psql -U <username> zabbix shell> cd ../data shell> cat data.sql | psql -U <username> zabbix shell> cat images_pgsql.sql | psql -U <username> zabbix
Pour SQLite:
shell> cd create/schema shell> cat sqlite.sql | sqlite3 /var/lib/sqlite/zabbix.db shell> cd ../data shell> cat data.sql | sqlite3 /var/lib/sqlite/zabbix.db shell> cat images_sqlite3.sql | sqlite3 /var/lib/sqlite/zabbix.db
Etape 4
Configurer et compiler le code source pour votre système
Les sources doivent être compilées pour activer la compilation des processus du Proxy ZABBIX. Pour configurer la source pour le Proxy, vous devez spécifier la base de données qui sera utilisée.
shell> ./configure --enable-proxy --with-mysql --with-net-snmp –-with-libcurl # Pour MySQL + WEB moni-toring
ou
shell> ./configure --enable-proxy --with-pgsql --with-net-snmp –-with-libcurl # Pour PostgreSQL + WEB monitoring
ou
shell> ./configure --enable-proxy --with-oracle=/home/zabbix/sqlora8 --with-net-snmp –-with-libcurl # Pour Oracle + WEB monitoring
Cependant, si vous voulez compiler les binaires clients avec les binaires serveurs, utilisez:
shell> ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber --with-libcurl
L'option –enable-static peut être utilisée pour forcer la liaison statique.
Etape 5
Pour tout recompiler (avec make) et installer
shell> make install
Par défaut,
make install
installera tous les fichier dans /usr/local/bin, /usr/local/lib etc. Vous pouvez spécifier un préfixe d'installation autre que /usr/local en utilisant –prefix
Etape 6
Configurer /etc/services
Cette étape n'est pas réellement nécessaire. Cependant, elle est recommandée. Sur les machines clientes (supervisées), ajouter les lignes suivantes au fichier /etc/services:
zabbix_agent 10050/tcp zabbix_trap 10051/tcp
Etape 7
Configurer /etc/inetd.conf
Si vous prévoyez d'utiliser zabbix_agent à la place de zabbix_agentd qui est l'agent recommandé, La ligne suivante doit être ajoutée:
zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent
Redémarrer inetd
shell> killall -HUP inetd
Modifier les paramètres par défaut des fichiers de configuration
Etape 8
Configurer /etc/zabbix/zabbix_proxy.conf
Pour les petites installations (jusqu'à dix hôtes superviés), les paramètres par défaut sont suffisants. Cependant, Vous devriez changer ces paramètres pour optimiser les performances de ZABBIX. Voir la section [Performance tuning] pour plus de détails.
Assurez-vous que les paramètres Hostname et Server sont correctement configurés.
Vous pouvez utiliser le fichier misc/conf/zabbix_proxy.conf comme exemple.
Etape 9
Démarrer le processus du Proxy
Démarrage de zabbix_proxy:
shell> cd sbin shell> ./zabbix_proxy
4.5 Agent ZABBIX
Côté client
Etape 1
Créer le compte ZABBIX
Ceci est l'utilisateur utlisisé par l'agent. Pour une utilisation en production, vous devriez créer un compte dédié sans privilège (“zabbix” est couramment utilisé). L'agent ZABBIX possède une protection contre son utilisation sous le compte root.
Etape 2
Extraction des sources ZABBIX
shell> gunzip zabbix-1.6.tar.gz && tar xvf zabbix-1.6.tar
Etape 3
Configurer et compiler le code source pour votre système
Les sources doivent être compilées pour le client uniquement.
Pour configurer les sources pour le client:
shell> ./configure --enable-agent
Etape 4
Installer l'agent
shell> make
Copier les binaires crée depuis bin/ vers /opt/zabbix/bin ou un autre repertoire. Les autres repertoires communs sont /usr/local/bin ou /usr/local/zabbix/bin.
Etape 5
Configurer /etc/services
Cette étape n'est pas réellement nécessaire. Cependant, elle est recommandée.
Sur la machine cliente (supervisée), ajouter les lignes suivantes au fichier /etc/services:
zabbix_agent 10050/tcp zabbix_trap 10051/tcp
Etape 6
Configurer /etc/inetd.conf
Si vous prévoyez d'utiliser zabbix_agent à la place de zabbix_agentd qui est l'agent recommandé, La ligne suivante doit être ajoutée:
zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent
Redémarrer inetd
shell> killall -HUP inetd
Etape 7
Configure /etc/zabbix/zabbix_agent.conf
Il est nécessaire de configurer ce fichier pour chaque hôte qui possède zabbix_agent d'installé. Le fichier peut contenir l'adresse IP du serveur ZABBIX. Les connexions depuis un autre hôte seront refusées. A noter, qu'aucun caractère de fin de ligne ne doit être présent dans le fichier.
Vous pouvez utiliser le fichier misc/conf/zabbix_agent.conf comme exemple.
Etape 8
Configurer /etc/zabbix/zabbix_agentd.conf
Il est nécessaire de configurer ce fichier pour chaque hôte qui possède zabbix_agentd d'installé. Le fichier peut contenir l'adresse IP du serveur ZABBIX. Les connexions depuis un autre hôte seront refusées. Vous pouvez utiliser le fichier misc/conf/zabbix_agentd.conf comme exemple.
Etape 9
Démarrer zabbix_agentd sur toutes les machines supervisées
shell> /opt/zabbix/bin/zabbix_agentd
4.6 Interface WEB ZABBIX
Etape 1
Etape 2
Etape 3
Assurez-vous que tous les prérequis logiciels sont remplis.
Prérequis | Valeur minimum | Description |
---|---|---|
PHP version | 4.3.0 | |
PHP Memory limit | 8MB | Dans php.ini: memory_limit = 128M |
PHP post max size | 8MB | Dans php.ini: post_max_size = 8M |
PHP max execution time | 300 secondes | Dans php.ini: max_execution_time = 300 |
PHP database support | A choisir: MySQL, Oracle, PostgreSQL, SQLite | Un des modules suivants doit être installé: php-mysql, php-sqlora8, php-pgsql, php-sqlite3 |
PHP BC math | Tous | Compiled in PHP5. |
GD Version | 2.0 ou supérieure | Module php-gd. |
Image formats | au moins PNG | Module php-gd. |
Etape 4
Etape 5
Etape 6
Etape 7
Etape 8
Etape 9
Pour la supervision distribuée uniquement!
Si vous utilisez un environnement distribué, vous devez exécuter:
shell> ./zabbix_server –n <nodeid>
Où Node ID est un identifiant de nœud unique. Par exemple:
shell> ./zabbix_server –n 1
Cela va convertir les données de la base de donées pour les utiliser avec Node ID '1' et aussi ajouter un nœud local.
Etape 10
4.7 Mise à niveau
La procédure de mise à niveau est assez simple. Les nouveaux binaires et les fichiers de l'interface doivent être installés suivant les dernières instructions d'installation. Afin de mettre à jour la structure de la base de données, les étapes suivantes doivent être effectuées.
La procédure de mise à niveau peut durer de 0 seconde (si aucun patch n'est requis) à plusieurs heures. A noter qu'avant d'appliquer le patch sur la base de données, tous les processus ZABBIX doivent être arrêtés.
La mise à niveau de la base de données est habituellement requise pour les mises à niveau depuis une des principales versions stables vers une autre. Par exemple, depuis 1.4.x vers 1.6.x.
Pour les installations en production, une sauvegarde de la base de données est nécessaire!
Data source: Zabbix