viernes, 31 de agosto de 2007

Nagios en debian etch


Nagios es una potente herramienta para monitorizar servicios de red.

En este articulo vamos a ver cuales son los paquetes y programas necesarios para monitorear una pequeña red local.

Para empezar instalamos los paquetes necesarios, si no poseen un servidor HTTP instalen un apache o apache2 antes de continuar:

#apt-get install nagios-text nagios-plugins

El asistente nos va a realizar una serie de preguntas:

* Tipo de servidor HTTP: Acá elegimos el que corresponda, en mi caso apache2.
* Contraseña de administrador: La que deseemos, es para entrar mas tarde.
* Habilitar la capacidad de ejecutar comandos externos via web: Si.

Terminada la descompresión y configuración de los paquetes necesarios vamos a la configuración:

Nagios se configura en /etc/nagios/nagios.cfg, cgi.cfg y en el resto de los archivos de ese directorio.

Los archivos (principales, básicos y obligatorios) a configurar serán:
nagios.cfg, cgi.cfg, hosts.cfg,hostgroups.cfg, contacts.cfg, contactgroups.cfg, misccommands.cfg, services.cfg.

nagios.cfg: Como viene por defecto no hace falta tocar nada para empezar a usarlo.

cgi.cfg: Configuramos las siguientes lineas para que únicamente nagiosadmin tenga acceso total al sistema.

authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin

hosts.cfg: Acá debemos configurar todas las máquinas que queremos monitorizar. Cada una deberá, al menos, tener un servicio: check_ping, check_http, check_ftp, etc…
En nuestro caso vamos a monitorizar una PC, la que brinda hosting a wikipeando.com.ar: neptuno.svfnet.net

define host{
use generic-host
host_name neptuno.svfnet.net
alias Neptuno
address 84.16.224.149
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24×7
notification_options d,u,r
}

hostgroups.cfg: Cada host que definamos tiene que pertenecer a un hostgroup y cada hostgroup debe tener un contact_groups.

En nuestro caso vamos a tener un solo grupo llamado: monitoreo y un grupo de contacto llamado admines.

define hostgroup{
hostgroup_name monitoreo
alias Monitoreo
contact_groups admines
members neptuno.svfnet.net
}

contacts.cfg: Acá definiremos las personas a las que se les notificara de las posibles incidencias de las máquinas de la red.

En nuestro caso vamos a definir una sola persona.

define contact{
contact_name nagios
alias Nagios Admin
service_notification_period 24×7
host_notification_period 24×7
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 nagios-admin@localhost ;no es buena idea usar un mail que este en la máquina a monitorizar :P
}

contactgroups.cfg: Cada contacto tiene que pertenecer a un grupo de contacto, en nuestro caso tenemos solo a uno: nagios quien deberá pertenecer al grupo admines.

define contactgroup{
contactgroup_name admines
alias Admines
members nagios
}

services.cfg: Acá vamos a definir los servicios que vamos a monitorear de nuestros hosts.

En nuestro caso vamos a ver todos los servicios de la máquina:

define service{
use generic-service
host_name neptuno.svfnet.net
service_description PING
is_volatile 0
check_period 24×7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups admines
notification_interval 240
notification_period 24×7
notification_options c,r
check_command check_ping!100.0,20%!500.0,60%
}

define service{
use generic-service
host_name neptuno.svfnet.net
service_description FTP
is_volatile 0
check_period 24×7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups admines
notification_interval 240
notification_period 24×7
notification_options w,u,c,r
check_command check_ftp
}

define service{
use generic-service
host_name neptuno.svfnet.net
service_description HTTP
is_volatile 0
check_period 24×7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups admines
notification_interval 240
notification_period 24×7
notification_options w,u,c,r
check_command check_http
}

define service{
use generic-service
host_name neptuno.svfnet.net
service_description SMTP
is_volatile 0
check_period 24×7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups admines
notification_interval 240
notification_period 24×7
notification_options w,u,c,r
check_command check_smtp
}

define service{
use generic-service
host_name neptuno.svfnet.net
service_description POP3
is_volatile 0
check_period 24×7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups admines
notification_interval 240
notification_period 24×7
notification_options w,u,c,r
check_command check_pop
}

escalations.cfg y dependencies.cfg: Comentar todas las líneas que aparezcan en estos archivos con # delante.

Una vez configurado checkeamos si tenemos o no algun error en lo que acabamos de configurar:

# nagios -v /etc/nagios/nagios.cfg

Si no recibimos ningun error, reiniciamos el demonio:

# /etc/init.d/nagios restart

Si configuramos nuestro servidor HTTP con el asistente, para ingresar a nagios solo tenemos que ir a http://127.0.0.1/nagios con nuestro browser favorito y autenticarnos con el usuario nagiosadmin y la clave que configuramos inicialmente.

http://www.wikipeando.com.ar/wp-content/uploads/nagios_status.png

Enlace del documento Fuente: http://www.wikipeando.com.ar/index.php/archives/101

No hay comentarios: