martes, 31 de marzo de 2009

Configurando Nagios 2.x

Ya que tenemos instalado Nagios y podemos accesar vía Web tenemos que configurar Equipos y Servicios para monitorear. Los archivos de configuración para Slackware estan en /etc/nagios/ (o donde lo hayan especificado) y pueden sacar plantillas de los archivos bigger.cfg y minimal.cfg, es importante que tengan todos los archivos (contacts, contactgroups, escalations, host, hostgroups, services, servicegroups, checkcommands, misccommands, timeperiod, etc) hay m? s pero trabajaremos por mientras con estos.

¿Qué ocupamos monitorear?



Para esto hacemos nuestra lista de Equipos y Servicios, en este caso dare unos ejemplos:



2 servidores Windows
2 servidores Linux
1 router
1 switch
2 paginas Web
y Nuestro Nagios



¿Qué ocupamos saber de cada uno?

Servidor Windows 2003 (windows2003-192.168.0.10) : DNS, Host Alive, disk_usage y load.
Servidor Windows 2000 (windows2000-192.168.0.11): SQL.
Servidor Linux (linuxs-192.168.0.12): Squid.
Servidor Linux (linuxw-192.168.0.13): HTTP.
Cisco (cisco-192.168.0.14): FastEthernet, UPtime, Serial
Switch (switch-192.168.0.15): Ping, Uptime.
Pagina 1 (paginac-): www.cisco.com
Pagina 2 (paginag-): www.google.com
Nagios (nagios-192.168.0.15): En este caso en particular monitoreo la temperatura del equipo.


Son pocos pero sustanciosos, con estos trabajaremos para hacer nuestra configuración.



Agregando Contactos



Inicialmente empezaremos a agregar nuestros contactos, editamos contacts.cfg,
con nuestro editor favorito (el mío vi :)).
define contact{
contact_name tobi
alias Nagios Super Admin
contactgroups nt-admins ;podemos agregar desde aquí los grupos
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email correo@dominio.com
}
define contact{
contact_name superman
alias Nagios Super Admin
contactgroups linux-admins ;podemos agregar desde aquí los grupos
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email correo@dominio.com
}
define contact{
contact_name batman
alias Nagios Super Admin
contactgroups network-admins ;podemos agregar desde aquí los grupos
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email correo@dominio.com
}

Lo grabamos y listo, tenemos algunos contactos, podemos agregar cuantos queramos.



Agregando Grupos de Contactos



Ahora editamos el contactgroups.cfg y podemos agregar los contactos en los grupos:

# 'linux-admins' contact group definition
define contactgroup{
contactgroup_name linux-admins
alias Linux Administrators
members superman, batman
}
# 'nt-admins' contact group definition
define contactgroup{
contactgroup_name nt-admins
alias NT Administrators
members tobi
}
# 'network-admins' contact group definition
define contactgroup{
contactgroup_name network-admins
alias Network Administrators
members batman
}
# 'web-admins' contact group definition
define contactgroup{
contactgroup_name web-admins
alias WEB Administrators
members batman, tobi, superman
}


Grabamos y ya llevamos 2 archivos de configuracion.



Se preguntaran por que hicimos esta configuracion primero y no nos fuimos al grano o sea a a los equipos,
bueno en esta version 2 de Nagios en las directivas de host se agrego a la configuracion de cada equipo la linea contact_groups,
esto quiere decir que cada equipo tiene su grupo de contacto definido,
anteriormente estaban declarados los contact_groups en el archivo hostgroups.cfg.



Agregando Equipos



A continuación esta la configuración de hosts.cfg:

# Generic host definition template
define host{
name generic-host ; The name of this host
template - referenced in other host definitions, used for template recursion/res
olution
notifications_enabled 1 ; Host notifications are enabled
event_handler_enabled 1 ; Host event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information acro
ss program restarts
retain_nonstatus_information 1 ; Retain non-status information
across program restarts
register 0 ; DONT REGISTER THIS DEFINITION
- ITS NOT A REAL HOST, JUST A TEMPLATE!
}
define host{
use generic-host
host_name windows2003
alias NT 2003 Server
address 192.168.0.10
check_command check-host-alive
contact_groups nt-admins
max_check_attempts 10
notification_interval 480
notification_period 24x7
notification_options d,u,r
}
define host{
use generic-host
host_name windows2000
alias NT 2000 Server
address 192.168.0.11
check_command check-host-alive
contact_groups nt-admins
max_check_attempts 10
notification_interval 480
notification_period 24x7
notification_options d,u,r
}


Y asi sucesivamente vamos agregando y grabamos nuestro archivo hosts.cfg



Agregando Grupos de Equipos



Ahora creamos o editamos el archivo hostgroups.cfg, la forma como agrupemos los equipos aquí
se veran en la página de Nagios en la opción de hosts overview.


define hostgroup{
hostgroup_name webpages
alias Web Pages
members paginac,paginag
}
define hostgroup{
hostgroup_name winservers
alias Windows Servers
members windows2003,windows2000
}


Agregamos los demas y grabamos el archivo.



Agregando Servicios



Creamos o editamos services.cfg:


define service{
use generic-service
host_name windows2003
service_description DNS Service
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 2
contact_groups nt-admins
notification_interval 120
notification_period 24x7
notification_options w,u,c,r
check_command check_dns
}
define service{
host_name paginac,paginag
service_description PING
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups web-admins
notification_interval 240
notification_period 24x7
notification_options c,r
check_command check_ping!1050.0,30%!1550.0,60%
}


Después se explicará como agregar más plugins y su configuración, esto es solo para que puedan
entender el funcionamiento de Nagios en una forma rápida y no muy a fondo por el momento.

Grabamos y salimos.



Agregando Grupos de Servicios



Agregamos un grupo de servicio (Ping) para varios hosts, esto en el archivo servicegroups.cfg
(Este archivo también es una de las nuevas características de la versión 2 de Nagios).


define servicegroup{
servicegroup_name pingservices
alias Ping Services
members paginac,Ping Service,paginag,Ping Service,switch,Ping Service
}


Grabamos y listo ya tenemos la configuración mínima para echar a andar a Nagios, hay otro archivo
que es el serviceextinfo.cfg pero ese se explicará después.



Verificando que todo funcione adecuadamente



Para verificar si todo esta funcionando como debe de ser, ejecutamos lo siguiente:


isuraeru@localhost# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

y si todo termina así:

Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check


Perfecto podemos daemonizar a Nagios:

isuraeru@localhost# /etc/rc.d/nagios start
Starting network monitor: nagios

PID TTY TIME CMD
29864 ? 00:00:00 nagios


Y ya tenemos a Nagios trabajando, solo es cuestión de entrar a nuestra página y ver como funciona.

NOTA: Aquí solo se mostro la configuración de algunos equipos para dar una idea de como hacerlo, para
monitorear más equipos o servicios los tenemos que ir agregando.

No hay comentarios:

Publicar un comentario en la entrada

Nota: solo los miembros de este blog pueden publicar comentarios.