Contenu | Rechercher | Menus
Cette page est en cours de rédaction.
Apportez votre aide…

Zabbix, moniteur de supervision

La gestion d'un parc de serveur est un travail de chaque instant. Un bon administrateur système doit savoir à tout moment l'état des différentes machines et des différents services. Un autre aspect clé est que l'administrateur ne peut pas se permettre de passer son temps devant un tableau avec des voyants verts en attendant qu'un voyant passe au rouge pour agir. Son temps est occupé à d'autres tâches et il ne peut donc pas surveiller le tableau de statut en permanence.

L'examen journalier des logs systèmes est un bon début. Cependant, si un problème survient, on s'en rend compte seulement le lendemain. Ce qui peut être très (trop ?) tard.

Pour se simplifier le travail, nous allons utiliser un moniteur de supervision. Le but d'un tel programme est de surveiller les services et les machines se trouvant sous notre responsabilité. Si un problème survient, le moniteur de supervision nous prévient (email, SMS, etc.).

Le moniteur de supervision que nous allons envisager est Zabbix.

Pré-requis

  • Disposer des droits d'administration ;
  • Avoir activé l'accès aux dépôts Universe ;
  • Avoir un serveur Web installé et gérant le PHP et MySQL (ou PostgreSQL), voir la page « LAMP ».
  • positionner la variable date.timezone dans php.ini (par ex: /etc/php5/apache2/php.ini) : date.timezone = Europe/Paris (nous y reviendrons)

Installation

Installation du serveur Zabbix 2.0.2

installer les paquets :

  • zabbix-server-mysql pour utiliser une base MySQL ou zabbix-server-pgsql pour utiliser une base PostGRES ;
  • zabbix-frontend-php : l'interface PHP ;
  • zabbix-agent : pour pouvoir monitorer le serveur lui-même.

Nous utiliseront dans ce tutoriel la version mysql de zabbix

Exemple pour Ubuntu 12.10 server (quantal)

apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent

Lancement du serveur zabbix :

Activer le serveur

Le serveur zabbix n'est pas activé par défaut : la commande

/etc/init.d/zabbix-server restart

renvoie :

zabbix_server is disabled in /etc/default/zabbix-server.

Pour l'activer, modifier le fichier "/etc/default/zabbix-server" comme suit :

START=yes

Redémarrer le serveur :

/etc/init.d/zabbix-server restart

Consulter les logs du serveur :

tail -100 /var/log/zabbix-server/zabbix_server.log

L'observation des logs montre que le serveur Zabbix ne peut pas se connecter à la base de données Mysql, la base n'est pas remplie, n'est pas paramétrée, et la configuration de Zabbix n'est pas terminée.

Remplir la base mysql :

mysql -uroot -p

donner le mot de passe root de mysql

Créer la base de données zabbix, l'utilisateur mysql zabbix et changer le mot de passe:

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

Si besoin changer le mot de passe de l'utilisateur « zabbix » crée ci-dessus (par défaut c'est « zabbix »):

mysql > USE mysql ;
mysql > SET PASSWORD FOR 'zabbix'@'localhost' = PASSWORD('mysql');
mysql > FLUSH PRIVILEGES ;

Quitter la console mysql

mysql > exit

Importer la structure de base de données zabbix

Attention l'ordre des commandes est important

ubuntu < 12.04.2
root# mysql -u zabbix -p password zabbix < /usr/share/zabbix-server/mysql.sql
root# mysql -u zabbix -p password zabbix < /usr/share/zabbix-server/data.sql
ubuntu > =12.04.2
  zcat /usr/share/zabbix-server-mysql/schema.sql.gz | mysql -uzabbix -pmotdepassezabbix zabbix
  zcat /usr/share/zabbix-server-mysql/images.sql.gz | mysql -uzabbix -pmotdepassezabbix zabbix
  zcat /usr/share/zabbix-server-mysql/data.sql.gz | mysql -uzabbix -pmotdepassezabbix zabbix 
suite, toutes versions

Ajuster les paramètres du serveur en éditant le fichier de configuration comme suit :

nano /etc/zabbix/zabbix_server.conf

Ajuster au minimum le paramètre suivant :

DBPassword=votremotdepassemysql

Relancer le serveur :

 /etc/init.d/zabbix-server restart

Pour confirmer que le serveur fonctionne correctement, la commande:

 tail -100 /var/log/zabbix-server/zabbix_server.log

ne doit pas retourner d'erreurs.

Installation l’interface web de gestion de Zabbix

Profitons de la souplesse offerte par Apache2…(by Sybillan)

Créer un fichier de configuration dédié: zabbix-server

root# vi /etc/apache2/conf.d/zabbix-server
# Directives pour zabbix serveur

# Define /zabbix alias, this is the default
<IfModule mod_alias.c>
    Alias /zabbix /usr/share/zabbix
