«

»

Août 18 2012

[Tuto]Installation de Zabbix 2.0.2 sous Debian 6

Qu’est-ce que Zabbix?

Zabbix est un serveur de supervision fonctionnant en mode client/serveur, comparé à Nagios qui n’a pas forcement besoin d’un client sur la machine à superviser, Zabbix a besoin q’un agent soit installé sur les machines à superviser.

Ce qui est intéréssant avec Zabbix comparé à Nagios c’est qu’il y a une interface Web complète pour configurer le serveur de supervision.

Tuto installation de Zabbix Server 2.0.2 sur Debian 6

Dans ce tutoriel, nous allons voir comment installer Zabbix version 2.0.2 sur un serveur sous Debian 6.

Les dépôts de Debian ne proposent que Zabbix dans sa version 1.8 nous allons installer la dernière version via ses sources.

Préparation de l’installation

Sur un un serveur Debian fraîchement installé nous allons commencer par installer les dépendances nécéssairess à l’installation de Zabbix.

apt-get update && apt-get upgrade
apt-get install build-essential checkinstall mysql-server libmysqlclient15-dev libssl-dev libssh-dev libgnutls-dev libopenipmi-dev libiksemel-dev snmp libsnmp-dev libnet-snmp-perl libcurl4-gnutls-dev fping

Puis nous allons télécharger les sources de Zabbix

wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.2/zabbix-2.0.2.tar.gz
tar xvzf zabbix-2.0.2.tar.gz
cd zabbix-2.0.2

Création d’un utilisateur pour Zabbix

groupadd -g 9000 zabbix
useradd -u 9000 -g zabbix -d /usr/local/zabbix -c "Zabbix User" zabbix
#On met un mot de passe a cet utlisateur
passwd zabbix

Création de la base de donnée MySQL et création d’un utilisateur Zabbix

mysql -u root -p

Puis on tape les commandes MySQL suivantes

mysql > create database zabbix;
mysql > grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql > exit

On peuple la base de donnée créée

mysql -u zabbix -pzabbix zabbix < /root/zabbix-2.0.2/database/mysql/schema.sql
mysql -u zabbix -pzabbix zabbix < /root/zabbix-2.0.2/database/mysql/images.sql
mysql -u zabbix -pzabbix zabbix < /root/zabbix-2.0.2/database/mysql/data.sql

Et pour finir la prépation de l’installation on met en place les différents repertoires de l’installation de Zabbix

mkdir /usr/local/zabbix
mkdir /usr/local/zabbix/etc
mkdir /usr/local/zabbix/var
mkdir /usr/local/zabbix/var/run
mkdir /usr/local/zabbix/var/log
mkdir /usr/local/zabbix/frontend/

Lancement de l’installation

cd /root/zabbix-2.0.2/
./configure --enable-server --with-mysql --with-net-snmp --with-libcurl --with-openipmi --with-jabber --prefix=/usr/local/zabbix
make install

Configuration post-install

On met en place le script de démarrage auto de Zabbix

cp /root/zabbix-2.0.2/misc/init.d/debian/zabbix-server /etc/init.d/

On édite le fichier /etc/init.d/zabbix-server et on remplace la ligne:

DAEMON=/usr/local/sbin/${NAME}

par

DAEMON=/usr/local/zabbix/sbin/${NAME}

et la ligne

PID=/tmp/$NAME.pid

par

PID=/usr/local/zabbix/var/run/$NAME.pid

Puis on rend le script exécutable et on l’active au démarrage

chmod +x /etc/init.d/zabbix-server
update-rc.d zabbix-server defaults

Maintenant on configure le fichier de configuration de Zabbix zabbix_server.conf se trouvant dans /usr/local/zabbix/etc/ et on le configure avec les informations suivantes:

LogFile=/usr/local/zabbix/var/log/zabbix_server.log
PidFile=/usr/local/zabbix/var/run/zabbix_server.pid

DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/run/mysqld/mysqld.sock

On finis par mettre les droits nécéssaires au dossier de Zabbix.

chmod 640 /usr/local/zabbix/etc/zabbix_server.conf
chown -R zabbix:zabbix /usr/local/zabbix*

Et on démarre le serveur Zabbix

service zabbix-server start

