martes, 10 de agosto de 2010

Centreon 2.1.9 y Nagios 3.2.1 en Ubuntu 10.04 LTS Server

ACTUALIZACIÓN 10 Ago 2010: Corrección de algunos aspectos de compilación y creación de scripts de inicio de runlevels y algunos errores.
ACTUALIZACIÓN 12 Ago 2010: Añadida nota al final sobre error de NDOUTILS, se ha corregido la parte de NDOUTILS para que use correctamente el socket TCP.
Actualización de la importación de ficheros de configuración.

Vamos a ver como instalar le herramienta de monitorización Nagios y la herramienta de configuración gráfica Centreon para que la gestión de Nagios sea algo sencillo.

Nagios nos permite monitorizar cualquier equipo que tengamos conectado a la red (GNU\Linux, MS Windows, routers, etc.) y enviar alertas cuando pase algún problema (caídas de equipos, rebase de límites de almacenamiento...)

Usaremos una máquina virtual con VirtualBox 3.2.6. Partimos de una instalación ubuntu server 10.04 LTS de 64 bits básica con openssh server y los repositorios de partners y backports descomentados. Además hemos instalado vim y wget y lo hemos actualizado completamente a día 9 de Agosto de 2010, lo que implica el kernel 2.6.32-24.39. La IP del servidor es 192.168.1.10 y lo llamamos ubults6400.

Paquetes a instalar para Nagios 3.2.1

Para instalar Nagios 3 descargamos la última versión estable, los plugins de nagios y ndoutils. Si solo quisiéramos nagios, sin centreon, lo mejor sería instalar la versión nagios que viene con la distribución (3.2.0) mediante apt ya que viene integrada, pero, como vamos a usar centreon, la compilaremos e instalaremos desde los paquetes para que use los directorios estándar de nagios.

fjbejarano@ubults6400:~$ pwd
/home/fjbejarano
fjbejarano@ubults6400:~$ mkdir nagiossrc
fjbejarano@ubults6400:~$ cd nagiossrc/
fjbejarano@ubults6400:~/nagiossrc$ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
fjbejarano@ubults6400:~/nagiossrc$ wget http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz/download
fjbejarano@ubults6400:~/nagiossrc$ wget http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz

Instalamos los paquetes necesarios para Nagios 3

$ sudo aptitude install apache2 bsd-mailx fancontrol gawk libapr1 libaprutil1  libaprutil1-dbd-sqlite3 libaprutil1-ldap libgd2-noxpm libjpeg62 libmysqlclient16 libnet-snmp-perl libperl5.10 libpq5 libradius1 libsensors4 libsnmp-base libsnmp15 libtalloc2 libwbclient0 lm-sensors postfix radiusclient1 samba-common libgd2-xpm-dev build-essential gcc-multilib libapache2-mod-php5 mysql-server mysql-client libmysqlclient-dev dnsutils fping libssl-dev libldap2-dev libpq-dev

Esto instalará muchas dependencias y servidores apache2, mysql o postfix entre otros.

Introducimos la contraseña del usuario root mysql cuando la pida.

En postfix, elegimos sitio de internet cuando lo pida. Yo he dejado el dominio de postfix por defecto (o lo configuramos a nuestro gusto).

Creamos un usuario y grupo para nagios.

$ sudo groupadd nagios
$ sudo groupadd nagcmd
$ sudo useradd -m -s /bin/bash -c "Usuario de Nagios" -g nagios -G nagios,nagcmd nagios
$ sudo passwd nagios
Introduzca la nueva contraseña de UNIX: 
Vuelva a escribir la nueva contraseña de UNIX: 
passwd: password updated successfully
$ sudo usermod -a -G nagcmd www-data

El grupo nagcmd es para que se puedan añadir comandos externos a través de la interfaz web. Añadimos el usuario nagios y el usuario de apache2 (www-data) al grupo.

Descomprimimos, compilamos e instalamos Nagios 3.2.1

$ pwd
/home/fjbejarano/nagiossrc
$ tar -xzf nagios-3.2.1.tar.gz
$ cd nagios-3.2.1/
$ sudo ./configure --prefix=/usr/local/nagios --with-command-group=nagcmd --enable-nanosleep --enable-event-broker

...
Creating sample config files in sample-config/ ...


