Nagios Core 4

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 7

Nagios Core 4 + PNP4Nagios.

Instalación y
configuración desde fuentes en Debian 7
(wheezy).
15 Replies

Recientemente mostramos como instalar la nueva versión de Nagios, Nagios Core 4 en


CentOS / Redhat. En este artículo vamos a repetir con Debian 7 / Ubuntu (posiblemente no
cambie apenas nada para este). La instalación se realizará compilando ya que parece que de
momento no hay paquetes disponibles para las distribuciones habituales. Además también
instalaremos PNP4Nagios.

La instalación de esta versión 4 parece que es idéntica a la de la versión 3 por lo que


seguiremos la misma guía de instalación, en nuestro caso la guía para Ubuntu nos puede
valer. Aunque veremos que no está todo tan claro, si no no habría razón para escribir este

artículo

Instalación de Nagios.
Instalamos previamente algunos paquetes necesarios:

apt-get install build-essential apache2 libapache2-mod-php5 libgd2-xpm-


dev

Cuentas de usuario y grupo.

Creamos cuenta para Nagios (por defecto crea el grupo) y asignamos password:

useradd -m -s /bin/bash nagios


passwd nagios

Creamos un grupo nagcmd que usaremos luego para los commandos externos y metemos
en dicho grupo a nuestro usuario Nagios y al usuario que usa apache.

/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd www-data

Bajamos  Nagios 4 (core) en su versión “free”, descomprimimos y compilamos


(asignandole el grupo). Nos irá guiando por todos los pasos:

./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf
make install-exfoliation
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
service apache2 restart

Hasta aquí todo bien… excepto que cuando vamos a iniciar el demonio de nagios nos dará
un error. Si echamos un ojo al script veremos que… es para Redhat.

# /etc/init.d/nagios start
/etc/init.d/nagios: 20: .: Can't open /etc/rc.d/init.d/functions

Para hacerlo funcionar correctamente he pillado un script de Nagios 3 (el que viene con el
empaquetado de Nagios para Debian 7) y lo he modificado. Puedes bajártelo aquí
(renómbralo como “nagios”)

Download 

Según está funciona correctamente aunque veras que al iniciar / parar Nagios da un error.
Esto es debido a que usa un plugin para detectar si Nagios está ejecutándose en un caso
concreto y no lo encuentra porque aún no hemos instalado los plugins. Posteriormente al
instalar estos se subsanará.

Nagios Plugins.
Instalamos previamente algunos paquetes necesarios para algunos plugins. Si no vamos a
usar plugin concretos (samba, mysql, radius,…) no es necesario que instalamos esos
paquetes en concreto:

apt-get install apache2 libpng12-dev libjpeg8-dev libgd2-xpm-dev \


fping qstat libldap2-dev libmysqlclient-dev \
libradius1 libradius1-dev libsnmp-base libsnmp15 libsnmp-dev libnet-snmp-
perl \
smbclient samba-common ntp libpq-dev snmp snmpd openssl rrdtool librrds-
perl \
gcc make

Bajamos, descomprimimos y compilamos los plugins:

./configure -with-nagios-user=nagios -with-nagios-group=nagios


make
make install

Si reiniciamos Nagios veremos que ya no nos da error el script de inicio.

Si accedemos a nuestro Nagios veremos que tiene algunos chequeos clásicos en el localhost
que ya están usando los plugins instalados.
Dado que cada vez que cambiamos la configuración de ficheros de Nagios conviene
chequearla (y necesitamos “recargar” la configuración) nos pueden venir bien unos alias
para tenerlo más a mano. En el fichero .bashrc podemos añadirlos.

# ALIAS PARA NAGIOS


alias q1='/usr/local/nagios/bin/nagios -v
/usr/local/nagios/etc/nagios.cfg'
alias q2='/etc/init.d/nagios reload'

PNP4Nagios.
Como hemos instalado Nagios Core 4 y los plugins compilando, la mejor opción será
también instalar PNP4Nagios de esta forma.
Requisitos: Perl, RRDtool, PHP, mod_rewrite de apache. Instalamos los que nos faltan:

apt-get install php5-gd librrds-perl

Bajamos PNP4Nagios, descomprimimos y compilamos:

./configure
make all
make fullinstall
*** Configuration summary for pnp4nagios-0.6.21 03-24-2013 ***
General Options:
------------------------- -------------------
Nagios user/group: nagios nagios
Install directory: /usr/local/pnp4nagios
HTML Dir: /usr/local/pnp4nagios/share
Config Dir: /usr/local/pnp4nagios/etc
Location of rrdtool binary: /usr/bin/rrdtool Version 1.4.7
RRDs Perl Modules: FOUND (Version 1.4007)
RRD Files stored in: /usr/local/pnp4nagios/var/perfdata
process_perfdata.pl Logfile: /usr/local/pnp4nagios/var/perfdata.log
Perfdata files (NPCD) stored in: /usr/local/pnp4nagios/var/spool
Web Interface Options:
------------------------- -------------------
HTML URL: http://localhost/pnp4nagios
Apache Config File: /etc/apache2/conf.d/pnp4nagios.conf

Nos copia el demonio npcd. Configuramos npcd y nagios para arrancar al inicio y
reiniciamos los implicados:
update-rc.d nagios start 20 2 3 4 5 . stop 80 0 1 6
update-rc.d npcd start 19 2 3 4 5 . stop 79 0 1 6
service npcd restart && service nagios restart && service apache2 restart

