Vous êtes ici:

Menu

Stacks Image 36471
Attention, ces informations ne concernent des versions de Centreon-Broker assez anciennes.
Cet article présente la mise à jour d'une version de Centreon-Broker. On se basera sur une installation distribuée comprenant un serveur Central et un satellite avec un ordonnanceur Nagios et Centreon-Broker 2.4. La version de l'interface Centreon a déjà migré en 2.4. Nous commencerons par la mise à jour du serveur Central et nous terminerons par la mise à jour du serveur Satellite.
Je vous déconseille de migrer Centreon-Broker 2.4 avant Centreon 2.4 pour des problèmes de données de performances que j'ai rencontrés.
Avant la mise à jour, nous allons préparer cette migration en nous rapprochant le plus possible de l'installation de Centreon-Broker 2.4 en ce qui concerne les scripts et l'utilisateur système. Nous en profiterons pour mettre en place les statistiques et le mécanisme de failover.

1 Modification des scripts de démarrage

1.1 Modification du Poller Central

Nous allons utiliser les scripts de Centreon-Broker 2.4. De cette façon, nous utiliserons un seul script pour démarrer nos processus distincts broker et rrd. Nous commencerons à modifier l'emplacement des fichiers de configuration de Centreon-Broker sur le serveur Central.
Dans l'interface WEB, sélectionnez Configuration / Centreon / Pollers
script_cbd_01
Modifier le paramètre Centreon Broker configuration path avec le nouveau chemin.
/usr/local/centreon-broker/etc

script_cbd_02
C'est le user système d'apache qui exporte les fichiers de configuration, vérifiez les droits du dossier et apportez les modifications suivantes le cas échéant :
chown nagios:nagios /usr/local/centreon-broker/etc
chmod 775 /usr/local/centreon-broker/etc

script_cbd_02a
Exporter la configuration de Centreon.

1.2 Création du script cbd

Créons le fichier de paramétrage du script cbd /etc/default/cbd
# Configuration for /etc/init.d/cbd

# If run cbd at startup default: YES
RUN_AT_STARTUP="YES"

# Centreon Broker user : default centreon-broker
USER="nagios"

Nous utiliserons l'utilisateur système nagios.Créons le script /etc/init.d/cbd
#!/bin/sh
##
## Copyright 2009-2012 Merethis
##
## This file is part of Centreon Broker.
##
## Centreon Broker is free software: you can redistribute it and/or
## modify it under the terms of the GNU General Public License version 2
## as published by the Free Software Foundation.
##
## Centreon Broker is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
## General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with Centreon Broker. If not, see
## <http://www.gnu.org/licenses/>.
##

#
# Script init
#
### BEGIN INIT INFO
# Provides: bcd
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon bcd at boot
# Description: Enable service provided Centreon Broker
### END INIT INFO


PKGNAME=cbd
DESC="Centreon Broker"
DAEMON="/usr/local/centreon-broker/bin/cbd"
PID_PATH="/var/run"
MASTER_FILE="/usr/local/centreon-broker/etc/master.run"
CONFIG_DIR="/usr/local/centreon-broker/etc"

# Check that bcd is executable.
if [ ! -x "${DAEMON}" ] ; then
echo "The bcd binary can't be run."
exit 3
fi

# Check that configuration file exists.
if [ ! -e "${MASTER_FILE}" ] ; then
echo "The master file isn't found."
exit 3
fi

# Include the default user configuration if exists
[ -r /etc/default/${PKGNAME} ] && . /etc/default/${PKGNAME}

# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

if [ -z "${RUN_AT_STARTUP}" -o "${RUN_AT_STARTUP}" != "YES" ]; then
log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it."
exit 0
fi

if [ -z "${USER}" ]; then
log_warning_msg "Not starting $PKGNAME, USER not set in /etc/default/$PKGNAME."
exit 0
fi