*** Configuration summary for nagios 3.2.1 03-09-2010 ***:

 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagcmd
            Embedded Perl:  no
             Event Broker:  yes
        Install ${prefix}:  /usr/local/nagios
                Lock file:  ${prefix}/var/nagios.lock
   Check result directory:  ${prefix}/var/spool/checkresults
           Init directory:  /etc/init.d
  Apache conf.d directory:  /etc/apache2/conf.d
             Mail program:  /usr/bin/mail
                  Host OS:  linux-gnu

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP):  


Review the options above for accuracy.  If they look okay,
type 'make all' to compile the main program and CGIs.

Como vemos, nagios se instalará en /usr/local/nagios y tendrá los archivos de configuración, plugins y demás en este directorio y subdirectorios. Los usaremos en centreon. Como pone en negrita, si todo ha ido bien, compilamos e instalamos. También vemos que tiene Event Broker activado, esto es necesario para la instalación posterior de ndoutils.

$ sudo make all
...
*** Compile finished ***

If the main program and CGIs compiled without any errors, you
can continue with installing Nagios as follows (type 'make'
without any arguments for a list of all possible options):

  make install
     - This installs the main program, CGIs, and HTML files

  make install-init
     - This installs the init script in /etc/init.d

  make install-commandmode
     - This installs and configures permissions on the
       directory for holding the external command file

  make install-config
     - This installs *SAMPLE* config files in /usr/local/nagios/etc
       You'll have to modify these sample files before you can
       use Nagios.  Read the HTML documentation for more info
       on doing this.  Pay particular attention to the docs on
       object configuration files, as they determine what/how
       things get monitored!

  make install-webconf
     - This installs the Apache config file for the Nagios
       web interface

$ sudo make install && sudo make install-init && sudo make install-commandmode && sudo make install-config && sudo make install-webconf

Con esto hemos instalado los binarios y archivos de configuración de nagios.

Creamos el usuario "nagiosadmin" que es con el que accederemos a la interfaz web de nagios. Para ellos usamos la utilidad htpasswd para crear un fichero (-c) de usuarios de nagios para apache. Este archivo lo hemos creado con ese nombre y en esa ruta porque es el nombre y la ruta por defecto que usa el archivo /etc/apache2/conf.d/nagios.conf para buscar los usuarios. Reiniciamos apache2. Y añadimos el script de inicio nagios a los runlevels correspondientes y modificamos /usr/local/nagios/etc/contatcs.cfg y ponemos el mail donde queremos que envíe las alertas (linea en negrita). Ponemos los permisos.

$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password: 
Re-type new password: 
Adding password for user nagiosadmin
$ sudo service apache2 restart
$ sudo update-rc.d nagios defaults
update-rc.d: warning: /etc/init.d/nagios missing LSB information
update-rc.d: see 
 Adding system startup for /etc/init.d/nagios ...
   /etc/rc0.d/K20nagios -> ../init.d/nagios
   /etc/rc1.d/K20nagios -> ../init.d/nagios
   /etc/rc6.d/K20nagios -> ../init.d/nagios
   /etc/rc2.d/S20nagios -> ../init.d/nagios
   /etc/rc3.d/S20nagios -> ../init.d/nagios
   /etc/rc4.d/S20nagios -> ../init.d/nagios
   /etc/rc5.d/S20nagios -> ../init.d/nagios

$ sudo vim /usr/local/nagios/etc/objects/contacts.cfg

# Just one contact defined by default - the Nagios admin (that's you)
# This contact definition inherits a lot of default values from the 'generic-contact' 
# template which is defined elsewhere.

define contact{
        contact_name                    nagiosadmin             ; Short name of user
        use                             generic-contact         ; Inherit default values from generic-contact template (defined above)
        alias                           Nagios Admin            ; Full name of user

     email                           fjbejarano@localhost    ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
        }

Instalación de los plugins de Nagios

Compilamos e instalamos los plugins de nagios

$ cd ..
fjbejarano@ubults6400:~/nagiossrc$ tar -xzf nagios-plugins-1.4.15.tar.gz
fjbejarano@ubults6400:~/nagiossrc$ cd nagios-plugins-1.4.15/
$ sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl=/usr/bin/openssl --enable-perl-modules
...
config.status: creating po/Makefile
            --with-apt-get-command: /usr/bin/apt-get
              --with-ping6-command: /bin/ping6 -n -U -w %d -c %d %s
               --with-ping-command: /bin/ping -n -U -w %d -c %d %s
                       --with-ipv6: yes
                      --with-mysql: /usr/bin/mysql_config
                    --with-openssl: yes
                     --with-gnutls: no
               --enable-extra-opts: no
                       --with-perl: /usr/bin/perl
             --enable-perl-modules: yes
                     --with-cgiurl: /nagios/cgi-bin
               --with-trusted-path: /bin:/sbin:/usr/bin:/usr/sbin
                   --enable-libtap: no