</IfModule>

<Directory /usr/share/zabbix>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
</Directory>
root# ls -l /etc/apache2/conf.d/zabbix-server
-rw-r--r-- 1 root root 296 Mar  5 13:47 /etc/apache2/conf.d/zabbix-server

Autre manière de configurer

Créer un fichier de configuration Apache :

nano /etc/apache2/sites-available/zabbix

Dans ce fichier, insérez le paramétrage du VirtualHost apache comme suit :

<VirtualHost *:80> 
      ServerAdmin webmaster@localhost 
      DocumentRoot /usr/share/zabbix/ 
         <Directory /> 
              Options FollowSymLinks 
              AllowOverride None 
      </Directory> 
      <Directory /usr/share/zabbix/> 
              Options Indexes FollowSymLinks MultiViews 
              AllowOverride None 
              Order allow,deny 
              allow from all 
      </Directory> 
      <Directory /usr/share/zabbix/> 
              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>  

Modifier le fichier de configuration de php (php.ini) pour les pré-requis de l'installation de Zabbix :

 nano /etc/php5/apache2/php.ini :

Modifiez les options ci-dessous :

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

Enregistrez puis redémarrez Apache2 :

 /etc/init.d/apache2 restart

Créez le fichier de configuration de l'interface zabbix (vide et avec les permissions ajustées), il sera rempli automatiquement par l'installateur zabbix :

 touch /etc/zabbix/zabbix.conf.php
 chown root:www-data /etc/zabbix/zabbix.conf.php
 chmod 660 /etc/zabbix/zabbix.conf.php

Il est maintenant possible de se connecter avec son navigateur via http://adress_ip_du_serveur

Une fois connecté sur l'interface web (cf. l'image ci-dessous), vous n'avez plus qu'à suivre les instructions, et remplir les champs en fonction de votre configuration.

Votre serveur est presque opérationnel

Installation des clients

Il est possible de ne rien installer sur les pcs clients. Cependant, la liste des informations disponibles sera plus limitée. L'installation du client Zabbix sur les PCs permet de donner à Zabbix toute sa puissance.

Clients Linux

Installez le paquet zabbix-agent et éditez le fichier /etc/zabbix/zabbix_agentd.conf pour y indiquer l'adresse IP dans la variable "Serveur" .

Clients Windows

  • Créer le fichier c:\zabbix_agentd.conf contenant la ligne Server=xxx.xxx.xxx.xxx où xxx.xxx.xxx.xxx est l'adresse IP du serveur Zabbix.
  • Ouvrir la ligne de commande Windows, se placer dans le répertoire contenant le fichier téléchargé puis lancer la commande suivante :
    zabbix_agentd.exe --install
  • Lancer le service en lançant la commande :
    zabbix_agentd.exe --start

Utilisation et configuration

Pour accéder à Zabbix, lancez votre navigateur préféré et rendez-vous à l'adresse :

Par défaut, le login est « Admin » et le mot de passe est vide.

Mars 2013 / Ubuntu 12.04.2 LTS : Zabbix-serveur MySQL version 1.8.11 : Par défaut le login est Admin et le mot de passe est zabbix (By Sybillan)

Janvier 2012 / Ubuntu 11.10 : Zabbix-serveur MySQL version 1.8.10 : Par défaut le login est Admin et le mot de passe est zabbix (By Ayitita)

Décembre 2009 / Ubuntu 9.10, avec Synaptic : Zabbix-serveur MySQL version 1.6.4 (en retard ? la 1.8 est dispo) : se connecter avec Admin comme login et zabbix comme mot de passe.

En cas de problème

  • Si le message Warning: include_once(/etc/zabbix/dbconfig.php) [function.include-once]: failed to open stream: Permission denied in /usr/share/zabbix/include/db.inc.php on line 24 est affiché en haut de la page, donnez un accès en lecture au fichier /etc/zabbix/dbconfig.php au serveur Web :
    sudo chmod +r /etc/zabbix/dbconfig.php
  • Si le message Warning: mysql_pconnect() [function.mysql-pconnect]: Access denied for user 'zabbix'@'localhost' (using password: NO) in /usr/share/zabbix/include/db.inc.php on line 32 s'affiche, éditez le fichier /etc/zabbix/dbconfig.php et complétez le champ DB_PASSWORD avec le mot de passe que vous avez saisi lors de l'installation du paquet zabbix-server-mysql :
  • Si vous avez utilisé la génération automatique du mot de passe à l'installation de zabbix alors, il faut que vous repreniez le mot de passe inclus dans le fichier /etc/zabbix/zabbix_server.conf et il faut l'inclure dans le fichier /etc/zabbix/dbconfig.php :
    sudo grep DBPassword /etc/zabbix/zabbix_server.conf

    Le résultat va être le mot de passe généré par zabbix

    sudo nano /etc/zabbix/dbconfig.php

    Là dans le champ "$DB["PASSWORD"] = ", vous remplacez le mot de passe contenu par celui obtenu lors de la commande précédente.

  • Pour ces deux erreurs un bug report à été lancé sur launchpad
  • Si le serveur Zabbix ne se relance pas automatiquement après redémarrage de la machine, il faut remplacer le contenu des fichiers :
  • Si le mot de passe fourni lors de l'installation ne fonctionne pas pour accéder à l'interface web, essayez login : admin, mdp : zabbix. (notamment sur les paquets du PPA de Bart Verwilst)