# Start cbd.
do_start()
{
cat ${MASTER_FILE} | grep -v '^#'| while read line; do
global_retval=0
daemon_name="cbd_$(echo ${line} | awk '{ print $1 }')"
daemon_config="${CONFIG_DIR}/$(echo ${line} | awk '{ print $2 }')"
running="$(echo ${line} | awk '{ print $3 }')"
pidfile="${PID_PATH}/${daemon_name}.pid"
if [ "${running}" = "y" ]; then
[ "${VERBOSE}" != "no" ] && log_daemon_msg "Starting ${daemon_name}" "${PKGNAME}"
start-stop-daemon --start --background --quiet --pidfile ${pidfile} --exec ${DAEMON} \
--chuid ${USER} --user ${USER} --test
[ "$?" = "0" ] || global_retval=1
start-stop-daemon --start --background --quiet --pidfile ${pidfile} --exec ${DAEMON} \
--make-pidfile --chuid ${USER} --user ${USER} -- ${daemon_config}
[ "$?" = "0" ] || global_retval=2
case "${global_retval}" in
0|1) [ "${VERBOSE}" != "no" ] && log_end_msg 0 ;;
2) [ "${VERBOSE}" != "no" ] && log_end_msg 1 ;;
esac
fi
done
return ${global_retval}
}

# Stop cbd.
do_stop()
{
cat ${MASTER_FILE} | grep -v '^#'| while read line; do
global_retval=0
daemon_name="cbd_$(echo ${line} | awk '{ print $1 }')"
daemon_config="${CONFIG_DIR}/$(echo ${line} | awk '{ print $2 }')"
running="$(echo ${line} | awk '{ print $3 }')"
pidfile="${PID_PATH}/${daemon_name}.pid"
if [ "${running}" = "y" ]; then
[ "${VERBOSE}" != no ] && log_daemon_msg "Restarting ${daemon_name}" "${PKGNAME}"
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user ${USER} --pidfile ${pidfile}
[ "$?" = "2" ] && global_retval=2
rm -f ${pidfile}
[ "$?" = "0" ] || global_retval=1
case "${global_retval}" in
0|1) [ "${VERBOSE}" != "no" ] && log_end_msg 0 ;;
2) [ "${VERBOSE}" != "no" ] && log_end_msg 1 ;;
esac
fi
done
}

# Send kill HUP
do_reload()
{
cat ${MASTER_FILE} | grep -v '^#'| while read line; do
daemon_name="cbd_$(echo ${line} | awk '{ print $1 }')"
daemon_config="${CONFIG_DIR}/$(echo ${line} | awk '{ print $2 }')"
running="$(echo ${line} | awk '{ print $3 }')"
reload="$(echo ${line} | awk '{ print $4 }')"
pidfile="${PID_PATH}/${daemon_name}.pid"
if [ "${running}" = "y" -a "${reload}" = "y" ]; then
[ "${VERBOSE}" != no ] && log_daemon_msg "Reloading ${daemon_name}" "${PKGNAME}"
start-stop-daemon --stop --quiet --signal=HUP --user ${USER} --pidfile ${pidfile}
case "$?" in
0|1) [ "${VERBOSE}" != "no" ] && log_end_msg 0 ;;
2) [ "${VERBOSE}" != "no" ] && log_end_msg 1 ;;
esac
fi
done
}

# Status
status_all()
{
cat ${MASTER_FILE} | grep -v '^#'| while read line; do
daemon_name="cbd_$(echo ${line} | awk '{ print $1 }')"
daemon_config="${CONFIG_DIR}/$(echo ${line} | awk '{ print $2 }')"
running="$(echo ${line} | awk '{ print $3 }')"
pidfile="${PID_PATH}/${daemon_name}.pid"
if [ "${running}" = "y" ]; then
status_of_proc ${DAEMON} ${daemon_name} -p ${pidfile}
fi
done
}