Si accedemos al interface http://nuestro_nagios/pnp4nagios/ deberíamos ver todo en


verde menos un error: “Apache mod_rewrite is not enabled”. Para activar mod_rewrite:

a2enmod rewrite && service apache2 restart

Recargamos la página y debemos tener ya todo OK. Procedemos como dice a renombrar el
fichero /usr/local/pnp4nagios/share/install.php para que se dé por enterado de que está
correctamente instalado.
Volvemos a cargar la página y veremos que nos da otro error:

Please check the documentation for information about the following error:
perfdata directory “/usr/local/pnp4nagios/var/perfdata/” is empty. Please check your Nagios
config. Read FAQ online

Este es normal ya que no hemos acabado la configuración. Vamos con ello…

PNP4Nagios tiene varias formas de configurar la integración con Nagios. Usaremos el


método bulk-mode. Si estás pensando en usar el más sencillo e igual de eficaz “Bulk Mode
with npcdmod” olvídalo de momento. La API “event broker”de Nagios Core 4 ha
cambiado, con lo cual el broker nocdmod no va a funcionar (al menos no el de la última
versión probada en este artículo – pnp4nagios 0.6.21-).

En el directorio /usr/local/pnp4nagios/etc tenemos dos ficheros de ejemplo para hacer


copy/paste.
Del fichero nagios.cfg-sample copiamos la siguiente configuración a el fichero
/usr/local/nagios/etc/nagios.cfg

#
# Bulk / NPCD mode
#
process_performance_data=1

# *** the template definition differs from the one in the original
nagios.cfg
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::
$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::
$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::
$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::
$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::
$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

# *** the template definition differs from the one in the original
nagios.cfg
#
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::
$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::
$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::
$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

Del fichero misccommands.cfg-sample copiamos la siguiente configuración a


/usr/local/nagios/etc/objects/commands.cfg

#
# Bulk with NPCD mode
#
define command {
command_name process-service-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata
/usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}
define command {
command_name process-host-perfdata-file
command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata
/usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}

OJO, la segunda y tercera línea de cada command es solo una línea, la misma…

Reiniciamos el demonio npcd de pnp4nagios y el propio Nagios:

service npcd restart && service nagios restart

Y ya podemos conectarnos a la URL de PNP4Nagios. En breve desaparecerá el error y


veremos al rato que empieza a pintar nuestras gráficas.

Nos faltaría ahora una cosa importante. Poder acceder directamente desde el Host / Servicio
en Nagios a las gráficas correspondientes de este sin tener que ir a el interface de PNP4
para localizarlo. Siguiendo las instrucciones de la documentación nos vamos directamente a
configurarlo para POPUPs. Creamos unos “templates” para aplicarlos luego a los objetos.
En el fichero /usr/local/nagios/etc/objects/templates.cfg añadimos:

define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_'
class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/index.php/graph?
host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips'
rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}

Y modificamos nuestros objetos Host / Servicios para que hereden dicha plantilla. Por
ejemplo:

define host{
use linux-server,host-pnp
host_name localhost
alias localhost
address 127.0.0.1
}
define service{
use local-service,srv-pnp
host_name localhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}

OJO. Es necesario copiar un fichero a la configuración web de Nagios y las rutas de la doc.
de PNP4Nagios no coinciden con las nuestras. Copiamos el fichero correctamente de los
fuentes de pnp4nagios:

cp contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/

Reiniciamos nagios y ncmd (módulo de pnp):

service npcd restart && service nagios restart

Veremos que nos han aparecido los iconos para acceder pinchando directamente a las
gráficas del Host / Servicio directamente desde este y además, si pasamos solo el ratón por
el icono nos muestra ya un popup con la gráfica. Bonito ¿no?.

Si no controlas bien el tema de los ficheros de configuración de Nagios es que no leíste el


artículos sobre ficheros de configuración de Nagios . Si no te aclaras con los objetos, échale
un ojo al artículos sobre configuración de objetos en Nagios.
Podemos añadirle la plantilla a todos aquellos host / servicios que queramos tengan gráfica.
Las estrategias pueden ser diferentes; uno a uno, definición de servicios asignadas a grupos
de host en lugar de a hosts (lo normal), asignar la plantilla a la plantillas a otra plantilla
(local-service p.e.), ….

Para saber más de PNP4Nagios échale un ojo al artículo de Características de PNP4Nagios.

check_mk
Si estás pensando instalar check_mk parece que de momento no es posible. Nagios Core 4
cambia la arquitectura de la API “Event broker” con respecto a la versión previa y parece
que de momento (probado con check_mk-1.2.3i1) MK_Livestatus no incluye el broker
adecuado para esta versión de Nagios 4. Si intentas instalarlo, al iniciar Nagios verás que da
un error en nagios.log al cargar el broker de MK_Livestatus:

[1380298713] Error: Could not load module


'/usr/lib/check_mk/livestatus.o' -> /usr/lib/check_mk/livestatus.o:
undefined symbol: last_command_check
[1380298713] Error: Failed to load module
'/usr/lib/check_mk/livestatus.o'.
[1380298713] Error: Module loading failed. Aborting.

Imagino que no tardarán en hacer compatible dicho módulo.

También podría gustarte