compilation du serveur

sudo apt-get install libsnmp9-dev libmysqlclient15-dev

1 - Make the zabbix user and group:

sudo adduser zabbix
enter in new password
confirm
use the remaining defaults.

Add zabbix to the admin group:

sudo adduser zabbix admin


2 - Download and Untar the sources:

su - zabbix
récupration des sources sur http://www.zabbix.com/download.php
tar zxvpf zabbix-1.4.tar.gz


3 - Create a zabbix database and populate it:

mysql -u root -p
create database zabbix;
quit;

mysql -u root -p zabbix < /home/zabbix/zabbix-1.4/create/schema/mysql.sql
mysql -u root -p zabbix < /home/zabbix/zabbix-1.4/create/data/data.sql


4 - Configure, compile and install the server:

cd zabbix-1.4/
./configure --prefix=/usr --with-mysql --with-net-snmp \
--enable-server --enable-agent &&
make
sudo make install


5 - Prepare the rest of the system:

sudo nano /etc/services

Add at the end:

zabbix_agent 10050/tcp # Zabbix ports
zabbix_trap 10051/tcp

Save and exit.

sudo mkdir /etc/zabbix
sudo chown -R zabbix.zabbix /etc/zabbix/
cp misc/conf/zabbix_* /etc/zabbix/

Edit /etc/zabbix/zabbix_agentd.conf:

nano /etc/zabbix/zabbix_agentd.conf

Make sure that the Server parameter points to the server address, for the agent that runs on the server it is like this:

Server=127.0.0.1

Edit /etc/zabbix/zabbix_server.conf:

nano /etc/zabbix/zabbix_server.conf

For small sites this default file will do, however if you are into tweaking your config for your 10+ hosts site, this is the place.

Change this:

# Database password
# Comment this line if no password used

DBPassword=Secret

Start the server :

zabbix_server

Start the client:

zabbix_agentd &


6 - Configure web interface

mkdir /home/zabbix/public_html
cp -R frontends/php/* /home/zabbix/public_html/

Edit /etc/apache2/sites-enabled/000-default:

sudo nano /etc/apache2/sites-enabled/000-default

Work into file:

Alias /zabbix/ /home/zabbix/public_html/
<Directory /home/zabbix/public_html>
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>

Save and exit.

Make php.ini adjustments:

sudo nano /etc/php5/apache2/php.ini

Change the following values:

max_execution_time = 300 ; Maximum execution time of each script, in seconds
date.timezone = America/Kentucky/Louisville
(use this url to find your correct timezone format: http://us3.php.net/manual/en/timezones.php )


Restart Apache:

sudo /etc/init.d/apache2 restart


Now point your browser to:

http://<servername or ip>/zabbix/

1. Introduction

read and click Next

2. License Agreement

Read, check 'I Agree', click Next

3. Check of Pre-Requisites

Fix any problems, click retry. Click Next when all pre-requisites are OK.

4. Configure DB Connection

Enter appropriate settings and click Test Connection.
Click Next when OK.

5. Pre-Installation Summary

Verify installation settings, click Next.

6. Install

Click Save Configuration file and save to machine.
Copy zabbix.conf.php to /home/zabbix/public_html/conf/zabbix.conf.php

One way to do this from a desktop machine (requires ssh installed):
scp zabbix.conf.php zabbix@<serverip>:/home/zabbix/public_html/conf/

Click Retry and click Next when OK.

7. Finish

Click Finish to complete installation.


Your New Zabbix install will now be shown.

Log in with username: Admin
No Password

First go to the tab Configuration and then Hosts.

Now create a host-group, see that you can give it some templates, e.g: Application.MySQL, Host.SNMP, Host.Standalone, Host.Unix.

Then some hosts:

Select your host-group and use Link with Template Host.Unix

Now a lot of triggers are imported and the game begins.

Go to the monitoring tab and watch the latest values roll in.

For specifics on configuration, please refer to the Zabbix user manual.

www.zabbix.com

Références


zabbix.txt · Dernière modification: Le 26/09/2013, 17:10 par 193.191.212.55
Le contenu de ce wiki est sous licence : CC BY-SA v3.0