Installer un serveur Zabbix
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...
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
- Server=localhost
Server=127.0.0.1
- Option: Hostname
- Unique, case sensitive hostname.
- Required for active checks and must match hostname as configured on the server.
- Value is acquired from HostnameItem if undefined.
- Mandatory: no
- Default:
- 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
...
- Server=localhost
Server=IP_du_serveur_Zabbix
- Server port for sending active checks
- ServerPort=10051
- Unique hostname. Required for active checks.
- 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)