Pour vérifier que le serveur zabbix est bien démmarré tapez la commande suivante:

tail -100 /usr/local/zabbix/var/log/zabbix_server.log

Si il n’y a pas d’erreurs c’est que votre serveur Zabbix est fonctionnel.

Installation l’interface web de gestion de Zabbix

Installation des dépendances

apt-get install apache2 php5 php5-gd php5-mysql

On copie les fichiers d’installation du frontend présents dans les sources de Zabbix

cp -R /root/zabbix-2.0.2/frontends/php/* /usr/local/zabbix/frontend

Configuration d’Apache

Vous avez deux possibilités pour configurer Apache, sois vous éditez le fichier de configuration d’Apache par défaut, sois vous créez un nouvel hôte.

Pour ma part j’ai crée un nouvel hôte:

cp /etc/apache2/sites-available/default /etc/apache2/sites-available/zabbix

Et voici le contenus du fichier zabbix:


<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /usr/local/zabbix/frontend/

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /usr/local/zabbix/frontend/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>


Puis on active zabbix et on désactive le site par défaut:

a2ensite zabbix
a2dissite default

Avant de redémarrer Apache il reste des modifications à effectuer dans le fichier /etc/php5/apache2/php.ini

max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = “Europe/Paris”

Et on redémarre Apache

service apache2 restart

Une fois Apache redémarré nous allons terminer l’installation de l’interface Web de Zabbix via le navigateur internet

Connectez-vous à l’url suivante: http://IP-DE-VOTRE-SERVEUR/

Si vous avez ceci c'est que votre Apache est bien configuré

Si vous avez ceci c’est que votre Apache est bien configuré

Cliquez sur Next et vérifiez que toutes les prérequis nécessaires à l’installation de Zabbix sont bien tous sur OK et cliquez sur Next

Prérequis

Prérequis

Dans ce nouvel écran remplissez les infirmations nécessaires à la connection a la base de donnée zabbix cliquez sur test pour vérifier que vos informations sont justes et cliquez sur Next

Configuration de MySQL

Configuration de MySQL

Pour les deux autres écrans il n’y a rien a modifier

Server details

Server details

Récapitulatif

Récapitulatif

A l’étape 6 vous devriez avoir ce message:

Erreur mais c'est normal ;)

Erreur mais c’est normal ;)

Cliquez sur Download configuration file et copiez le fichier télécharger dans le dossier /usr/local/zabbix/frontend/conf de votre serveur Zabbix

Cliquez sur Retry

Plus d'erreur

Plus d’erreur

Enfin cliquez sur Finish

Vous pouvez maintenant vous logger avec le login: Admin et le mot de passe: zabbix

Connectez-vous

Connectez-vous

Enfin sur la page principal de l’interface Web de Zabbix vérifiez que le serveur Zabbix est bien fonctionnel

Zabbix server is running = Yes :)

Zabbix server is running = Yes :)

Pour finir on redonne les droits a l’utilisateur Zabbix au repertoire zabbix.

chown -R zabbix:zabbix /usr/local/zabbix*

(17 commentaires)

Passer au formulaire de commentaire

  1. armand

    bonjour
    est ce que ce tuto peu aussi fonctionner sur un des version ubuntu ?

  2. Wilson

    Bonsoir sil vous plait dites moi comment resoudre ce probleme
    Quand je fais http://localhost/zabbix/ jai ce message
    array(T_ZBX_STR, O_NO, null, NOT_EMPTY, ‘isset({enter})’, _(‘Username’)), ‘password’ => array(T_ZBX_STR, O_OPT, null, null, ‘isset({enter})’), ‘sessionid’ => array(T_ZBX_STR, O_OPT, null, null, null), ‘reconnect’ => array(T_ZBX_INT, O_OPT, P_SYS|P_ACT, BETWEEN(0, 65535), null), ‘enter’ => array(T_ZBX_STR, O_OPT, P_SYS, null, null), ‘autologin’ => array(T_ZBX_INT, O_OPT, null, null, null), ‘request’ => array(T_ZBX_STR, O_OPT, null, null, null) ); check_fields($fields); // logout if (isset($_REQUEST[‘reconnect’])) { DBstart(); add_audit(AUDIT_ACTION_LOGOUT, AUDIT_RESOURCE_USER, _(‘Manual Logout’)); DBend(true); CWebUser::logout(); redirect(‘index.php’); } $config = select_config(); if ($config[‘authentication_type’] == ZBX_AUTH_HTTP) { if (!empty($_SERVER[‘PHP_AUTH_USER’])) { $_REQUEST[‘enter’] = _(‘Sign in’); $_REQUEST[‘name’] = $_SERVER[‘PHP_AUTH_USER’]; } else { access_deny(ACCESS_DENY_PAGE); } } // login via form if (isset($_REQUEST[‘enter’]) && $_REQUEST[‘enter’] == _(‘Sign in’)) { // try to login $autoLogin = getRequest(‘autologin’, 0); DBstart(); $loginSuccess = CWebUser::login(getRequest(‘name’,  »), getRequest(‘password’,  »)); DBend(true); if ($loginSuccess) { // save remember login preference $user = array(‘autologin’ => $autoLogin); if (CWebUser::$data[‘autologin’] != $autoLogin) { API::User()->updateProfile($user); } $request = getRequest(‘request’); $url = zbx_empty($request) ? CWebUser::$data[‘url’] : $request; if (zbx_empty($url) || $url == $page[‘file’]) { $url = ‘dashboard.php’; } redirect($url); exit; } // login failed, fall back to a guest account else { CWebUser::checkAuthentication(null); } } else { // login the user from the session, if the session id is empty – login as a guest CWebUser::checkAuthentication(CWebUser::getSessionCookie()); } // the user is not logged in, display the login form if (!CWebUser::$data[‘alias’] || CWebUser::$data[‘alias’] == ZBX_GUEST_USER) { switch ($config[‘authentication_type’]) { case ZBX_AUTH_HTTP: echo _(‘User name does not match with DB’); break; case ZBX_AUTH_LDAP: case ZBX_AUTH_INTERNAL: if (isset($_REQUEST[‘enter’])) { $_REQUEST[‘autologin’] = getRequest(‘autologin’, 0); } if ($messages = clear_messages()) { $messages = array_pop($messages); $_REQUEST[‘message’] = $messages[‘message’]; } $loginForm = new CView(‘general.login’); $loginForm->render(); } } else { redirect(zbx_empty(CWebUser::$data[‘url’]) ? ‘dashboard.php’ : CWebUser::$data[‘url’]); }

  3. Jasmine

    Bonjour,

    Merci pour ce tuto.
    Malheureusement ça ne fonctionne pas chez moi.
    Quand je me connecte avec l’url de mon serveur, j’ai ça :
    array(T_ZBX_STR, O_NO, null, NOT_EMPTY, ‘isset({enter})’, _(‘Username’)), ‘password’ => array(T_ZBX_STR, O_OPT, null, null, ‘isset({enter})’), ‘sessionid’ => array(T_ZBX_STR, O_OPT, null, null, null), ‘reconnect’ => array(T_ZBX_INT, O_OPT, P_SYS, BETWEEN(0, 65535), null), ‘enter’ => array(T_ZBX_STR, O_OPT, P_SYS, null, null), ‘autologin’ => array(T_ZBX_INT, O_OPT, null, null, null), ‘request’ => array(T_ZBX_STR, O_OPT, null, null, null) ); check_fields($fields); // logout if (isset($_REQUEST[‘reconnect’])) { add_audit(AUDIT_ACTION_LOGOUT, AUDIT_RESOURCE_USER, _(‘Manual Logout’)); CWebUser::logout(get_cookie(‘zbx_sessionid’)); clear_messages(1); } $config = select_config(); if ($config[‘authentication_type’] == ZBX_AUTH_HTTP) { if (!empty($_SERVER[‘PHP_AUTH_USER’]) && !empty($_SERVER[‘PHP_AUTH_PW’])) { $_REQUEST[‘enter’] = _(‘Sign in’); $_REQUEST[‘name’] = $_SERVER[‘PHP_AUTH_USER’]; } else { access_deny(); } } // login via form if (isset($_REQUEST[‘enter’]) && $_REQUEST[‘enter’] == _(‘Sign in’)) { // try to login if (CWebUser::login(get_request(‘name’,  »), get_request(‘password’,  »))) { // save remember login preference $user = array(‘autologin’ => get_request(‘autologin’, 0)); if (CWebUser::$data[‘autologin’] != $user[‘autologin’]) { $result = API::User()->updateProfile($user); } add_audit_ext(AUDIT_ACTION_LOGIN, AUDIT_RESOURCE_USER, CWebUser::$data[‘userid’],  », null, null, null); $request = get_request(‘request’); $url = zbx_empty($request) ? CWebUser::$data[‘url’] : $request; if (zbx_empty($url) || $url == $page[‘file’]) { $url = ‘dashboard.php’; } redirect($url); exit(); } // login failed, fall back to a guest account else { CWebUser::checkAuthentication(null); } } else { // login the user from the session, if the session id is empty – login as a guest CWebUser::checkAuthentication(get_cookie(‘zbx_sessionid’)); } // the user is not logged in, display the login form if (!CWebUser::$data[‘alias’] || CWebUser::$data[‘alias’] == ZBX_GUEST_USER) { switch ($config[‘authentication_type’]) { case ZBX_AUTH_HTTP: echo _(‘User name does not match with DB’); break; case ZBX_AUTH_LDAP: case ZBX_AUTH_INTERNAL: if (isset($_REQUEST[‘enter’])) { $_REQUEST[‘autologin’] = get_request(‘autologin’, 0); } if ($messages = clear_messages()) { $messages = array_pop($messages); $_REQUEST[‘message’] = $messages[‘message’]; } $loginForm = new CView(‘general.login’); $loginForm->render(); } } else { redirect(zbx_empty(CWebUser::$data[‘url’]) ? ‘dashboard.php’ : CWebUser::$data[‘url’]); }

    1. hasina

      Bjr!! Je n’ai pas le fichier zabbix-server.conf dans /usr/local/zabbix/etc/. Quel est le source du problème svp!!! Merci :)

    2. Wilson

      salut jai le meme probleme que toi as tu trouver une solution
      Merci de la partager

  4. lebagdadien

    bravo!!!!!!!! je suis très satisfait de ce tuto très bien détaillé, qui m’a permis d’avancer dans la mise sur pied d’un portail captif avec radius+chillispot+zabbix sous debian 5

  5. DIENG

    Merci pour le tuto, je suis debutant en systeme et reseau et j’ai reussi lintallation sans difficulté. puissance Man

  6. Julien G

    45 minutes, installation de l’OS comprise, pour mettre le Zabbix en place.

    La classe.

  7. milyms

    kiasy valay,miainga nainty

  8. Fof

    Merci pour ce tuto qui m’a permis d’installer zabbix 2.0 en mode pilote automatique à 4h30 du mat :p

    1. Sebb

      J’avais une question … je viens de finir d’installer zabbix avec les dépôts sur http://ftp.fr.debian.org/debien/ squeeze main …
      Et bah j’arrive pas à faire communiquer les autres machines du réseau avec celle du serveur. Je ne sais pas comment m’y prendre.!
      La je vais l’installer avec ce tutoriel, quelqu’un pourrait m’expliquer comment configurer les agents sur Windows ET Linux pour qu’il y a communication ?
      C’est assez urgent je dois rendre un rapport pour Mercredi … je bloque depuis 1 semaine :(
      Merci.

  9. Julien

    Bonjour,
    Je cherchais un bon tuto pour m’essayer à Zabbix!
    Merci donc ;)
    Julien

  10. mirzouch

    Bon, ça c’est fait … Merci m’sieur !!! :)
    [ Debian 6.0.6 – Zabbix 2.0.4 ]

  11. Pierre-Yves

    Salut
    Pour les Tag LSB manquant lorsque l’on veut ajouter les services zabbix-server et zabbix-agent au démarrage, voici le bug remonté à Zabbix :
    https://support.zabbix.com/browse/ZBXNEXT-1232
    Bonne journée

  12. Lakomela

    Super tuto. Je suis débutant et j’ai réussi à le faire fonctionner du premier coup. Merci beaucoup

  13. freyak

    Super tuto d’installation de zabbix Merci !!

  14. gginovi

    PERFECT

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Lire les articles précédents :
MobaXterm
Découverte de MobaXterm

Découverte de MobaXterm MobaXterm est ce que j'appelle "Le couteau suisse de l'utilisateur Linux sous Windows"

Fermer