Installation serveur Zabbix

Voila depuis quelques temps j’ai installé un serveur zabbix pour remplacer mon système à base de nagios . Pour le moment je n’avais pas effectué la documentation / aide mémoire c’est maintenant chose faites .

Installation serveur zabbix

Installation sur une Debian Wheezy .

Cette fois on va pas faire comme d’habitude mais ce n’est pas plus compliqué 🙂 . Il faut récupérer la dernière version de zabbix sur leur site .

On décompresse par exemple dans /data/src

tar -xvzf zabbix-2.0.x.tar.gz

On crée le compte zabbix

groupadd zabbix
useradd -g zabbix zabbix

Nous attaquons du coup la partie base de donnée . Il faut bien importer les trois fichiers SQL sinon vous aurez de belles erreurs au démarrage de zabbix.

mysql -p
create database zabbix;
grant all privileges on zabbix.* to zabbix@ip_server_zabbix identified by 'passwd';

quit

cd zabbix-2.0.x/database/mysql/

mysql -uzabbix -p zabbix < database/mysql/schema.sql
mysql -uzabbix -p zabbix < database/mysql/images.sql
mysql -uzabbix -p zabbix < database/mysql/data.sql

Installation depuis les sources

./configure --enable-server --with-mysql --with-net-snmp --with-libcurl --with-openipmi --with-jabber --enable-agent --prefix=/usr/local/zabbix

make install

Les messages d’erreurs connus

Error: configure: error: MySQL library not found
Fix: sudo apt-get install libmysqlclient-dev libmysqld-dev

Error: checking for IKSEMEL... configure: error: Jabber library not found
Fix: sudo apt-get install libiksemel-dev

Error: configure: error: Curl library not found
Fix: sudo apt-get install libcurl4-openssl-dev

Error: configure: error: Not found NET-SNMP library
Fix: sudo apt-get install libsnmp-dev

Error: configure: error: Invalid OPENIPMI directory - unable to find ipmiif.h
Fix: sudo apt-get install libopenipmi-dev

 

Maintenant nous allons mettre en place les scripts d’init ( les scripts sont ceux de monitoring-fr). On édite le fichier « /etc/init.d/zabbix-server »

Vous pouvez biensur adapter les path en fonction de vos besoins. 🙂

#!/bin/sh -e
#
# Zabbix Server init.d script.
#
# Written by Ludovic Valentin.
# Monitoring-fr.org.

PATH="/bin:/sbin:/usr/bin:/usr/sbin"

CONF_NAME=zabbix_server.conf
CONF=/usr/local/zabbix/etc/$CONF_NAME

DAEMON_NAME=zabbix_server
DAEMON=/usr/local/zabbix/sbin/$DAEMON_NAME
DAEMON_ARGS="-c $CONF"

SCRIPT_NAME=zabbix-server
SCRIPT=/etc/init.d/$SCRIPT_NAME
DESC="$DAEMON_NAME init.d script"
PID=/usr/local/zabbix/var/run/$DAEMON_NAME.pid

test -e $DAEMON || exit 0

. /lib/lsb/init-functions

zabbix_start () {
	log_daemon_msg "Starting $DAEMON_NAME"
	start-stop-daemon --start --pidfile $PID \
		--exec $DAEMON -- $DAEMON_ARGS
        log_end_msg $?
}

zabbix_stop () {
	log_daemon_msg "Stopping $DAEMON_NAME"
	start-stop-daemon --stop --pidfile $PID --name $DAEMON_NAME
	log_end_msg $?
}

case "$1" in

	start|stop)
		zabbix_${1}
	;;

	restart)
		zabbix_stop
		sleep 2
		zabbix_start
	;;

	force-stop)
		log_daemon_msg "Stopping $DAEMON_NAME"
                if [ -e $PID ]; then
                        killall -q $DAEMON_NAME
                        if [ -e $PID ]; then
                                rm -R $PID
                        fi
                        log_end_msg $?
                else
                        echo "No $PID found; none $DAEMON_NAME killed."
                fi
	;;

	status)
		log_daemon_msg "Checking $DAEMON_NAME status"
                if [ -e $PID ]; then
                        echo "Status: $DAEMON_NAME is running."
                else
                        echo "Status: $DAEMON_NAME is not running."
                fi
	;;

	*)
		log_daemon_msg $DESC
		echo "Usage: $SCRIPT {start/stop/restart/force-stop/status}"
		exit 1
	;;

esac

exit 0

Je ne vous dirais pas de le rendre exécutable .

Il faut par la suite éditer le fichier zabbix_server;conf dans /usr/local/zabbix/etc/zabbix_server.conf

Il suffit d’indiquer les paramètres comme déterminé dans le script d’init

LogFile=/usr/local/zabbix/var/log/zabbix_server.log
PidFile=/usr/local/zabbix/var/run/zabbix_server.pid