# Switch case.
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart)
do_stop
do_start
;;
reload)
do_reload
;;
status)
status_all
;;
*)
echo "Usage: ${daemon_name} {start|stop|restart|status}"
exit 3
esac

Appliquons les droits d'exécution et automatisons le script.
chmod +x /etc/init.d/cbd
update-rc.d cbd defaults

Maintenant, il faut créer le script qui dupliquera les processus cbd. Ce fichier s'appelle master.run et est situé dans /usr/local/centreon-broker/etc
## This file define the Centreon Broker daemons to start
# Example :
# central-cbd central-cbd.xml y y
# central-rrd central-rdd.xml y n
#
# The first line the daemon central-cbd is started with start action from
# /etc/init.d/cbd and it's reload by action reload of init script
#
# The second line the daemon central-rrd is started but it is not reload by
# action in /etc/cbd reload
#
#
# daemon_name daemon_config running reload
central-broker central-broker.xml y y
central-rrd central-rrd.xml y y

Appliquez les droits nécessaire à la bonne marche des scripts.
chmod 775 /usr/local/centreon-broker/etc/master.run
chown nagios:nagios /usr/local/centreon-broker/etc/master.run

1.3 Modification du redémarrage du script par Centreon

Il faut modifier le paramètre de sudo pour permettre le rechargement de la configuration du Broker par l'interface de Centreon. Modifier les lignes contenant broker pour arriver à ces lignes ci-dessous. Lancez visudo.
# Broker engine Restart
CENTREON ALL = NOPASSWD: /etc/init.d/cbd* restart
CENTREON ALL = NOPASSWD: /etc/init.d/cbd restart
# Broker engine reload
CENTREON ALL = NOPASSWD: /etc/init.d/cbd* reload
CENTREON ALL = NOPASSWD: /etc/init.d/cbd reload

Rechargez la configuration de sudo.
service visudo restart

Il faudra modifier la configuration du paramètre Start script for broker daemon dans le menu Administration / Options / Monitoring
script_cbd_03
/etc/init.d/cbd

1.4 Mise en service du script

Arrêtons les anciens scripts et supprimons le démarrage automatique.
service broker stop
service rrd stop
update.rc-d rrd remove
update-rc.d broker remove

Avant de démarrer le nouveau script, vérifier que l'utilisateur nagios ai les droits d'écriture sur les logs de Centreon-Broker, les métriques, les fichiers statistiques et les fichiers fail-over. Par exemple, les logs ont été créés avec l'utilisateur root, mettre les droits pour nagios car les services broker et rrd ne pourront pas démarrer.
chown nagios:nagios /usr/local/centreon/log/central-*

Ensuite, redémarrer le nouveau service.
service cbd start

vérifier le fonctionnement
ps aux | grep cbd

nagios 7965 0.1 3.7 71612 9500 ? Sl 07:43 0:00 /usr/local/centreon-broker/bin/cbd
/usr/local/centreon-broker/etc/central-broker.xml
nagios 7985 0.0 3.1 46236 7944 ? Sl 07:43 0:00 /usr/local/centreon-broker/bin/cbd
/usr/local/centreon-broker/etc/central-rrd.xml

2 Serveur Central

2.1 Pré Requis

Tout d'abord, Il faudra créer un groupe système et un compte utilisateur système centreon-broker
groupadd -g 999 centreon-broker
useradd -u 999 -g centreon-broker -m -r -d /var/lib/centreon-broker -c "Centreon-broker Admin" centreon-broker

le user Apache devra être membre du groupe centreon-broker pour ajouter la configuration du broker. Relancez le service Web.
usermod -aG centreon-broker www-data
service apache2 restart

Comme nous utilisons Nagios comme ordonnanceur, il devra être membre du groupe centreon-broker pour pour pouvoir créer le fichier de log de central-module.
usermod -aG centreon-broker nagios

L'utilisateur système centreon-broker devra faire parti du groupe nagios pour qu'il puisse écrire les données de performances dans les RRD.
usermod -aG nagios centreon-broker