$ sudo make && sudo make install

Instalará los plugins en el directorio /usr/local/nagios/libexec.

Instalación del broker y daemon de NDOutils

Por último, instalamos ndoutils que sirve para que los datos de nagios se guarden en una base de datos mysql. El broker ndomod toma los datos de nagios y se los pasa al daemon ndo2db que los inserta en la base de datos mysql. Podemos tener varios Nagios como satelites con solo ndomod.o y que envien los datos a una base de datos central con el daemon ndo2db instalado (pero eso es otra historia, aqui tenemos todo en el mismo ordenador)

Primero configuramos y compilamos los ficheros.

$ cd ..
fjbejarano@ubults6400:~/nagiossrc$ tar -xzf ndoutils-1.4b9.tar.gz
fjbejarano@ubults6400:~/nagiossrc$ cd ndoutils-1.4b9/
$ sudo ./configure 
$ sudo make

Creamos la base de datos llamada nagios y con el script de ndoutils installdb se crean las tablas. Esta base de datos habrá que incluirla en el archivo de configuración del daemon ndo2db para que sepa donde enviar los datos de nagios. El daemon ndo2db escucha en el puerto 5668.

$ mysql -u root -p -e "create database nagios"
$ mysql -u root -p -e "grant select,update,insert,delete on nagios.* to 'nagios'@'localhost' identified by 'password'"
fjbejarano@ubults6400:~/nagiossrc/ndoutils-1.4b9$ cd db
$ sudo ./installdb -u root -p password -h localhost -d nagios
DBD::mysql::db do failed: Table 'nagios.nagios_dbversion' doesn't exist at ./installdb line 51.
** Creating tables for version 1.4b9
     Using mysql.sql for installation...
** Updating table nagios_dbversion
Done!

Con el comando make anterior se han creado varios ficheros en ~/nagiossrc/ndoutils-1.4b9/src, ndomod-3x.o y ndo2db-3x. Copiamos y renombramos los ficheros al directorio /usr/local/nagios/bin para que los use nagios. También copiamos los archivos de configuración de los dos ficheros al directorio etc de nagios. Ponemos los permisos y lo añadimos al inicio.

$ cd ..
$ sudo cp src/ndomod-3x.o /usr/local/nagios/bin/ndomod.o
$ sudo cp src/ndo2db-3x /usr/local/nagios/bin/ndo2db
$ sudo cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
$ sudo cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
$ sudo chmod 774 /usr/local/nagios/bin/ndo*
$ sudo chown nagios:nagios /usr/local/nagios/bin/ndo*
$ sudo cp daemon-init /etc/init.d/ndo2db
$ sudo chmod u+x /etc/init.d/ndo2db
$ sudo update-rc.d ndo2db defaults

Por último tenemos que hacer unos cambios en el fichero de configuración de nagios y en los de ndo2db y ndomod.o

En el fichero de ndo2db.cfg ponemos el socket a TCP y comentamos las lineas relacionadas con el socket unix. También rellenamos los datos correspondientes a la base de datos mysql que creamos antes (nombre, usuario, etc.)

$ sudo vim /usr/local/nagios/etc/ndo2db.cfg

# SOCKET TYPE
# This option determines what type of socket the daemon will create
# an accept connections from.
# Value:
#   unix = Unix domain socket (default)
#   tcp  = TCP socket

#socket_type=unix
socket_type=tcp


# SOCKET NAME
# This option determines the name and path of the UNIX domain 
# socket that the daemon will create and accept connections from.
# This option is only valid if the socket type specified above
# is "unix".

#socket_name=/usr/local/nagios/var/ndo.sock

...

# DATABASE NAME
# This option specifies the name of the database that should be used.

db_name=nagios


# DATABASE TABLE PREFIX
# Determines the prefix (if any) that should be prepended to table names.
# If you modify the table prefix, you'll need to modify the SQL script for
# creating the database!

db_prefix=nagios_


# DATABASE USERNAME/PASSWORD
# This is the username/password that will be used to authenticate to the DB.
# The user needs at least SELECT, INSERT, UPDATE, and DELETE privileges on
# the database.

