Afin de suivre l’état de santé de mon infrastructure, j’ai eu envie d’installer un outil qui me propose d’une part une petite supervision et d’autre part une métrologie. Et pour répondre à mon besoin, mon choix s’est porté sur Zabbix excellent compromis.
Pour que mon Raspberry puisse stocker toutes les données de métrologies, j’ai déporté mon stockage MySQL sur mon NAS, ce que j’ai expliqué dans l’article Petite framboise cherche gros panier. Et dans ce nouvel article, je reprends l’installation à l’aide du manuel d’installation Zabbix 2.0, non pas en paquets mais à partir des sources afin de mieux coller à la framboise.
Les préparatifs
Je commence comme il se doit avec la création du groupe et du compte de service dédié.
sudo groupadd zabbix
sudo useradd -g zabbix -d /tmp -s /bin/false zabbix
Puis j’installe les librairies de développement nécessaires pour la compilation :
sudo aptitude install pkg-config libmysqlclient-dev libiksemel-dev libcurl4-openssl-dev libsnmp-dev libopenipmi-dev
Récupération, configuration, et compilation
Une fois tous ces préparatifs finis, je me lance dans le vif du sujet. Je me place dans le home de mon compte pour récupérer la dernière version du source, que je renomme par cohérence. Je décompresse, et dans le répertoire créé, je lance le configure avec les options idoines, puis les make.
cd
wget http://sourceforge.net/projects/zabbix/files/latest/download?source=files
mv download?source=files zabbix.tar.gz
tar zxf zabbix.tar.gz
cd zabbix*
./configure --enable-server --enable-agent --with-mysql --with-jabber --with-libcurl --with-net-snmp --with-ssh2 --with-openipmi --with-ldap
make
make install
Et voilà le travail !
Les finitions
Afin de placer les fichiers de configuration comme le réclame le FHS, et pour le démarrage du démon automatique au boot, je procède à ces quelques manipulations :
sudo mkdir -p /etc/zabbix
sudo cp ~/zabbix*/conf/zabbix_server.conf /etc/zabbix
sudo cp ~/zabbix*/misc/init.d/debian/zabbix-server /etc/init.d
sudo update-rc.d zabbix-server defaults
Attention, astuce : dans le fichier de configuration que l’on a déplacé toutes les valeurs sont proposées par défaut mais derrière un #. Personnellement, je les copie pour garder une trace de cette valeur avant d’ôter l’empêcheur de valoriser en rond. Pour l’exemple :
# Debug=3
Debug=2
Dans le /etc/init.d/zabbix-server j’ajoute le DAEMON_ARGS et modifie le start ce qui donne (extrait) :
NAME=zabbix_server
DAEMON=/usr/local/sbin/${NAME}
DAEMON_ARGS="-c /etc/zabbix/${NAME}.conf"
DESC="Zabbix server daemon"
(...)
start)
echo "Starting $DESC: $NAME"
# oloc - start-stop-daemon --start --oknodo --pidfile $PID --exec $DAEMON
start-stop-daemon --start --oknodo --pidfile $PID --exec $DAEMON -- ${DAEMON_ARGS}
;;
Et comme toujours j’aménage mon profile
d’un raccourci pour me faciliter le management.
vi ~/.profile
alias zb="sudo /etc/init.d/zabbix"
. ~/.profile
[Edition du 28/03/2013] Notez que je révise cet alias dans l’article D’un Z qui z’est mieux
Qui est en première base ?
En ce qui concerne la base de données, je choisis la MySQL que j’ai déjà installé (voir les explications dans LampBerry : Nouvel éclairage sur la framboise), et que j’ai déporté sur mon NAS (je radote).
Il suffit de créer le compte, et la base, puis de la remplir avec ce qu’on a récupéré et qui est dans le sous-répertoire décompressé. Notez que dans l’explication, root_mysql est le compte root du mysql et passwd son mot de passe. Il faut les coller aux arguments -u et -p.
mysql -uroot_mysql -ppasswd
mysql> create database zabbix character set utf8;
mysql> quit;
mysql -uroot_mysql -ppasswd zabbix < ~/zabbix*/database/mysql/schema.sql
mysql -uroot_mysql -ppasswd zabbix < ~/zabbix*/database/mysql/images.sql
mysql -uroot_mysql -ppasswd zabbix < ~/zabbix*/database/mysql/data.sql
[Edition du 28/03/2013] Notez qu’une amélioration de cette partie est disponible sur l’article D’un Z qui z’est mieux (compte MySql dédié).
L’interface web
Lors de mon installation j’ai récupéré la version 2.0.5, et j’aime utiliser un lien au nom générique qui pointe sur le répertoire dont le nom contient le numéro de version. Ca permet les retours arrière juste en jouant sur le lien. En bref, j’utilise un zabbix -> zabbix-2.0.5
.
sudo mkdir /var/www/zabbix-2.0.5
sudo cp -av ~/zabbix-2.0.5/frontends/php/* /var/www/zabbix-2.0.5
sudo ln -s /var/www/zabbix-2.0.5 /var/www/zabbix
Afin de mettre les valeurs réclamées par zabbix pour le serveur lighttpd, la bonne méthode est de créer un fichier .user.ini dans le répertoire. Mais pour qu’il soit pris en compte il faut en premier lieu s’assurer que cette nouvelle fonctionnalité (depuis php 5.3) est bien acive. Dans le fichier /etc/cgi/php.ini
, il faut s’assurer le présence sans point-virgule de :
user_ini.filename = ".user.ini"
Puis je crée le fichier dans le répertoire idoine et le remplis
sudo vi /var/www/zabbix/.user.ini
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_execution_time = 300
max_input_time = 300
Et pour finir cette mise en place, je change le propriétaire de tous ces objets pour le compte de service, parce que root ou mon profil, je trouve ça crade.
sudo chown -R zabbix:zabbix /var/www/zabbix
Enfin, je recharge mon lighttpd à l’aide de mon alias par un httpd reload
.
Z’est Zarti !
Je lance le démon avec un zb start
défini dans les finitions. Et lance le navigateur pour procéder à la suite de la configuration via l’interface sur : http://\<IP_du_Raspberry\>/zabbix
Pour la suite, c’est userfriendly et on trouve facilement de l’aide sur le granternet.
Second volet de cette installation : D’un Z qui z’est mieux
Source : Zabbix 2.0 Installation
Conseil de lecture : l’article comparatif des outils de monitoring de Frédéric Faure