2.2 Installation

Téléchargez le binaire dans le dossier /usr/local/src et décompressez-le.
cd /usr/local/src
tar xzf centreon-broker-2.4.0.tar.gz
cd centreon-broker-2.4.0/build/

Préparons la compilation.
cmake \
-DWITH_DAEMONS='central-broker;central-rrd' \
-DWITH_GROUP=centreon-broker \
-DWITH_PREFIX=/usr/local/centreon-broker \
-DWITH_STARTUP_DIR=/etc/init.d \
-DWITH_STARTUP_SCRIPT=auto \
-DWITH_TESTING=0 \
-DWITH_USER=centreon-broker .

Extrait du résultat
-- Configuration Summary
-- ---------------------
--
-- Project
-- - Name Centreon Broker
-- - Version 2.4.0
--
-- System
-- - Name Linux
-- - Version 2.6.32-5-686
-- - Processor i686
--
-- Build
-- - Compiler /usr/bin/c++ (GNU)
-- - Extra compilation flags
-- - Qt 4.6.3
-- - Unit tests disabled
-- - Startup script sysv
--
-- Install
-- - Prefix /usr/local/centreon-broker
-- - Binary prefix /usr/local/centreon-broker/bin
-- - Library prefix /usr/local/centreon-broker/lib
-- - Modules prefix /usr/local/centreon-broker/lib/centreon-broker
-- - Include prefix /usr/local/centreon-broker/include/centreon-broker
-- - Configuration prefix /usr/local/centreon-broker/etc
-- - Startup dir /etc/init.d
-- - User centreon-broker
-- - Group centreon-broker
-- - Package None
--
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/centreon-broker-2.4.0/build

Ensuite compilons cette configuration et installons dans le dossier /usr/local
make
make install

Les ligne suivantes :
chown: impossible d'accéder à «  »: Aucun fichier ou dossier de ce type

ne sont pas graves et seront corrigées dans la prochaine version. Terminons par la création des droits et l'application des droits sur certains dossiers
chown centreon-broker:centreon-broker /usr/local/centreon-broker
chown centreon-broker:centreon-broker /usr/local/centreon-broker/bin
chown centreon-broker:centreon-broker /usr/local/centreon-broker/lib
chown centreon-broker:centreon-broker /usr/local/centreon-broker/lib/centreon-broker
chown centreon-broker:centreon-broker /usr/local/centreon-broker/etc
chmod 775 /usr/local/centreon-broker/etc
chmod 775 /var/lib/centreon-broker

Créons le dossier pour les logs de Centreon-broker
mkdir /var/log/centreon-broker
chown centreon-broker:centreon-broker /var/log/centreon-broker
chmod 775 /var/log/centreon-broker

L'installation de Centreon-Broker est terminée, il faut effectuer la mise à jour de Centreon UI.

3 Serveur Satellite

Le but de l'installation est de compiler la librairie faisant le lien entre le l'ordonnanceur et le broker du serveur Central. Nous n'avons pas besoin de créer un utilisateur spécifique pour le processus Centreon-Broker.
Téléchargez le binaire dans le dossier /usr/local/src et décompressez-le.
cd /usr/local/src
tar xzf centreon-broker-2.4.0.tar.gz
cd centreon-broker-2.4.0/build/

Préparons la compilation.
cmake \
-DWITH_DAEMONS='central-broker;central-rrd' \
-DWITH_GROUP=nagios \
-DWITH_PREFIX=/usr/local/centreon-broker \
-DWITH_STARTUP_DIR=/etc/init.d \
-DWITH_STARTUP_SCRIPT=no \
-DWITH_TESTING=0 \
-DWITH_USER=nagios .

Compilez et installez
make
make install

L'installation est terminée pour le serveur satellite, il faut effectuer la mise à jour de Centreon UI.
comments powered by Disqus