db_user=nagios
db_pass=password

En ndomod.cfg también tenemos que modificar los datos para que concuerden con el socket tcp. Hay que poner la ip donde está el daemon ndo2db, en este caso es la misma donde está ndomod.o, localhost (127.0.0.1), pero si tuviesemos otros nagios como satelites de centreon habria que poner la ip del ordenador donde esta recogiendose los datos ndo2db.

También podemos configurar el output_buffer_items. Por defecto, si hay algun fallo de conexión, el buffer guarda 5000 registros que meterá en la bbdd (flush) cuando se reestablezca. Todos los registros que pasen de esa cifra se pierden. Yo he estado un tiempo con ndoutils fallando en la conexión y se hace insuficiente así que lo he cambiado a 20000. Ponedlo como veais vosotros.

$ sudo vim /usr/local/nagios/etc/ndomod.cfg

# OUTPUT TYPE
# This option determines what type of output sink the NDO NEB module
# should use for data output.  Valid options include:
#   file       = standard text file
#   tcpsocket  = TCP socket
#   unixsocket = UNIX domain socket (default)

#output_type=file
output_type=tcpsocket
#output_type=unixsocket


# OUTPUT
# This option determines the name and path of the file or UNIX domain 
# socket to which output will be sent if the output type option specified
# above is "file" or "unixsocket", respectively.  If the output type
# option is "tcpsocket", this option is used to specify the IP address
# of fully qualified domain name of the host that the module should
# connect to for sending output.

#output=/usr/local/nagios/var/ndo.dat
output=127.0.0.1
#output=/usr/local/nagios/var/ndo.sock

...

# OUTPUT BUFFER
# This option determines the size of the output buffer, which will help
# prevent data from getting lost if there is a temporary disconnect from
# the data sink.  The number of items specified here is the number of
# lines (each of variable size) of output that will be buffered.

output_buffer_items=20000

Por otro lado, podeis cifrar las conexiones con ssl si en ambos ficheros de configuración activais la directiva use_ssl a 1. Pero solo vale al usar tcpsocket, obviamente.

En nagios.cfg en la sección Event Broker Module, le decimos a nagios donde está el broker que vamos a usar. En la seccion Event Broker Option (un poco más arriba), nos aseguramos de que este a -1 para que el broker recoja datos, si no, no lo hará.

$ sudo vim /usr/local/nagios/etc/nagios.cfg

# EVENT BROKER OPTIONS
# Controls what (if any) data gets sent to the event broker.
# Values:  0      = Broker nothing
#         -1      = Broker everything
#          = See documentation

event_broker_options=-1


# EVENT BROKER MODULE(S)
...
# Example:
#
#   broker_module= [moduleargs]

broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
#broker_module=/somewhere/module1.o

Por último arrancamos el daemon e iniciamos nagios

$ sudo service ndo2db start
$ sudo service nagios start

Comprobación de instalación de Nagios

Para comprobar que todo ha ido bien, simplemente ponemos en un navegador la siguiente URL

http://192.168.1.10/nagios/

y ponemos el usuario "nagiosadmin" y contraseña la que pusimos en la instalación. Con esto nos debería aparecer la siguiente pantalla.


A partir de ahora, podríamos configurar los dispositivos a monitorizar a través de los ficheros de configuración del propio Nagios y ver después los equipos y, alertas, etc, en la interfaz web que vemos en la imagen, pero para realizar la configuración más sencilla usaremos Centreon.

Instalación de Centreon: Parte Consola

http://www.centreon.com/

Centreon es una herramienta que nos facilita la configuración y gestión de Nagios. Para ello, y debido a que no viene con la distribución, debemos descargarla e instalarla de forma manual.

Primero haremos la instalación de consola e instalamos los paquetes necesarios para usarla.

$ sudo aptitude install php5 php5-mysql php-pear php5-ldap php5-snmp php5-gd rrdtool librrds-perl libconfig-inifiles-perl libcrypt-des-perl libdigest-hmac-perl libdigest-sha1-perl libgd-gd2-perl snmp snmpd libnet-snmp-perl libsnmp-perl libgd2-xpm libgd2-xpm-dev libpng12-dev

Habilitamos la opción siguiente en /etc/default/snmpd para el arranque automático de snmpd y snmpdtrap

$ sudo vim /etc/default/snmpd