Puis les paramètres de BDD ( dans mon cas j’utilise une BDD externe)

DBHost=x.x.x.x
DBName=zabbixdb
DBUser=zabbixuser
DBPassword=zabbixuser_password

Vérifier que tout est OK en exécutant

/etc/init.d/zabbix_server start

Installation de l’agent zabbix

Rien de plus simple

./configure --enable-agent --prefix=/usr/local/zabbix
make install

On crée le script d’init comme pour la partie serveur.

/etc/init.d/zabbix_agentd

#!/bin/sh -e
#
# Zabbix Server init.d script.
#
# Written by Ludovic Valentin.
# Monitoring-fr.org.

PATH="/bin:/sbin:/usr/bin:/usr/sbin"

CONF_NAME=zabbix_agentd.conf
CONF=/usr/local/zabbix/etc/$CONF_NAME

DAEMON_NAME=zabbix_agentd
DAEMON=/usr/local/zabbix/sbin/$DAEMON_NAME
DAEMON_ARGS="-c $CONF"

SCRIPT_NAME=zabbix-agentd
SCRIPT=/etc/init.d/$SCRIPT_NAME
DESC="$DAEMON_NAME init.d script"
PID=/usr/local/zabbix/var/run/$DAEMON_NAME.pid

test -e $DAEMON || exit 0

. /lib/lsb/init-functions

zabbix_start () {
	log_daemon_msg "Starting $DAEMON_NAME"
	start-stop-daemon --start --pidfile $PID \
		--exec $DAEMON -- $DAEMON_ARGS
        log_end_msg $?
}

zabbix_stop () {
	log_daemon_msg "Stopping $DAEMON_NAME"
	start-stop-daemon --stop --pidfile $PID --name $DAEMON_NAME
	log_end_msg $?
}

case "$1" in

	start|stop)
		zabbix_${1}
	;;

	restart)
		zabbix_stop
		sleep 2
		zabbix_start
	;;

	force-stop)
		log_daemon_msg "Stopping $DAEMON_NAME"
                if [ -e $PID ]; then
                        killall -q $DAEMON_NAME
                        if [ -e $PID ]; then
                                rm -R $PID
                        fi
                        log_end_msg $?
                else
                        echo "No $PID found; none $DAEMON_NAME killed."
                fi
	;;

	status)
		log_daemon_msg "Checking $DAEMON_NAME status"
                if [ -e $PID ]; then
                        echo "Status: $DAEMON_NAME is running."
                else
                        echo "Status: $DAEMON_NAME is not running."
                fi
	;;

	*)
		log_daemon_msg $DESC
		echo "Usage: $SCRIPT {start/stop/restart/force-stop/status}"
		exit 1
	;;

esac

exit 0

Editons le fichier de configuration client /usr/local/zabbix/etc/zabbix_agentd.conf

LogFile=/usr/local/zabbix/var/log/zabbix_agentd.log
PidFile=/usr/local/zabbix/var/run/zabbix_agentd.pid
Server=IP_du_server
Hostname=Nom du serveur (client)

Pour tester il faut juste lancer le daemon .

Installation de la partie WEB

Il nous faudra d’abord installer les paquets suivants :

apt-get install apache2 php5 php5-gd php5-mysql

Évidemment php5-mysql dans le cas d’une bdd mysql .

On récupère les sources pour le frontend

mkdir /usr/local/zabbix/frontend
cp -R your/path/src/zabbix-/frontends/php/* /usr/local/zabbix/frontend

Configuration de votre serveur apache

Alias /zabbix /usr/local/zabbix/frontend/
<Directory /usr/local/zabbix/frontend>
	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>

L’interface zabbix est accessible par http://votre_IP/zabbix

Il faudra suivre les informations affichées à l’écran pour la suite rien de bien compliqué 🙂

Tableau avec les pré-requis .

zabbix_prerequis

Il vous reste plus qu’à prendre en main l’interface 🙂

SOURCES
https://www.zabbix.com/documentation/2.0/manual/installation/install
http://wiki.monitoring-fr.org/zabbix/zabbix-ubuntu-install
http://visitmetaj.blogspot.com/2013/06/install-zabbix-on-ubuntu-1004.html

Related posts

3 Thoughts to “Installation serveur Zabbix”

  1. Gilles

    Bonsoir

    vous avez parler de messages d’erreurs connus, sont pourtant parler de leurs résolution. Je pense qu’il serait intéressant de donner au moins des pistes de solution.

    Merci

  2. Salut ,

    Dans le chapitre erreurs connues il y a le message d’erreur et la ligne suivante il y a le fix qui est la correction .

    Je vais par contre rajouter que l’installation a été faites sur Debian Wheezy.

Leave a Comment