viernes, 15 de enero de 2010

como configurar nagios

Nageos es un monitor de sistemas y aplicaciones. Mantiene una estrecha vigilancia de sistemas o aplicaciones en especifico que nosotros configuremos, alerta cuando algún sistema o servicio esta mal funcionando y hace lo mismo cuando todo esta funcionando correctamente.

para instalar Nageos requerimos configurar el deposito de Dag Wieers, ( muy útil )

### deposito yum para DAG WIERS

# rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm



Instalamos la paqueteria necesaria con yum

# yum - y install nagios nagios-plugins nagios-plugins-nrpe nagios-devel

=========================================
Running Transaction
Installing : nagios-plugins 1/4
Installing : nagios 2/4
Installing : nagios-plugins-nrpe 3/4
Installing : nagios-devel 4/4

=========================================

al instalar la paqueteria necesaria modificamos la configuración en el servidor de apache para brindar mayor seguridad.

# vi /etc/httpd/conf.d/nagios.conf

=========================================



=========================================

generamos el archivo  el archivo de contraseñas

# touch /etc/nagios/htpasswd.users

y generamos la contraseña para el usuario  que consultara a nageos

#  htpasswd  /etc/nagios/htpasswd.users nagiosadmin

o podemos utilizar el siguiente comando que generara automaticamente el archivo

#  htpasswd -c  /etc/nagios/htpasswd.users nagiosadmin

respaldamos los archivos originales de nagios
#cd /etc/nagios/
# for x in *.cfg; do n=${x/.cfg/.cfg-OLD}; cp $x $n; done

limpiamos el archivo archivo cgi.cfg

# sed -e '/^#/d' cgi.cfg-OLD | sed -e '/^$/d' > cgi.cfg

editamos el archivo de configuracion del CGI de nagios para pertmitir el acceso al usuario

# vi cgi.cfg
--------------------------------------

# AUTHENTICATION USAGE
use_authentication=1

# SYSTEM/PROCESS INFORMATION ACCESS
authorized_for_system_information=nagiosadmin

# CONFIGURATION INFORMATION ACCESS
authorized_for_configuration_information=nagiosadmin

# SYSTEM/PROCESS COMMAND ACCESS
authorized_for_system_commands=nagiosadmin

# GLOBAL HOST/SERVICE VIEW ACCESS
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin

# GLOBAL HOST/SERVICE COMMAND ACCESS
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin


--------------------------------------

en este archivo hay muchos mas parámetros que no ayudaran a adaptar la interfaz web a nuestras necesidades, ahora vamos a reiniciar nuestro servicio de Apache

# service httpd restart


editamos el archivo nagios.cfg y habilitamos los objects que vamos a utilizar ( estos pueden ser creados por el usuario)

================================================
log_file=/var/log/nagios/nagios.log
cfg_file=/etc/nagios/objects/commands.cfg
cfg_file=/etc/nagios/objects/contacts.cfg
cfg_file=/etc/nagios/objects/timeperiods.cfg
cfg_file=/etc/nagios/objects/templates.cfg
cfg_file=/etc/nagios/objects/localhost.cfg
================================================



en el folder /etc/nagios/objects

movemos todos los archivos con a otra extencion diferente .

# cd /etc/nagios/objects
# for x in *.cfg; do n=${x/.cfg/.cfg-OLD}; cp $x $n; done

vamos a comenzar configurando el archivo timeperiods.cfg


# vi timeperiods.cfg
=================================================
define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}


# 'workhours' timeperiod definition
define timeperiod{
timeperiod_name workhours
alias Normal Work Hours
monday 09:00-17:00
tuesday 09:00-17:00
wednesday 09:00-17:00
thursday 09:00-17:00
friday 09:00-17:00
}


# 'none' timeperiod definition
define timeperiod{
timeperiod_name none
alias No Time Is A Good Time
}

define timeperiod{
name MX-holidays
timeperiod_name MX-holidays
alias MX Holidays

january 1 00:00-00:00 ; Ano nuevo
monday 2 february 00:00-00:00 ; dia de la constitucion
march 21 00:00-00:00 ; dia de benito juarez
may 1 00:00-00:00 ; dia del trabajo
monday -2 september 00:00-00:00 ; dia de independencia ( calcualdo )
monday -1 november 00:00-00:00 ; Revolucion
december 25 00:00-00:00 ; Navidad
}
=========================================

en mexico es complejo atinarle a los dias pero intentaremos

tenemos listo nuestros peridos de tiempo deacuerdo a nuestras necesidades .

configuraremos el archivo contacts.cfg

# vi contacts.cfg
======================================
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 nagios@localhost ;
}


define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin
}



===================================================

en esta lista podemos definir los contactos que ud desee deacuerdo a sus necesidades a quien notificara ,  cada administrador de sistema puede incluir los contactos necesarios


ahora creamos un achivo llamado locahost.cfg , este archvio considero el mas complejo por la cantidad de instrucciones que contiene pero podemos hacer uso del archivo template para ver la estructura . en este ejemplo solo pondremos una maquina linux simple si requiere mas información valla a la sección de manuales del sitio oficial http://nagios.sourceforge.net/docs/3_0/ .

editamos el archivo de localhost.cfg

# vi localhost.cfg

=================================================

# Define a host for the local machine

define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name localhost
alias localhost
address 127.0.0.1
}

# Define an optional hostgroup for Linux machines

define hostgroup{
hostgroup_name linux-servers ; The name of the hostgroup
alias Linux Servers ; Long name of the group
members localhost ; Comma separated list of hosts that belong to this group
}

# Define a service to "ping" the local machine

define service{
use local-service ; Name of service template to use
host_name localhost
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description Root Partition
check_command check_local_disk!20%!10%!/
}


define service{
use local-service ; Name of service template to use
host_name localhost
service_description SSH
check_command check_ssh
notifications_enabled 0
}

define service{
use local-service ; Name of service template to use
host_name localhost
service_description HTTP
check_command check_http
notifications_enabled 0
}

================================================

chacamos que las configuraciones sean correctas

# nagios -v nagios.cfg

agregamos el nagios a los niveles de corrida

# chkconfig nagios on

y corremos el servicio

# service nagios start

habilitamos SeLinux

# chcon -R httpd_sys_content_t /var/nagios

No hay comentarios:

Publicar un comentario