{{tag> administration serveur réseau supervision BROUILLON}}
----
====== 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 [[:sudo|droits d'administration]] ;
* Avoir activé l'accès aux [[:depots#universe_et_multiverse|dépôts Universe]] ;
* Avoir un serveur Web installé et gérant le [[:modules_php|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''
===== Installation =====
==== Installation du serveur ====
Avant tout, créez la base de données « zabbix » sous MySQL (remplacez ''[user]'' par le login utilisé pour vous connecter à mysql) :
mysql -u[user] -p
mysql> create database zabbix;
mysql> quit
Créez une base postGRES
$ createdb zabbix
L'observation des logs d'installation du serveur montre que ce n'est plus la peine de créer la base à la main.
creating database zabbix: already exists.
Puis, [[:tutoriel:comment_installer_un_paquet|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.
==== 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 ===
[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] [[apt://zabbix-agent|zabbix-agent]] et éditez le fichier ''/etc/zabbix/zabbix_agentd.conf'' pour y indiquer l'adresse IP dans la variable "Serveur" .
=== Clients Windows ===
* [[http://www.zabbix.com/download.php|Télécharger l'agent]].
* 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 : ZabbixW32.exe install
* Lancer le service en lançant la commande :ZabbixW32.exe start
===== Utilisation et configuration =====
Pour accéder à Zabbix, lancez votre navigateur préféré et rendez-vous à l'adresse :
* [[http://localhost/zabbix]] si vous êtes sur le serveur ;
* [[http://mon_serveur/zabbix]] si vous êtes sur une autre machine.
Par défaut, le login est « Admin » et le mot de passe est vide.
**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, [[:permissions#modifier_les_permissions|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, [[tutoriel:comment_editer_un_fichier|é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.confLe résultat va être le mot de passe généré par zabbixsudo nano /etc/zabbix/dbconfig.phpLà 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 [[https://bugs.launchpad.net/ubuntu/ source/zabbix/ bug/112029|launchpad]]
* Si le serveur Zabbix ne se relance pas automatiquement après redémarrage de la machine, il faut remplacer le contenu des fichiers :
- "///etc/init.d/zabbix-server//" par https://bugs.launchpad.net/ubuntu/+source/zabbix/+bug/172775
- "///etc/init.d/zabbix-agent//" par https://bugs.launchpad.net/ubuntu/+source/zabbix/+bug/96644/comments/2
* 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 [[https://launchpad.net/~verwilst/+archive/ppa|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/
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
Order deny,allow
Deny from all
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:///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@:/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 =====
* [[http://www.zabbix.com|Le site officiel]] (en).
* [[http://www.zabbix.com/manual/v1.1/|L'aide en ligne de la version 1.1]] (en).
* [[http://www.zabbix.com/screenshots.php|Quelques captures d'écran]] (en).
* [[http://www.generation-linux.fr/index.php?post/2009/06/03/Zabbix-un-excellent-logiciel-de-supervision-reseau|Présentation de l'interface de supervision et de configuration en images]] (fr).
* [[http://wiki.monitoring-fr.org/zabbix/start| Un dossier complet sur le wiki monitoring-fr]] (fr).
----
//Contributeurs : [[utilisateurs:loack]].//
//Descriptif basé sur celui de [[Nagios]].//