# snmptrapd control (yes means start daemon).  As of net-snmp version
# 5.0, master agentx support must be enabled in snmpd before snmptrapd
# can be run.  See snmpd.conf(5) for how to do this.
TRAPDRUN=yes


Y como vemos en el comentario habilitamos agentx en /etc/snmp/snmpd.conf. Está por el final del archivo. Descomentamos la linea en negrita.

$ sudo vim /etc/snmp/snmpd.conf


###############################################################################
# Subagent control
#

# The agent can support subagents using a number of extension mechanisms.
# From the 4.2.1 release, AgentX support is being compiled in by default.
# To use this mechanism, simply uncomment the following directive.
#
master  agentx
#
#   Please see the file README.agentx for more details.
#

Con esto tenemos las dependencias de Centreon instaladas.

Descargamos la herramienta Centreon. En este caso la versión estable 2.1.9. De momento no hay language-pack en Español así que lo dejaremos en Inglés. Hay otros idiomas como Alemán, Francés o Portugués.

fjbejarano@ubults6400:~$ pwd
/home/fjbejarano
fjbejarano@ubults6400:~$ mkdir centreon-inst
fjbejarano@ubults6400:~$ cd centreon-inst/
fjbejarano@ubults6400:~/centreon-inst$ wget http://download.centreon.com/index.php?id=143
fjbejarano@ubults6400:~/centreon-inst$ tar -zxf centreon-2.1.9.tar.gz
fjbejarano@ubults6400:~/centreon-inst$ cd centreon-2.1.9/
fjbejarano@ubults6400:~/centreon-inst/centreon-2.1.9$ ls
bin        cron  fileslist.txt  header.txt  install.sh  libinstall  log      README     snmptt  varinstall
CHANGELOG  doc   GPL_LIB        INSTALL     lib         LICENSE     plugins  snmptrapd  tmpl    www

Una vez en el directorio centreon-2.1.9 ejecutamos el fichero install.sh para ver las opciones.

$ ./install.sh
Usage: ./install.sh -f 
  -i    install centreon
  -f    file with all variable
  -u    upgrade centreon with specify your directory with instCent* files
  -v    verbose mode

La opcion que nos interesa es -i para instalar centreon, pero también podemos actualizar si ya lo tenemos instalado, leer INSTALL y README del directorio. Lo ejecutamos con permisos de root.

$sudo ./install.sh -i

Nos avisará de que estemos seguros de tener instalado sudo, sed, php, apache, rrdtool y mysql y comprobará que existen los binarios que necesita como find, chmod, etc. En nuestro caso todo ok.

Damos a enter, leemos la licencia y pulsamos "y" para aceptarla.

Ahora nos pedirá que queremos instalar. Pulsamos "y" a Centreon Web Front, Centreon CentCore, Centreon Nagios Plugins, Centreon Snmp Traps process.

Comienza a instalar CentWeb y nos pide el directorio de Centreon. Dejamos por defecto el que nos da, /usr/local/centreon. El directorio de log default to [/usr/local/centreon/log], el de configuración default to [/etc/centreon], generación de archivos default to [/usr/local/centreon], etc. Damos a todo que lo cree.

Cuando nos pida el lugar donde se encuentra el archivo RRDs.pm, ejecutamos en otra terminal el siguiente comando.

$ sudo find / -name "RRDs.pm"
/usr/lib/perl5/RRDs.pm

En nuestro caso está en el lugar que nos indica por defecto así que pulsamos enter, pero si estuviera en otro lugar habría que poner la ruta correcta.

Hacemos lo mismo con PEAR.php

$ sudo find / -name "PEAR.php"
/usr/share/php/PEAR.php

y también está correcto por defecto.

Ahora, hay que ir indicándole los directorios donde se ha instalado Nagios. Son los que pone por defecto, así que pulsamos "y" hasta que nos pregunte por el módulo broker de ndoutils. Entonces hay que decirle donde está, donde lo copiamos antes:

Where is your NDO ndomod binary ? 
default to [/usr/sbin/ndomod.o]
> /usr/local/nagios/bin/ndomod.o
/usr/local/nagios/bin/ndomod.o                             OK

Configuramos todo a "y" y dejamos los directorios por defecto en sudo y apache.

Nos mostrará los modulos pear que tenemos instalados y los que necesitamos intalar. Le decimos que si "y" a que instale/actualice los que necesita.

