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

Cet article Installation serveur Zabbix est apparu en premier sur Guest Blog.

Vus : 2376
Publié par lmns972 : 24