Centreon 2.4.5 Añadir nuevo poller o satélite (debian 7)

Nagios empieza a tener mucha carga, y queremos usar otros poller desde otras subredes. Por ello, nos hace falta crear nuevas máquinas, y añadirlas para gestionarlas de forma unificada desde Centreon.

Vamos a seguir la arquitectura distribuida de centreon, basándonos en este tutorial de linux.org

AVISO: Aún no lo hemos logrado configurar.

Os recomiendo seguir el foro de centreon, para lograr configurar esto. Y, por supuesto, los comentarios están abiertos para que nos enviéis sugerencias y correcciones.

Configuración en el Satélite (debian 7). Acceso vía SSH

En el nuevo poller, damos un home a los usuarios nagios y centreon, y capacidad de bash

root@poller:~# grep nagios  /etc/passwd
nagios:x:102:121::/var/lib/nagios:/bin/bash

Creamos un usuario centreon con grupo nagios. Es el usuario que

  centreon:x:1001:1001:,,,:/home/centreon:/bin/bash

Configuramos SUDO para nagios y centreon

visudo:

User_Alias CENTREON=nagios,centreon
CENTREON ALL=NOPASSWD: /etc/init.d/nagios restart
CENTREON ALL=NOPASSWD: /etc/init.d/nagios stop
CENTREON ALL=NOPASSWD: /etc/init.d/nagios start
CENTREON ALL=NOPASSWD: /etc/init.d/nagios reload
CENTREON ALL=NOPASSWD: /usr/bin/nagiostats
CENTREON ALL=NOPASSWD: /usr/local/etc/bin/nagios *

Si no creamos este usuario, sale repetitivamente siguiente error de autenticación en /var/log/auth. Según el manual de centreon, es suficiente con tener un usuario nagios en los poller, pero, nuestra experiencia, dice que necesita también el usuario centreon:

Dec 13 08:19:15 poller sshd[14233]: Connection closed by centreon_ip [preauth]
Dec 13 08:21:02 poller sshd[14242]: Invalid user centreon from centreon_ip
Dec 13 08:21:02 poller sshd[14242]: input_userauth_request: invalid user centreon [preauth]

Instalamos centreon broker en el poller, para la comunicación desde Centreon. La instalación del broker, está mucho más detallada en la web de centreon.

apt-get install build-essential cmake
apt-get install librrd-dev
apt-get install libqt4-dev libqt4-sql-mysql
apt-get install libgnutls-dev  libgnutls26
cd centreon-broker/build
cmake \
-DWITH_DAEMONS='central-broker;central-rrd' \
-DWITH_GROUP=centreon-broker \
-DWITH_PREFIX=/usr \
-DWITH_PREFIX_BIN=/usr/sbin \
-DWITH_PREFIX_CONF=/etc/centreon-broker \
-DWITH_PREFIX_INC=/usr/include/centreon-broker \
-DWITH_PREFIX_LIB=/usr/lib/nagios3 \
-DWITH_PREFIX_MODULES=/usr/share/centreon/lib/centreon-broker \
-DWITH_STARTUP_DIR=/etc/init.d \
-DWITH_STARTUP_SCRIPT=auto \
-DWITH_TESTING=0 \
-DWITH_USER=centreon-broker
make install
# Start service:
adduser centreon-broker
service cbd start

Tenemos que agregar el usuario centreon-broker para evitar esto:

service cbd start
[....] Starting cbd_central-broker: cbdstart-stop-daemon: user 'centreon-broker' not found
start-stop-daemon: user 'centreon-broker' not found
failed!

Tiene que iniciar:


root@poller:~/src/centreon-broker/build# service cbd start
[ ok ] Starting cbd_central-broker: cbd.
[ ok ] Starting cbd_central-rrd: cbd.

Verificamos las rutas de centreon broker, para asegurar que está bien instalado:

 

Como nuestro satélite es debian, y por problemas con nagvis, vamos a usar mklivestatus, en vez de ndomod. Recomendamos leer <a href=”http://mathias-kettner.de/checkmk_livestatus.html”>este artículo </a>de Matthias Kettner.

