Instalación de Nagios
30 Mar
Requisitos de Nagios.
Antes de realizar la instalación de Nagios en nuestro servidor, debemos asegurarnos de tener instalado, un Webserver como Apache. Esto nos permitirá gestionar el nagios usando nuestro explorador.
Instalación Nagios.
La instalación de nagios en nuestro servidor es muy sencilla lo primero sera instalar la librería GD, para la parte grafica y lo haremos de la siguiente forma:
Para Debian:
Lo primero que haremos en este caso es instalar paquetes necesarios para poder compilar nuestro nagios.
apt-get install make gcc g++
El próximo paso es gestionar los usuarios del sistema que ejecutaran el nagios, donde crearemos el usuario “Nagios” y lo agregaremos al grupo de apache sea cual fuere, al igual que crearemos el directorio de instalación de nagios
adduser nagios
grep nagios /etc/passwd
groupadd nagios
grep “^User” /etc/apache2/apache2.conf
usermod -G nagios nagios
usermod -G www-data,nagios www-data
grep nagios /etc/group
mkdir /usr/local/nagios
chown -R nagios:nagios /usr/local/nagios
Una vez realizado esto procedemos a la instalación de las librerías de gd para ello debemos instalar las librerías necesarias:
apt-get install libgd2-xpm libgd2-xpm-dev libgd2 libgd2-dev libpng12-dev libjpeg62-dev libgd-tools libpng3-dev
Para descargar la librerías de gd usaremos el comando wget en el servidor de la siguiente forma:
#: wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
Y procedemos a descomprimir e instalar así:
# tar –zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure
make && make install
Una vez instalado todo esto podremos proceder a instalar el nagios, en este caso instalaremos la versión 3.0.6, aunque podremos elegir mas versiones en desde la pagina de nagios:
http://www.nagios.org/download/
Para instalar el nagios hacemos lo siguiente:
#: wget http://garr.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.6.tar.gz
tar –zxvf nagios-3.0.6.tar.gz
cd nagios-3.0.6
` ./configure –prefix=/usr/local/nagios –with-cgiurl=/nagios/cgi-bin –with-htmurl=/nagios/ –with-nagios-user=nagios –with-nagios-group=nagios –with-command-group=nagios
Cabe destacar que todos los parámetros que usamos en este configure se pueden editar los parámetros de acuerdo a nuestras necesidades.
#: make all
#: make install
#: make install-init
#: make install-commandmode
#: make install-config
Este último comando nos creará en el directorio del nagios archivos de configuración básicos, de ejemplo lo que nos servirá para guiarnos.
El árbol de archivos quedará de la siguiente forma:
bin/ Aquí se encuentran archivos de ejecucion de nagios.
etc/ Archivos de Configuración
sbin/ Directorio de CGI´s
share/ Todo lo relacionado con la interfaz Web.
var/ Almacen de Logs.
var/archives El archivo de Log usado en las graficas de nagios.
var/rw Directorio vacio para logs de comandos externos.
libexec/ Directorio de Plugins.
Configuración de Apache
Es necesario configurar el apache para visualizar el nagios de forma Web. Esto lo haremos creando el archivo /etc/apache2/sites-avaliable/nagios con el siguiente contenido.
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName “Autenticacion de Nagios”
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
Alias /nagios /usr/local/nagios/share
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName “Autenticacion Nagios”
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
Después de guardar los cambios y salir es necesario ejecutar los comandos:
#: a2ensite nagios
#: /etc/init.d/apache2 restart
En este punto tendremos corriendo el nagios con los archivos de configuración por defecto que nos trae, ahora será necesario adaptar el nagios a nuestras necesidades.
Para acceder al nagios es necesario crear un usuario y una contraseña, el usuario configurado por defecto por el nagios es “nagiosadmin” por tal motivo debemos asignarle un password haciendo uso de htpasswd de la siguiente forma:
#: htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Si deseamos agregar mas usuarios a nuestro nagios basta con agregarlos a nuestro htpasswd.users de la siguiente forma:
#: htpasswd /usr/local/nagios/etc/htpasswd.users
Cabe destacar que el nagios nos permite asignarle grupo de usuarios a los hostgroups, esto es configurado mediante el archivo templates.cfg, mediante la variable contact_group ó contact_name.
Para esto es necesario que la variable “use_authentication” en el cgi.cfg sea igual a “1”.
En el caso de Red Hat based linux, en vez de usar el apt-get usaremos yum.
Archivos de Configuración de Nagios
En nuestro caso hemos organizado el nagios con la siguiente estructura:
Nagios ___bin
|__etc_ globals
| |_infraestructura
| | |_hosts.cfg
| | |_services.cfg
| |_clientes_____
| | |_hosts.cfg
| | |_services.cfg
| |_network____
| | |_hosts.cfg
| | |_services.cfg
| |_commands.cfg
| |_hostextinfo.cfg
| |_servicegroup.cfg
| |_hostgroups.cfg
| |_templates.cfg
| |_contacts.cfg
| |_escalations.cfg
| |_servicedependencies.cfg
| |_timeperiods.cfg
|
|__ libexec
|__ respaldos_config
|__ sbin
|__ share
|__ var://st8.
Como se puede observar en el directorio /etc están todos los archivos de configuración necesarios para agregar mas equipos y/o servicios al nagios, según sea el caso dependiendo de la ubicación y la red a la que pertenezcan.
En los archivos de hosts que se encuentran dentro de cada red se declaran los equipos a monitorizar de la siguiente forma:
define host{
# Esta es la plantilla a utilizar existente en el archivo templates.cfg
use INFRAESTRUCTURA-LINUX-SERVERS
# Nombre del Host
host_name SRV-MONITOR01
# Nombre para ver en el nagios.
alias SRV-MONITOR01
# IP del servidor.
address 127.0.0.1
}
Ahora nos encontramos con el archivo de Services donde definimos los servicios a monitorizar.
define service{
# Esta es la plantilla de servicios a usar ver: templates.cfg
use INFRA-SERVICES
# Nombre del equipo que se va a monitorizar creado en la plantilla de hosts.
host_name SRV-MONITOR01
# Descripción del servicio que aparecera en el nagios
service_description Espacio en /var
# Comando a ejecutar para realizar el chequeo del servicio.
check_command check_local_disk!40%!30%!/var
}
Archivo de hostgroups tiene la siguiente sintaxis.
define hostgroup{
# Nombre del Hostgroup
hostgroup_name Mercurio_CH
# Alias o nombre del hostgroup para interfaz web
alias Mercurio_CH
# Miembros de este Hostgroup separados por comas (,)
members SRV-MONITOR01
}
Instalación Plugins Nagios.
Antes de realizar cualquier accion es necesario instalar libmysqlclient.
Apt-get install libmysqlclient
Para realizar la instalación de los plugins de nagios es necesario descargarse en primer lugar el paquete de plugins de la siguiente forma:
#: wget http://garr.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
#: tar –zxvf nagios-plugins-1.4.13.tar.gz
#: cd nagios-plguins-1.4.13
#: ./configure
#: make && make install
Listo a partir de este momento se encuentran instalados los plugins.
Instalación de Plugins NRPE (Linux)
Debian
Apt-get install nagios-nrpe-server
Red Hat Based
Para realizar la instalación de los nagios plugins en servidores basados en red hat es necesario buscar los rpm que pertenezcan a nuestra versión de los siguientes paquetes. Luego procedemos en el siguiente orden:
Rpm –i perl-Crypt-DES-2.05-3.2.el5.rf.i386.rpm
Rpm –i perl-Digest-SHA1-2.11-1.el5.rf.x86_64.rpm
Rpm –i perl-Digest-HMAC-1.01-2.0.rh7.rf.noarch.rpm
Rpm –i fping-2.4-1.b2.1.el3.rf.x86_64.rpm
Rpm –i perl-Socket6-0.20-1.el4.rf.i386.rpm
Rpm –i perl-Net-SNMP-5.2.0-1.1.el3.rf.noarch.rpm
Rpm –i nagios-plugins-1.4.8-1.el3.rf.i386.rpm
Rpm –i nagios-nrpe-2.5.2-1.el3.rf.i386.rpm
Una vez realizado todo esto debemos editar el archivo /etc/nagios/nrpe.cfg como se muestra a continuación e iniciar nuestro nrpe.
Configuración de NRPE
En el archivo de nrpe debemos configurar las siguientes variables:
Allowed_hosts:127.0.0.1
Dont_blame_nrpe=1
Con esto nos aseguramos de dos cosas la primera que nuestro nrpe solo permitirá peticiones de dichos ip’s, y en segundo lugar que nos permitirá la ejecución de comandos remotamente lo cual necesitaremos en algunos scripts de algunos plugins.
El archivo de configuración quedará mas o menos de la siguiente forma.
pid_file=/var/run/nrpe.pid
server_port=5666
#server_address=192.168.1.1
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=127.0.0.1,212.230.254.8,212.230.253.8,192.168.25.8
dont_blame_nrpe=1
# command_prefix=/usr/bin/sudo
debug=0
command_timeout=60
#allow_weak_random_seed=1
#include=
#include_dir=
#include_dir=
###############################################################
###############################################################
##
## DEFINICION DE COMANDOS A USAR CON NRPE
## ROML 2009
###############################################################
###############################################################
command[check_disk]=/usr/lib64/nagios/plugins/check_disk -c $ARG1$ -w $ARG2$ -p $ARG3$
command[check_users]=/usr/lib64/nagios/plugins/check_users -w $ARG1$ -c $ARG2$
command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -c $ARG1$ -w $ARG2$ -s $ARG3$
command[check_mysql]=/usr/lib64/nagios/plugins/check_mysql -d $ARG1$ -H $ARG2$ -u $ARG3$ -p $ARG4$
command[check_sip]=/usr/lib64/nagios/plugins/check_sip
command[check_http]=/usr/lib64/nagios/plugins/check_http -I $ARG1$ -c $ARG2$
command[check_swap]=/usr/lib64/nagios/plugins/check_swap -v -w 60 -c 20
command[check_memory]=/usr/lib64/nagios/plugins/check_memory -w 40 -c 0
command[check_users_log]=/usr/lib64/nagios/plugins/externos/check_users.sh -w 9 -c 12
command[check_users_show]=/usr/lib64/nagios/plugins/externos/show_users.sh
command[check_firewall]=sudo /usr/lib64/nagios/plugins/externos/check_iptables.sh
Como podemos observar este archivo nos permite definir los comandos a los cuales se les permitirá su ejecución, seguidos de la ubicación de los plugins necesarios.
Herramientas Nagios
Existe una herramienta de nagios para realizar la verificación de los archivos de configuración la cual se ejecuta de la siguiente forma:
/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
Esta herramienta nos permite verificar que todas las configuraciones están correctas antes de reiniciar el servicio de nagios de esta forma podremos prevenir que el servicio no arranque cuando intentamos agregar nuevos servicios.
