installation de zabbixquentin.cayeux.free.fr/idz.pdf · 2013-04-22 · permet de superviser des...
TRANSCRIPT
1
8 janvier 2013
Installation de Zabbix
Présentation
Zabbix (http://www.zabbix.com) est une solution de supervision open source. Ce logiciel
permet de superviser des réseaux, et de surveiller les statuts de différents services, systèmes et
réseaux.
Un peu similaire à Nagios, Zabbix utilise un système de templates pour définir des hôtes à
superviser, ce qui le rend très pratique pour la définition de grosses infrastructures.
La partie serveur s’installe exclusivement sur Linux, quant à la partie agent, elle est disponible
sur de nombreux systèmes d’exploitation (Windows, Linux, Solaris, FreeBSD, …etc, pour une
liste plus complète voir ‘lien’), offrant ainsi une solution adaptive. Comme beaucoup de logiciels
de supervision, Zabbix permet la notification par mail, et offre un panel d’outils graphiques et
même sonores (graphiques, alarmes, …etc) pour une meilleure surveillance.
Un serveur Zabbix peut être décomposée en trois parties, tout d’abord, l’application est
composée d’une partie données, avec notamment l’usage d’un serveur de base de données tels
que MySQL, PostgreSQL, SQLite et Oracle, permettant de stocker les informations sur les
paramètres des hôtes, des évènements, …etc. Ensuite, il y a un serveur de traitement, soit Zabbix
Server, gérant les différents outils de supervision et de surveillance. Et pour finir, l’interface web
pour configurer et administrer Zabbix, c’est-à-dire Zabbix Frontend.
2
8 janvier 2013
Composants de Zabbix
Zabbix Server
Composant principal, le Zabbix Server permet une surveillance à distance (et en local) du bon
fonctionnement de différents services systèmes et réseaux, tels que : les serveurs Web, les serveurs
de courriers, ou bien encore les serveurs FTP, …etc. Il gère la notification par mail, afin d’avertir les
administrateurs de toute nouvelle alerte.
Zabbix Server peut fonctionner sans avoir recours aux agents, mais dans ce cas, il ne remontera
qu’une quantité limitée d’informations. Il peut également utiliser le protocole SNMP pour superviser
des hôtes.
Zabbix Frontend
Deuxième composant essentiel après Zabbix Server, Zabbix Frontend est tout simplement l’interface
de visualisation des évènements, mais aussi, et surtout l’interface d’administration et de
configuration de Zabbix.
Zabbix Frontend, étant une interface Web (php), a l’avantage d’être accessible depuis n’importe
quelle plateforme possédant un navigateur internet.
Zabbix Proxy
Zabbix Proxy permet de collecter des informations sur la performance et la disponibilité des données
sur un hôte, avant de les transmettre au Zabbix Server.
Zabbix Proxy offre la possibilité de réduire la charge d’un serveur Zabbix. En effet, toutes les
informations collectées peuvent être traitées en local, avant leur transmission au serveur.
Le Proxy de Zabbix est idéal pour une surveillance centralisée de sites distants, fonctionnant comme
un serveur intermédiaire, il remplit parfaitement son rôle de collecteur de données d’équipements
variés. Distant d’un serveur Zabbix, il agit comme une sonde de collecte et de traitement des
données.
Zabbix Agent
Bien qu’optionnel, se passer du Zabbix Agent serait une erreur, car même si le serveur Zabbix peut
fonctionner sans agent, l’usage de ces derniers permet une meilleure surveillance des hôtes, et donc
une supervision plus accrue.
L’installation d’un Zabbix Agent sur un hôte offre essentiellement une surveillance active des
ressources locales, des applications, … etc. L’agent envoi toutes informations supervisée au Zabbix
Server.
3
8 janvier 2013
Schéma de Gestion des Flux.
4
8 janvier 2013
Zabbix Agent
Windows
Installation
Pour installer l’agent Zabbix sur un système Windows, il faut premièrement télécharger
l’agent sur le site :http://www.zabbix.com/download.php
Ensuite, il faut extraire l’archive téléchargée et créer un fichier texte de configuration pour
l’agent, intitulé “zabbix_agentd.conf” et le placer à la racine (C:\zabbix_agentd.conf). Dans ce
fichier, il suffit de copier le contenu du même fichier de la version Linux.
A ce stade, il reste à installer l’agent. Pour cela, dans le dossier décompressé (extraction de
l’archive téléchargée) il y a un fichier “zabbix_agentd.exe”. Pour l’installer, il ne suffit pas de
double-cliquer dessus comme on pourrait le croire, il faut en fait ouvrir une invite de
commande (cmd). Une fois le terminal ouvert :
> cd \...\zabbix_agents_2.0.4.win.zip\win32
> zabbix_agentd.exe --install
Configuration
La configuration de l’agent Zabbix sur Windows est similaire à celle d’Ubuntu.
5
8 janvier 2013
Installation depuis les sources
Tutoriel rédigé pour une version Ubuntu 8.04/10.04 LTS et Zabbix 1.8.2.
Pré-requis
Pour commencer, il faut installer quelques paquets essentiels au bon fonctionnement de
n’importe quel composant Zabbix :
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install ssh wget man vim build-essential checkinstall
Création d’un utilisateur zabbix
L’utilisateur zabbix sert à exécuter les composants Zabbix (démons), sans avoir recours à un
utilisateur avec des privilèges (root, sudo-users), ce qui est bien sûr plus sécurisé.
Rappel : l’utilisateur zabbix ne doit pas être un super-utilisateur (sudo-user).
$ sudo groupadd -g 9000 zabbix
$ sudo useradd -u 9000 -g zabbix -d /usr/local/zabbix -c "Zabbix User"
zabbix
$ sudo passwd zabbix
Téléchargement
Dans un premier temps, il faut récupérer la dernière version de l’application sur le site
(http://www.zabbix.com/download.php) :
$ sudo wget http://prdownloads.sourceforge.net/zabbix/zabbix-2.0.4.tar.gz
Ensuite, on peut lancer l’extraction de l’archive téléchargée :
$ sudo tar -zxf zabbix-2.0.4.tar.gz
$ cd zabbix-2.0.4
Préparation de l’environnement Zabbix
Avant de compiler puis d’installer Zabbix à proprement parlé, il faut tout d’abord préparer
notre architecture, c’est-à-dire créer et organiser nos dossiers d’installation :
$ sudo mkdir /usr/local/zabbix
$ sudo mkdir /usr/local/zabbix/etc
$ sudo mkdir /usr/local/zabbix/var
$ sudo mkdir /usr/local/zabbix/var/run
$ sudo mkdir /usr/local/zabbix/var/log
6
8 janvier 2013
Zabbix Server
Mise en place de Zabbix Server sur un poste serveur.
Pré-requis
L’installation de Zabbix Server requiert des paquets supplémentaires :
$ sudo apt-get install libssl-dev libssh-dev libgnutls-dev libopenipmi-dev
libiksemel-dev snmp libsnmp-dev libnet-snmp-perl libcurl4-gnutls-dev fping
Puis, il faut ajouter un serveur de base de données :
$ sudo apt-get install mysql-server libmysqlclient15-dev
Création de la base de données
$ mysql -u root -p
> create database zabbixdb character set utf8;
> grant all privileges on zabbixdb.* to zabbix@localhost identified by
'zabbix';
> exit
$ mysql -u zabbix -p zabbixdb < /.../zabbix-2.0.4/database/mysql/schema.sql
$ mysql -u zabbix -p zabbixdb < /.../zabbix-2.0.4/database/mysql/images.sql
$ mysql -u zabbix -p zabbixdb < /.../zabbix-2.0.4/database/mysql/data.sql
/…/ correspond au chemin d’accès du dossier lors de la décompression du fichier source.
En cas d’erreur d’accès refusé, utilisez l’utilisateur « root » et le mot de passe entré
précédemment lors de l’installation de MySQL.
Installation
Maintenant, dans notre dossier zabbix-2.0.4 extrait, nous pouvons lancer l’installation avec
prise en charge du SNMP, de l’IPMI, de Jabber, et de CURL :
$ sudo ./configure --enable-server --with-mysql --with-net-snmp --with-
libcurl --with-openipmi --with-jabber --prefix=/usr/local/zabbix
7
8 janvier 2013
Une fois la compilation terminée (sans erreur), un résumé de la configuration doit alors
s’afficher dans le terminal, afin de vérifier les paramètres avant l’installation :
Configuration:
Detected OS: linux-gnu
Install path: /usr/local/zabbix
Compilation arch: linux
...
Enable server: yes
With database: MySQL
WEB Monitoring via: cURL
Native Jabber: yes
SNMP: net-snmp
IPMI: openipmi
...
Ensuite, on peut installer Zabbix Server :
$ sudo make install
A ce stade, s’il n’y a eu aucune erreur, Zabbix Server est installé dans le dossier
/usr/local/zabbix. Pour vérifier :
$ sudo dir /usr/local/zabbix
Les répertoires sbin et share doivent être présents en plus de ceux déjà créés auparavant. Pour
terminer l’installation, il reste à copier quelques fichiers dans notre dossier zabbix depuis
notre répertoire extrait, à savoir zabbix-2.0.4 :
$ sudo cp /…/zabbix-2.0.4/conf/zabbix_server.conf /usr/local/zabbix/etc
Et enfin, il n’y a plus qu’à créer un script init.d pour pouvoir démarrer/stopper Zabbix Server
en toute simplicité :
$ sudo vim /etc/init.d/zabbix-server
Voici le contenu du script :
#!/bin/sh -e
#
# Zabbix Server init.d script.
#
# Written by Ludovic Valentin.
# Monitoring-fr.org.
PATH="/bin:/sbin:/usr/bin:/usr/sbin"
CONF_NAME=zabbix_server.conf
CONF=/usr/local/zabbix/etc/$CONF_NAME
DAEMON_NAME=zabbix_server
8
8 janvier 2013
DAEMON=/usr/local/zabbix/sbin/$DAEMON_NAME
DAEMON_ARGS="-c $CONF"
SCRIPT_NAME=zabbix-server
SCRIPT=/etc/init.d/$SCRIPT_NAME
DESC="$DAEMON_NAME init.d script"
PID=/usr/local/zabbix/var/run/$DAEMON_NAME.pid
test -e $DAEMON || exit 0
. /lib/lsb/init-functions
zabbix_start () {
log_daemon_msg "Starting $DAEMON_NAME"
start-stop-daemon --start --pidfile $PID \
--exec $DAEMON -- $DAEMON_ARGS
log_end_msg $?
}
zabbix_stop () {
log_daemon_msg "Stopping $DAEMON_NAME"
start-stop-daemon --stop --pidfile $PID --name $DAEMON_NAME
log_end_msg $?
}
case "$1" in
start|stop)
zabbix_${1}
;;
restart)
zabbix_stop
sleep 2
zabbix_start
;;
force-stop)
log_daemon_msg "Stopping $DAEMON_NAME"
if [ -e $PID ]; then
killall -q $DAEMON_NAME
if [ -e $PID ]; then
rm -R $PID
fi
log_end_msg $?
else
echo "No $PID found; none $DAEMON_NAME killed."
fi
;;
status)
log_daemon_msg "Checking $DAEMON_NAME status"
if [ -e $PID ]; then
echo "Status: $DAEMON_NAME is running."
else
echo "Status: $DAEMON_NAME is not running."
fi
;;
9
8 janvier 2013
*)
log_daemon_msg $DESC
echo "Usage: $SCRIPT {start/stop/restart/force-stop/status}"
exit 1
;;
esac
exit 0
Ne pas oublier d’ajouter le droit d’exécution au script :
$ sudo chmod +x /etc/init.d/zabbix-server
Pour terminer, on applique les bons droits et permissions sur le fichier de configuration de
Zabbix Server (ce qui permet de protèger l’accès à ce fichier, le mot-de-passe d’accès de la
base de données apparaissant notamment en clair dans ce dernier), puis on place notre
utilisateur zabbix comme propriétaire de toute l’architecture d’installation de Zabbix :
$ sudo chmod 640 /usr/local/zabbix/etc/zabbix_server.conf
$ sudo chown -R zabbix:zabbix /usr/local/zabbix*
Configuration
La configuration du serveur se fait par l’intermédiaire du fichier de configuration
zabbix_server.conf présent dans notre architecture d’installation :
$ sudo vim /usr/local/zabbix/etc/zabbix_server.conf
Dans ce fichier, nous allons pouvoir renseigner les paramètres nécessaires au bon
fonctionnement de notre solution Zabbix Server.
Tout d’abord, il faut commencer par renseigner les chemins d’accès aux fichiers pid et logs
nécessaires au démarrage du serveur Zabbix, ces derniers étant utilisés par notre script init.d
précédemment créé :
LogFile=/usr/local/zabbix/var/log/zabbix_server.log
PidFile=/usr/local/zabbix/var/run/zabbix_server.pid
Ensuite, nous devons indiquer les paramètres de la base de données créée auparavant :
DBHost=zabbixdb
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/run/mysqld/mysqld.sock
10
8 janvier 2013
Démarrage de Zabbix Server
Pour démarrer Zabbix, il faut utiliser de préférence le script init.d fourni précédemment dans
ce tutoriel d’installation. Ce script est adapter à l’architecture mise en place, à savoir
/usr/local/zabbix dans notre procédure d’installation.
Un script officiel est disponible dans le paquet des sources Zabbix téléchargé auparavant,
mais il correspond avant tout à une installation par défaut (sur Debian).
Le script officiel se trouve dans /…/zabbix-1.8.2/misc/init.d
Dans ce tutoriel, c’est donc notre script qui est utilisé pour démarrer Zabbix:
$ sudo /etc/init.d/zabbix-server start
Zabbix Frontend
Maintenant nous allons installer Zabbix Frontend sur la même machine que Zabbix Server.
Zabbix Frontend peut très bien être installé sur un autre poste, à condition que les composants
Zabbix Server et Zabbix Frontend communique correctement entre-eux (au niveau ip et dns), afin
que l’interface puisse notamment interroger la base de données du serveur.
Pré-requis
Pour Zabbix Frontend, voici les paquets à installer :
$ sudo apt-get install apache2 php5 php5-gd
En fonction du serveur de base de données utilisé, il faut installer un paquet de support PHP
correspondant, dans notre cas il s’agit de MySQL :
$ sudo apt-get install php5-mysql
Installation
Préparation de l’environnement Zabbix Frontend :
$ sudo mkdir /usr/local/zabbix/frontend
$ sudo cp -R /…/zabbix-2.0.4/frontends/php/* /usr/local/zabbix/frontend
11
8 janvier 2013
Ensuite, l’installation de Zabbix Frontend se faisant depuis le navigateur internet, il faut
configurer notre serveur Web, à savoir Apache pour pouvoir accéder au frontend :
$ sudo vim /etc/apache2/sites-enabled/000-default
Voici le contenu à ajouter dans le fichier :
Alias /zabbix /usr/local/zabbix/frontend/
<Directory /usr/local/zabbix/frontend>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
Ne pas oublier de redémarrer le serveur Apache :
$ sudo /etc/init.d/apache2 restart
Maintenant, l’installation de Zabbix Frontend depuis le navigateur internet (Firefox par
exemple) va pouvoir débuter. Dans la barre d’adresse url du navigateur, il faut entrer l’adresse
ip du serveur où Zabbix Frontend est installé :
http://127.0.0.1/zabbix/
12
8 janvier 2013
Il ne reste alors plus qu’à suivre les étapes :
Dans la fenêtre suivante, il faut accepter les termes d’utilisation :
13
8 janvier 2013
Ensuite, la phase de paramétrage de Zabbix Frontend commence. Tout d’abord, il y a une
étape de vérification de la présence des pré-requis nécessaires au fonctionnement de
l’interface :
En cas d’échec de validation des pré-requis, à moins d’avoir oublié d’installer certains
paquets, il suffit juste de configurer quelques paramètres dans le fichier php.ini :
$ sudo vim /etc/php5/apache2/php.ini
Voici les champs à éditer dans le fichier (d’après la capture d’écran précédente) pour les faire
correspondre aux critères :
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = “Europe/Paris”
« date.timezone » peut-être commenté, dans ce cas dé-commenté la.
S’il y a une erreur dans le « PHP databases support », faites un :
apt-get install php5-mysql
14
8 janvier 2013
Ensuite, il ne faut pas oublier de relancer le serveur Apache :
$ sudo /etc/init.d/apache2 restart
Normalement, en réessayant de tester les pré-requis (Retry), l’étape doit être à présent validée
:
Dans l’étape suivante, il faut renseigner les paramètres de connexion de la base de données
créée durant l’installation de Zabbix Server. Une fois le test de connexion réussi, on peut
valider cette partie en cliquant sur Next :
15
8 janvier 2013
16
8 janvier 2013
La page suivante de l’installation concerne les paramètres du serveur Zabbix, à savoir son
nom dns ou bien son adresse ip, par défaut c’est localhost. De plus, il faut indiquer également
le port utilisé par Zabbix Server, normalement le port utilisé est 10051 :
Puis un résumé de l’installation de Zabbix Frontend est affiché, afin de vérifier une dernière
fois les paramètres entrés :
17
8 janvier 2013
Pour finir, la dernière étape concerne le fichier de configuration généré par notre installation
de Zabbix Frontend, normalement cette étape se fait automatiquement, c’est-à-dire qu’elle va
copier le fichier dans le dossier d’installation de notre architecture Zabbix :
18
8 janvier 2013
Mais comme nous avions spécifié un chemin d’installation différent de celui par défaut (voir
Zabbix Server), à savoir /usr/local/zabbix/frontend, et qu’il peut exister certains problèmes de
droits pour l’installation, il faut donc, après l’avoir téléchargé, copier manuellement le fichier
de configuration généré par le Zabbix Frontend, dans le dossier d’installation :
$ sudo cp /…/zabbix.conf.php /usr/local/zabbix/frontend/conf
19
8 janvier 2013
On vérifie ensuite que le fichier de configuration est bien détecté en cliquant sur Retry. Le
fichier doit normalement être validé, l’installation peut alors se terminer :
Et enfin, il ne reste plus qu’à cliquer sur Finish :
20
8 janvier 2013
Une fois l’installation terminée, le navigateur internet redirige automatiquement sur la page de
login de l’interface de Zabbix (Zabbix Frontend) :
Il faut alors utiliser l’utilisateur Admin avec pour mot-de-passe zabbix.
21
8 janvier 2013
Pour terminer, on applique les bons droits et permissions sur toute l’architecture d’installation
de Zabbix, à notre utilisateur zabbix :
$ sudo chown -R zabbix:zabbix /usr/local/zabbix*
L’installation de Zabbix Frontend est maintenant terminée.
22
8 janvier 2013
Zabbix Proxy
Installation de Zabbix Proxy sur un serveur dédié.
Pré-requis
Tout d’abord voici les paquets à installer :
$ sudo apt-get install libssl-dev libssh-dev libgnutls-dev libopenipmi-dev
libiksemel-dev snmp libsnmp-dev libnet-snmp-perl libcurl4-gnutls-dev
Puis, il faut ajouter un serveur de base de données :
$ sudo apt-get install mysql-server libmysqlclient15-dev
Création de la base de données
$ mysql -u root -p
> create database zabbixdb character set utf8;
> grant all privileges on zabbixdb.* to zabbix@localhost identified by
'zabbix';
> exit
$ mysql -u zabbix -p zabbixdb < /.../zabbix-1.8.2/create/schema/mysql.sql
$ mysql -u zabbix -p zabbixdb < /.../zabbix-1.8.2/create/data/data.sql
$ mysql -u zabbix -p zabbixdb < /.../zabbix-
1.8.2/create/data/images_mysql.sql
Installation
$ sudo ./configure --enable-proxy --with-mysql --with-net-snmp --with-
libcurl --with-openipmi --with-jabber --prefix=/usr/local/zabbix
$ sudo make install
A ce stade, s’il n’y a eu aucune erreur, Zabbix Proxy est installé dans le dossier
/usr/local/zabbix. Pour vérifier :
$ sudo dir /usr/local/zabbix
Les répertoires sbin et share doivent être présents en plus de ceux déjà créés auparavant. Pour
terminer l’installation, il reste à copier quelques fichiers dans notre dossier zabbix depuis
notre répertoire extrait, à savoir zabbix-1.8.2 :
$ sudo cp /…/zabbix-1.8.2/misc/conf/zabbix_proxy.conf /usr/local/zabbix/etc
Et enfin, il n’y a plus qu’à créer un script init.d pour pouvoir démarrer/stopper Zabbix Proxy
en toute simplicité :
$ sudo vim /etc/init.d/zabbix-proxy
23
8 janvier 2013
Le contenu du script est le même que pour le script init.d du Zabbix Server, il n’y a qu’à
modifier les variables pour l’adapter à l’installation du proxy :
#!/bin/sh -e
#
# Zabbix Proxy init.d script.
#
# Written by Ludovic Valentin.
# Monitoring-fr.org.
PATH="/bin:/sbin:/usr/bin:/usr/sbin"
CONF_NAME=zabbix_proxy.conf
CONF=/usr/local/zabbix/etc/$CONF_NAME
DAEMON_NAME=zabbix_proxy
DAEMON=/usr/local/zabbix/sbin/$DAEMON_NAME
DAEMON_ARGS="-c $CONF"
SCRIPT_NAME=zabbix-proxy
SCRIPT=/etc/init.d/$SCRIPT_NAME
DESC="$DAEMON_NAME init.d script"
PID=/usr/local/zabbix/var/run/$DAEMON_NAME.pid
...
Ne pas oublier d’ajouter le droit d’exécution au script :
$ sudo chmod +x /etc/init.d/zabbix-proxy
Et enfin, on applique les bons droits et permissions sur le fichier de configuration de Zabbix
Proxy (ce qui permet de protèger l’accès à ce fichier, le mot-de-passe d’accès de la base de
données apparaissant notamment en clair dans ce dernier), puis on place notre utilisateur
zabbix comme propriétaire de toute l’architecture d’installation de Zabbix :
$ sudo chmod 700 /usr/local/zabbix/etc/zabbix_proxy.conf
$ sudo chown -R zabbix:zabbix /usr/local/zabbix*
Configuration
Zabbix Proxy se configure de la même manière que les autres composants Zabbix, c’est-à-dire
en éditant le fichier de configuration lui correspondant, à savoir zabbix_proxy.conf :
$ sudo vim /usr/local/zabbix/etc/zabbix_proxy.conf
De la même manière que pour la configuration de Zabbix Server, il faut préciser les
répertoires que le proxy doit utiliser pour ses fichiers de logs et de pid :
LogFile=/usr/local/zabbix/var/log/zabbix_proxy.log
PidFile=/usr/local/zabbix/var/run/zabbix_proxy.pid
Sur ce fichier, le proxy fonctionnant d’une certaine manière comme un agent, il faut lui
indiquer l’adresse ip du serveur Zabbix auquel il doit transmettre ses données :
Server=150.1.5.1
24
8 janvier 2013
Il est également important de remplir le champ du Hostname, ce dernier est nécessaire pour
le serveur Zabbix lors des “actives checks” :
Hostname=Proxy
Le Hostname ne correspond pas au nom dns de la machine sur lequel le Zabbix Proxy est installé,
c’est tout simplement le nom que vous allez donner dans l’interface (Zabbix Frontend) pour cet hôte
durant l’ajout (création) d’un proxy.
Il est très important que le Hostname défini pour le proxy corresponde respectivement à son nom
affiché dans l’interface
Puis, il reste à renseigner les paramètres de la base de données :
DBName=zabbixdb
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/run/mysqld/mysqld.sock