Instalamos mklive  y su socket (en nuestra instalación no se creó de forma automática).

apt-get install check-mk-livestatus
mkfifo /var/log/nagios3/rw/live
chown nagios:nagios /var/log/nagios3/rw/live

Probamos desde nagios, la comunicación con mklivestatus

root@poller:~# grep broker /etc/nagios3/nagios.cfg
broker_module=/usr/lib/check_mk/livestatus.o /var/log/nagios3/rw/live
event_broker_options=-1

En nagios.log

Sin embargo, sí vamos a instalar ndoutils

Centreon. SSH

Creamos para nagios una clave asimétrica y se la pasamos al nuevo poller o satélite:

nagios@centreon:~#  ssh-keygen
nagios@centreon:~#  chmod 600 id_rsa

# Copiamos para nagios y para usuario centreon:
nagios@centreon:~#  ssh-copy-id  -i id_rsa.pub nagios@poller
nagios@centreon:~#  ssh-copy-id  -i id_rsa.pub centreon@poller
# Prueba de la conexión:
nagios@centreon:~#  ssh nagios@poller
nagios@centreon:~#  ssh centreon@poller

Pasamos todos los plugins al satélite:

scp /usr/local/nagios/libexec/* nagios@{IP_ADDRESS}:/usr/local/nagios/libexec/

Centreon GUI

Creamos el poller

Esta es la configuración del poller para debian 7.1

 

Creamos el ndomod, con su ip, y habilitado

Creamos el nuevo nagios.cfg

Es importante verificar todas las rutas de archivos.

En nuestro caso, al ser el satélite Debian 7, necesitamos que todas las rutas hagan referencia a nagios3.

Además, configuramos el broker, para usar mklive.

Cambiamos los permisos de /var/nagios/spool/checkresults, para evitar el errorde permisos durante “Run monitoring engine debug (-v)”

Error Unable to write to check_result_path (‘/var/nagios/spool/checkresults’) – Permission denied.

 

root@central# chmod 777 /var/nagios/spool/checkresults

Nagios Centreon sobre CentOS 6.4

Versión de Centreon:  centreon-2.4.4.tar.gz

Versión de nagios: Nagios 3.2.3

Versión de Centos: 6.4 x64

El contenido de este post, completa algunos de los errores que hemos encontrado al seguir esta estupenda guía:

http://www.thesysadminhimself.com/2013/02/installing-centreon-24-on-centos-63-x64-part-2.html

Aún así, debemos advertiros que no es fácil hacer funcionar centreon sobre una versión de Centos superior a 5. Animamos al equipo de centreon, con la versión 2.5 a la vuelta de la esquina, para que ya suban de versión de Centos.

Fichero de respuestas para install:

Basándonos en el fichero que propone thesysadminhimself, hemos hecho nuestro propio archivo, con las rutas propias para Centreon 2.4.4 sobre Centos 6.4

Aún así, nos ha hecho dos preguntas, una sobre RRDs.pm y otra sobre PEAR.php, pero ha sido mucho más fácil de instalar.


## CentWeb: Web front Centreon for Nagios
PROCESS_CENTREON_WWW=1
## CentStorage: Log and charts archiving.
PROCESS_CENTSTORAGE=1
## CentCore: Distributed Monitoring engine.
PROCESS_CENTCORE=1
## CentPlugins: Centreon Plugins for nagios
PROCESS_CENTREON_PLUGINS=1
## CentTraps: Centreon Snmp traps process for nagios
PROCESS_CENTREON_SNMP_TRAPS=1

#####################################################################
## Begin: Default variables
#####################################################################
## Your default variables
## $BASE_DIR is the centreon source directory
LOG_DIR=”$BASE_DIR/log”
LOG_FILE=”$LOG_DIR/install_centreon.log”

## Don’t change values above unless you perfectly understand
## what you are doing.
## Centreon temporary directory to work
TMP_DIR=”/tmp/centreon-setup”
## default snmp config directory
SNMP_ETC=”/etc/snmp/”
## a list of pear modules require by Centreon
PEAR_MODULES_LIST=”pear.lst”
#####################################################################
## End: Default variables
##################################################################

#####################################################################
## Begin: Centreon preferences
#####################################################################
## Above variables are necessary to run a silent install
## Where you want to install Centreon (Centreon root directory)
INSTALL_DIR_CENTREON=”/usr/local/centreon”
## Centreon log files directory
CENTREON_LOG=”/usr/local/centreon/log”
## Centreon config files
CENTREON_ETC=”/etc/centreon”
## Where is your Centreon binaries directory ?
CENTREON_BINDIR=”/usr/local/centreon/bin”
## Where is your Centreon data informations directory ?
CENTREON_DATADIR=”/usr/local/centreon/data”
## Centreon generation config directory
##  filesGeneration and filesUpload
## Where is your Centreon generation_files directory ?
CENTREON_GENDIR=”/usr/local/centreon”
## libraries temporary files directory
## Where is your Centreon variable library directory ?
CENTREON_VARLIB=”/var/lib/centreon”
## Where is your CentPlugins Traps binary?
CENTPLUGINSTRAPS_BINDIR=”/usr/local/centreon/bin”
## Where is the RRD perl module installed [RRDs.pm]
## ATTENTION: ON x64 SYSTEMS THE PATH IS LIB64 INSTEAD OF LIB
##               vv
RRD_PERL=”/usr/lib64/perl5/RRDs.pm”
## What is the Centreon group ?
CENTREON_GROUP=”centreon”
## What is the Centreon user ?
CENTREON_USER=”centreon”
## What is the Monitoring engine user ?
MONITORINGENGINE_USER=”nagios”
## What is the Monitoring engine group ?
MONITORINGENGINE_GROUP=”nagios”
## What is the Monitoring engine log directory ?
MONITORINGENGINE_LOG=”/var/log/nagios”
## Where is your monitoring plugins (libexec) directory ?
PLUGIN_DIR=”/usr/lib64/nagios/plugins/”
## Path to sudoers file (optional)
## Where is sudo configuration file
SUDO_FILE=”/etc/sudoers”
## What is the Monitoring engine init.d script ?
MONITORINGENGINE_INIT_SCRIPT=”/etc/init.d/nagios”
## What is the Monitoring engine binary ?
MONITORINGENGINE_BINARY=”/usr/bin/nagios”
## What is the Monitoring engine configuration directory ?
MONITORINGENGINE_ETC=”/etc/nagios”
## Where is the configuration directory for broker module ?
BROKER_ETC=”/etc/nagios”
## Where is the init script for broker module daemon ?
BROKER_INIT_SCRIPT=”/etc/init.d/ndoutils”
## Do you want me to configure your sudo ? (WARNING)
FORCE_SUDO_CONF=1

#####################################################################
## Begin: Apache preferences
#####################################################################
## Apache configuration directory (optional)
#DIR_APACHE=”/etc/apache”
## Apache local specific configuration directory (optional)
## Do you want to update Centreon Apache sub configuration file ?
# DIR_APACHE_CONF=”/etc/apache/conf.d”
## Apache configuration file. Only file name. (optional)
#APACHE_CONF=”apache.conf”
## Apache user (optional)
WEB_USER=”apache”
## Apache group (optional)
WEB_GROUP=”apache”
## Force apache reload (optional): set APACHE_RELOAD to 1
## Do you want to reload your Apache ?
APACHE_RELOAD=1
#####################################################################
## End: Apache preferences
#####################################################################

## Do you want me to install/upgrade your PEAR modules
PEAR_AUTOINST=1
## Centreon run dir (all .pid, .run, .lock)
## Where is your Centreon Run Dir directory?
CENTREON_RUNDIR=”/var/run/centreon”

## path to centstorage binary
## Where is your CentStorage binary directory
CENTSTORAGE_BINDIR=”/usr/local/centreon/bin”
## CentStorage RRDs directory (where .rrd files go)
## Where is your CentStorage RRD directory
CENTSTORAGE_RRD=”/var/lib/centreon”
## Do you want me to install CentStorage init script ?
CENTSTORAGE_INSTALL_INIT=1
## Do you want me to install CentStorage run level ?
CENTSTORAGE_INSTALL_RUNLVL=1

## path to centcore binary
CENTCORE_BINDIR=”usr/local/centreon/bin”
## force install init script (install in init.d)
## Set to “1” to enable
## Do you want me to install CentCore init script ?
CENTCORE_INSTALL_INIT=1
## force install run level for init script (add all link on rcX.d)
## Set to “1” to enable
## Do you want me to install CentCore run level
CENTCORE_INSTALL_RUNLVL=1

## Some plugins require temporary datas to process output.
## These temp datas are store in the CENTPLUGINS_TMP path.
## Where is your CentPlugins lib directory
CENTPLUGINS_TMP=”/var/lib/centreon/centplugins”

## path for snmptt installation
SNMPTT_BINDIR=”/usr/local/centreon/bin/”
## What is the Broker user ? (optional)
BROKER_USER=$MONITORINGENGINE_USER

## Nagios user (optional)
NAGIOS_USER=”nagios”
## Nagios group (optional)
NAGIOS_GROUP=”nagios”
## Centreon Connector PATH
## Mail (optional)
BIN_MAIL=”/bin/mail”
##
Error: Tras instalar, en centreon no se detecta Poller.

Configuration  Centreon  Pollers

En la columna “is running” se queda en rojo, y pone NO.

Solución:

Revisar en el inicio de nagios (service nagios restart) que no haya problemas de permisos o de rutas para el fichero nagios.cmd:

 /var/log/nagios/rw/nagios.cmd

Error: la información de nagios no está en centreon para su consulta

  • Revisar que se esté llenando , y vaciando service-perfdata:

tail -f  /var/log/nagios/service-perfdata

  • Revisar la configuración en nagios.cfg en centreon:

Configuration  Centreon  Pollers

Seleccionamos Central y revisamos que Perfdata file apunte a nuestro archivo de service-perfdata.

  • Revisar la configuración en Centreon de Configuration  Monitoring Engines  main.cfg

Seleccionamos la pestaña Data y los Service Performance Data Processing Command deben contener process-service-perfdata

Exportar configuración de nagios

  • Revisar en Centreon que los commands de perfdata estén en el apartado MISC  Configuration  Commands  Checks

Exportar configuración de nagios

  • Revisar que  ndoutils tenga conexión con su destino de datos:

tail -f /var/log/nagios/nagios.log

[1378717388] ndomod: Error writing to data sink!  Some output may get lost…

 

  • Revisar que ndoutils esté guardando su información en la tabla centreon_Status.

Primero, verificamos que se esté guardando la información de los propios hosts: SELECT * FROM `nagios_hosts` WHERE 1

Después, verificamos que se vierta en tiempo real la información del estado: SELECT * FROM `nagios_hoststatus` WHERE 1

 

Error: Al exportar da un error de tty

[ – ] Central
sudo: no tty present and no askpass program specified

El problema viene por la configuración en /etc/sudoers. Al ver el log de secure, vemos unas líneas como:

Oct 21 12:55:16 localhost sudo: pam_unix(sudo:auth): conversation failed
Oct 21 12:55:16 localhost sudo: pam_unix(sudo:auth): auth could not identify password for [apache]
Oct 21 12:55:16 localhost sudo:   apache : command not allowed ; TTY=unknown ; PWD=/usr/local/centreon/www ; USER=root ; COMMAND=/usr/bin/nagios -v /usr/local/centreon/filesGeneration/nagiosCFG/1/nagiosCFG.DEBUG

Verificamos en el archivo de sudoers, que la ruta de nagios, coincida realmente con la ruta donde está nuestro ejecutable de nagios.

En el caso de Centos 6.5:

CENTREON   ALL = NOPASSWD: /usr/bin/nagios* -v *
CENTREON   ALL = NOPASSWD: /usr/bin/nagios -v *
CENTREON   ALL = NOPASSWD: /usr/bin/nagios* -s *
CENTREON   ALL = NOPASSWD: /usr/bin/nagios -s *

Para usar Check_centreon_ping

check_centreon_ping!3!50,80%!100,50%