Installer un serveur Zabbix

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Nous allons détailler dans ce papier l'installation d'un serveur Zabbix sur une Debian Squeeze (Façon Debian avec apt).

ZABBIX est un logiciel open source créé par Alexei Vladishev. Zabbix permet de surveiller le statut de divers services réseau, serveurs et autres matériels réseau (Wikipedia) Il vous permettra de surveiller un très grand nombre de matériels. Il fonctionne avec un serveur qui centralise et des agents (un sur chaque matériel surveillé) qui collecte les informations pour mise à disposition du serveur. Zabbix possède aussi un "proxy" qui permet de collecter les informations sur plusieurs matériels (un sous réseau par exemple), évitant au serveur de se connecter à toutes les machines. Pour de très grand réseaux c'est fort utile...

Site officiel de Zabbix

Installation du serveur

Nous installons sur une machine le serveur zabbix ainsi qu'un agent qui sera chargé de surveiller le serveur lui-même. Comme d'habitude avec Debian, c'est très simple:

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

L'installeur va vous poser plein de question, laissez les options par défaut.

Bug sur la version stable

Le frontend sur certaines versions est bogué...

apt-listbugs list zabbix-frontend-php
Récupération des rapports de bogue... Fait  
Analyse des informations Trouvé/Corrigé... Fait  
Bogues de gravité grave sur zabbix-frontend-php (-> ) <non corrigé>
 #637451 - zabbix-frontend-php: web access fails with Access denied for user 'zabbix'@'localhost'
Résumé :
 zabbix-frontend-php(1 bogue)

Le mot de passe de connexion de zabbix à la base de données ne s'est pas convenablement initialisé dans MySql.

mysql_connect(): Access denied for user 'zabbix'@'localhost' (using password: YES)[/usr/share/zabbix/include/db.inc.php:58]

Il suffit de réinitialiser le mot de passe de connexion à la base Zabbix dans MySql:

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 457
Server version: 5.1.49-3-log (Debian)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed

mysql> update user set password=PASSWORD("zabbix") where User='zabbix';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

Erreur de connexion de 'Admin'

Si vous rencontrez cette erreur lors de la première tentative de connexion avec l'utilisateur 'Admin':

C'est simple: Il suffit de modifier le mot de passe "Admin" dans la base MySql:

mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 963 Server version: 5.1.61-2 (Debian)

Copyright (c) 2000, 2011, 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> USE zabbix; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A

Database changed mysql> UPDATE users SET passwd=md5('password') WHERE alias='Admin'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0

mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)

mysql> exit Bye You have new mail.

Régler le php.ini

Afin de fonctionner correctement, Zabbix a besoin de quelques ajustements sur le php.ini de apache2. Il faut aussi correctement renseigner le fuseau horaire faute de quoi vous aurez droit à ce beau message d'erreur en permanence:

date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. [include/page_header.php:145]

nano /etc/php5/apache2/php.ini

max_execution_time = 60

max_execution_time = 300 ...

...

max_input_time = 60

max_input_time = 300 ...

...

post_max_size = 8M

post_max_size = 16M ...

...

date.timezone =

date.timezone = Africa/Nairobi ...

service apache2 restart
service zabbix-server restart

Se connecter au frontend

http://ip/zabbix

Configurer zabbix-agent sur le serveur

Copiez le résultat de:

$ hostname

Dans le fichier zabbix_agentd.conf

nano /etc/zabbix/zabbix_agentd.conf

  1. Server=localhost

Server=127.0.0.1

      1. Option: Hostname
  1. Unique, case sensitive hostname.
  2. Required for active checks and must match hostname as configured on the server.
  3. Value is acquired from HostnameItem if undefined.
  4. Mandatory: no
  5. Default:
  6. Hostname=

Hostname=sidlol

# service zabbix-server restart
Stopping Zabbix server: zabbix_serverNo /usr/sbin/zabbix_server found running; none killed.
.
Starting Zabbix server: zabbix_server.
# service zabbix-agent restart

Connectez-vous à l'interface de zabbix, puis dans le nume, rendez vous à: Configuration > Hotes Cliquez sur Zabbix Server, Remplacez le nom 'Zabbix Serveur' par le hostname que vous avez précédemment modifié dans le fichier zabbix_agentd.conf. Cliquez sur save, cliquez enfin sur 'not monitored' pour activer la surveillance. Vous devriez obtenir ceci:

Il vous reste maintenant à configurer vos hôtes surveillés (il faudra bien sûr installer pour chaque matériel zabbix-agent)

Installer zabbix-agent sur une machine Debian

root@ns387444:~# apt-get update
root@ns387444:~# apt-get install zabbix-agent
root@ns387444:~# service zabbix-agent status
Zabbix agent is running
netstat -laputen|grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      118        3827400     32607/zabbix_agentd
tcp6       0      0 :::10050                :::*                    LISTEN      118        3827401     32607/zabbix_agentd
nano /etc/zabbix/zabbix_agentd.conf

...

  1. Server=localhost

Server=IP_du_serveur_Zabbix

  1. Server port for sending active checks
  1. ServerPort=10051
  1. Unique hostname. Required for active checks.
  1. Hostname=localhost

Hostname=nom (identifiant unique) qui sera utilisé par le serveur pour décrire la machine surveillée ...

root@web:~# service zabbix-agent restart
Stopping Zabbix agent: zabbix_agentd.
Starting Zabbix agent: zabbix_agentd.

zabbix dans un vhost

~/ nano /etc/apache2/sites-available/zabbix
<VirtualHost ip_publique:443>
        DocumentRoot /usr/share/zabbix

        ServerName zabbix.votredomaine.org
        ServerAlias www.zabbix.votredomaine.org
        ServerAdmin admin@votredomaine.org

        SSLEngine on
        SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>

Si vous êtes derrière une passerelle, remplacez l'IP publique par l'IP locale du serveur, et créez une règle NAT sur la passerelle pour que le port 443 (ip publique) soit redirigé vers le port 443 de votre ip locale.

a2ensite zabbix
Enabling site zabbix.
To activate the new configuration, you need to run:
  service apache2 reload
service apache2 reload

Il sufira ensuite de configurer le DNS pour pointer sur votre ip publique

Surveiller votre serveur Zabbix à partir d'un appareil sous Android

Il existe une application pour les appareils fonctionnants sous Android: Mobbix (à installer via le "market" de l'appareil). Si vous avez configuré un vhost et qu'il est accessible depuis Internet vous pourrez surveiller votre serveur à distance:

Lol 14 mars 2012 à 08:42 (CET)