------------------------------------------------------------------------
Pear Modules
------------------------------------------------------------------------
Check PEAR modules
PEAR                            1.4.9       1.9.0          OK
DB                              1.7.6                      NOK
DB_DataObject                   1.8.4                      NOK
DB_DataObject_FormBuilder       1.0.0RC4                   NOK
MDB2                            2.0.0                      NOK
Date                            1.4.6                      NOK
HTML_Common                     1.2.2                      NOK
HTML_QuickForm                  3.2.5                      NOK
HTML_QuickForm_advmultiselect   1.1.0                      NOK
HTML_Table                      1.6.1                      NOK
Archive_Tar                     1.1         1.3.3          OK
Auth_SASL                       1.0.1                      NOK
Console_Getopt                  1.2         1.2.3          OK
Net_SMTP                        1.2.8                      NOK
Net_Socket                      1.0.1                      NOK
Net_Traceroute                  0.21                       NOK
Net_Ping                        2.4.1                      NOK
Validate                        0.6.2                      NOK
XML_RPC                         1.4.5                      NOK
SOAP                            0.10.1                     NOK
Log                             1.9.11                     NOK

Do you want me to install/upgrade your PEAR modules
[y/n], default to [y]:
> y
Upgrading PEAR modules

Todo lo demás respondemos a "y" y aceptamos las rutas por defecto. Cuidado con dar a enter sin poner "y" ya que la opción por defecto es no "n".

Instalación Centreon: Parte Web

Completaremos la instalación de Centreon mediante la interfaz web. Nos conectamos con un navegador a http://localhost/centreon o http://192.168.1.10/centreon

Nos sale la pantalla de bienvenida y nos indica que vamos a configurar la base de datos y las variables necesarias de configuración. Indica que tardaremos unos 10 min. Damos a start.


Aceptamos la licencia y pulsamos Next.


En la configuración del entorno, dejamos todo por defecto, el usuario de nagios, de apache, etc. Si hemos modificado algo tendremos que cambiarlo. Pulsamos Next.


Verifica la instalación y vemos que tenemos todo correcto. Pulsamos Next.


Verifica los módulos PEAR. Todo correcto, pulsamos Next.


En la creación de base de datos. Ponemos la contraseña del usuario root de mysql que introducimos cuando instalamos mysql al inicio del artículo. Los nombres de las bases de datos que crea centreon, en concreto tres, los dejamos por defecto. Introducimos una contraseña para la base de datos que se va a crear y la confirmamos. Como tenemos instalado mysql y la interfaz web de centreon en el equipo local, dejamos los campos en blanco y pondra la dirección en localhost por defecto. Si tuviéramos en otro equipo el servidor mysql o la interfaz web de centreon, introduciriamos aquí las direcciones IP correspondientes. Por último, como tenemos Mysql superior a 4.1, dejamos el ultimo parametro de la función PASSWORD() en >=4.1... Pulsamos Next.


Verifica la base de datos. Todo correcto, pulsamos Next.


Configuramos la interfaz de usuario. Para ello creamos el usuario que va a administrar centreon, la contraseña y los datos, Nombre, Apellidos y email. Pulsamos Next.


Nos pedirá si queremos usar la autenticación de usuarios con LDAP. Por defecto es no, que es lo que elijo ya que no tengo LDAP, pero podéis pulsar yes y os saldrán los campos necesarios a rellenar para la configuración de LDAP y centreon. Pulsamos Next.


Verifica y crea los archivos de configuración de centreon. Todo ok, pulsamos Next.


Crea y verifica las bases de datos. Todo ok, pulsamos Next.


Por último, nos indica que hemos completado la instalación, unos enlaces a la web de centreon donde podemos obtener información y otros enlaces donde podemos adquirir soporte técnico. También podemos comprar plugins adicionales en su web. Pulsamos en Click here to complete your install.


Si todo ha ido bien, nos llevará a la página de login. Introducimos nuestro usuario y contraseña que metimos en el paso 8 de configuración de la interfaz de usuario y entraremos a Centreon.




Y listo, tenemos instalado Centreon y Nagios. Ahora podemos configurar Nagios desde Centreon. Podéis probar como funciona

Importar los datos de Nagios a Centreon. Explicación de archivos de configuración.

Para entender como va Centreon y Nagios, tenemos que tener en cuenta lo siguiente:

1.- Al principio, tendremos los ficheros de Nagios, con las configuraciones en /usr/local/nagios/etc, con servicios, hosts, etc.

2.- Cuando instalamos por primera vez Centreon, importamos los ficheros de /usr/local/nagios/etc a Centreon. Después de esa importación inicial, haremos todas las configuraciones a través de la interfaz web de Centreon, no de los ficheros de Nagios.

3.- Cuando cambiemos configuraciones en Centreon, de hosts, servicios, nagios.cfg, etc, a través de la interfaz web, para que los cambios se reflejen en Nagios debemos Generar los ficheros y exportarlos a Nagios. Esto generará los ficheros nagios.cfg, los ficheros de servicios, etc. nuevos y modificados en /usr/local/nagios/etc, por tanto, ya estarán sincronizados ambas aplicaciones.

Para importar los archivos de configuración de Nagios a centreon (Punto 1) creamos un archivo comprimido de todos los archivos .cfg de /usr/local/nagios/etc/objects menos commands.cfg. Lo copiamos al anfitrion para poder añadirlo después, ya que estamos en una máquina virtual. Hay que poner los comandos de notificación de commands.cfg en un archivo y los de check en otro.

$ cd /usr/local/nagios/etc/objects
$ sudo mv commands.cfg ../
$ sudo tar -czf nagioscfgs.tgz *.cfg
$ scp nagioscfgs.tgz usuarioanfitrion@ipanfitrion:/home/usuarioanfitrion/
$ sudo touch checkcommands.cfg
$ sudo touch notifycommands.cfg
$ sudo chown www-data:www-data checkcommands.cfg notifycommands.cfg
$ sudo chmod 775 checkcommands.cfg notifycommands.cfg
$ cat commands.cfg

Mostramos commands.cfg y copiamos los comandos check en checkcommands.cfg y los notify en notifycommands.cfg

$ scp checkcommands.cfg usuarioanfitrion@ipanfitrion:/home/usuarioanfitrion/
$ scp notifycommands.cfg usuarioanfitrion@ipanfitrion:/home/usuarioanfitrion/

Entramos en la interfaz web de centreon con el usuario administrador. Pulsamos Configuración en el Menu principal. En el submenu, justo debajo del Menu principal pulsamos Nagios. En el menú del panel izquierdo pulsamos Load.

Cargamos primero los checkcommands.cfg, seleccionamos la opcion Check Command y en Examinar seleccionamos el archivo y lo mismo con notifycommands.cfg pero seleccionando Notification Command.

Después de lo anterior, elegimos el fichero que creamos antes (nagioscfgs.tgz) en Examinar en el panel central y pulsamos Load en el panel central.


Una vez hecho esto, como hemos cambiado la configuración de Centreon vamos a generar los ficheros de configuración y exportarlos a Nagios. A partir de aquí ya solo configuramos con Centreon, nunca más en los ficheros de Nagios.

Vamos a Configuracion->Nagios, panel izquierdo Generate. En el panel central le damos a Export sin la opción Move Export Files. Así solo comprobará si hay errores con una simulación de la creación de los ficheros. Una vez que vemos que no hay errores (si hay los corregimos), marcamos la opción Move Export Files y Restart Nagios y le damos a Export y ya se habrán creado los nuevos ficheros de configuración.

NOTA: Error de Ndoutils:
[08-12-2010 13:00:41] ndomod: Still unable to connect to data sink. 757 items lost, 5000 queued items to flush.

Si vemos el anterior error en los logs suele ser porque ndomod.o no se comunica bien con el daemon ndo2db. Esto puede ser porque los socket están mal configurados en los archivos de configuración /usr/local/nagios/etc/ndomod.cfg y /usr/local/nagios/etc/ndo2db.cfg. En centreon se recomienda el uso de socket tcp no de unix. He Actualizado la parte de NDOutils para corregir el problema y que usen los sockets tcp. Hasta que no corrijamos el problema no almacenaremos los datos en mysql. Cuando reiniciemos Nagios y ndoutils deberiamos ver los siguiente, que indica que se han comunicado correctamente.

[08-12-2010 13:00:58] Event broker module '/usr/local/nagios/bin/ndomod.o' initialized successfully.
[08-12-2010 13:00:58] ndomod: Successfully flushed 5000 queued items to data sink.
[08-12-2010 13:00:57] ndomod: Successfully connected to data sink. 5000 queued items to flush.
[08-12-2010 13:00:57] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
Related Posts with Thumbnails