Nagios es una herramienta
para monitorización de servidores y equipos de conectividad. Esta herramienta
permite monitorear en tiempo real el comportamiento de dichos equipos midiendo
una serie de parámetros configurables como pueden el uso de la memoria ram o
del cpu, el estado de las particiones del disco duro etc.
Instalación de nagios:
apt-get
install nagios3 apache2
Por defecto el software
tratara de instalar todas las dependencias y librerías necesarias una vez le
demos Y al proceso.
Una vez instalado nagios
nos aparecerá en pantalla un wizard para la instalación de postfix, esto es muy
importante debido a que lo necesitaremos para enviar notificaciones via email.
Configuramos Postfix
usando la opción Internet Site.
Seguidamente tendremos
que especificar el password para el administrador de nagios y confirmalo.
Para acceder a la interfaz
web de nagios escribimos en el navegador http://<Dirección IP del
Server>/<nagios3>
Configuración de Nagios:
Una vez instalado
pasaremos a configurar la herramienta. Para poder declarar las pc, servidores,
servicios y grupos de contactos debemos hacer algunos cambios en el fichero
nagios.cfg, además de otros que están bajo el directorio /nagios3/conf.d :
Editamos el archivo nagios.cfg
en este caso usamos el editor mcedit:
mcedit /etc/nagios3/nagios.cfg
Dentro del archivo
buscamos las líneas cfg_dir= que están comentadas por defecto y creamos una línea
mas donde especificamos el directorio donde guardaremos el fichero con la información
de los equipos que vamos a monitorear.
#cfg_dir=/etc/nagios3/servers
#cfg_dir=/etc/nagios3/printers
#cfg_dir=/etc/nagios3/switches
#cfg_dir=/etc/nagios3/routers
cfg_dir=/etc/nagios3/objetos/
Ahora pasaremos ha
configurar los grupos de contactos a los que enviaremos notificaciones via
email, para esto editamos el fichero contacts_nagios2.cfg
mcedit /etc/nagios3/conf.d/contacts_nagios2.cfg
El archivo se compone de
dos partes en la primera de arriba configuramos los contactos con su información
especifica nombre, email, alias. En la segunda configuramos los grupos de
contactos donde indicamos un nombre, un alias y los miembros de dicho grupo.
#####################################################
define contact{
contact_name name
alias name
service_notification_period
24x7
host_notification_period
24x7
service_notification_options w,u,c,r
host_notification_options
d,r
service_notification_commands
notify-service-by-email
host_notification_commands
notify-host-by-email
email name@yahoo.com
}
####################################################
define contactgroup{
contactgroup_name red
alias Nagios Administrators
members name
}
Una vez definidos los
contactos y los grupos pasamos a definir grupos de equipos que necesitamos
monitorear para esto editamos el fichero:
mcedit
/etc/nagios3/conf.d/hostgroups_nagios2.cfg
Este fichero lo podemos usar para agrupar
los equipos en grupos por ejemplo el grupo servidores. Los parámetros que
usamos son el nombre, alias y los equipos miembros del grupo.
define hostgroup {
hostgroup_name Red
alias Servidores Ceis
members localhost, serdns,
serverftp, serverhttp, servermail
}
Después de esto nos falta configurar el
fichero services_nagios2.cfg en cual vamos a definir los servicios a monitorear
para los equipos que nos interesen.
define service {
hostgroup_name Red
service_description PING
check_command check_ping!100.0,20%!500.0,60%
use generic-service
notification_interval 0 ; set > 0 if you want to be
renotified
}
En este caso estamos definiendo un servicio de monitoreo por PING ICMP a
los host del grupo Red creado anteriormente.
Definiendo
servicio de alertas para el grupo Red
define service {
hostgroup_name
Red
service_description
Alertas Postfix
check_command
notify-host-by-email
use
generic-service
}
Definiendo
servicio de Espacio en Disco (Disk Space) para el grupo Red
define service{
use
generic-service ; Name of
service template to use
hostgroup_name Red
service_description
Disk Space
check_command
check_all_disks!20%!10%
}
Definiendo
servicio SSH para el grupo Red
define service {
hostgroup_name
Red
service_description
SSH
check_command
check_ssh
use
generic-service
notification_interval 0
; set > 0 if you want to be renotified
}
Es muy importante saber que podemos definer servicios para host individuales
en caso de que sean servicios especificos como pop3,smtp para un servidor de
correo.
define service{
use
generic-service ; Name of
service template to use
host_name serveremail
service_description
SMTP
check_command check_smtp
}
Definición de
servicio pop3 para servidor de correo
define service{
use
generic-service ; Name of service template to use
host_name serveremail
service_description
POP3
check_command check_pop
}
Definición de
servicio pop3 para servidor de correo
define service{
use
generic-service ; Name of
service template to use
host_name serverftp
service_description
FTP
check_command check_ftp
}
Definición de
servicio DNS para servidor de correo
define service{
use
generic-service ; Name of
service template to use
host_name serverDNS
service_description DNS
check_command
check_dns
}
Definición de
servicio DHCP para servidor de correo
define service{
use
generic-service ; Name of
service template to use
host_name serverDHCP
service_description
DHCP
check_command check_dhcp_interface
}
Definición de
servicio LDAP para servidor de correo
define service{
use
generic-service ; Name of
service template to use
host_name serverLDAP
service_description
LDAP
check_command check_ldap
}
Definición de
servicio HTTP para servidor de correo
define service{
use
generic-service ; Name of
service template to use
host_name serverWeb
service_description HTTP
check_command check_http}
Ahora solo nos falta configurar el archivo donde definiremos los hosts o
equipos que vamos a monitorear. Para
esto primero tenemos que crear el directorio donde vamos a tener dicho archivo y
creamos el archivo y luego lo editamos.
mkdir /etc/nagios3/objetos
touch /etc/nagios3/objetos/laboratorio/fw.cfg
mcedit
/etc/nagios3/objetos/laboratorio/fw.cfg
Definiendo un host
servidor
define host{
host_name serverRouter
alias Router
address 192.168.1.1
check_command check-host-alive
check_interval 5
retry_interval 1
max_check_attempts 5
check_period 24x7
process_perf_data 0
retain_nonstatus_information 0
contact_groups red
notification_interval 30
notification_period 24x7
notification_options d,u,r
hostgroups Red
parents router
statusmap_image fortinet.png
icon_image fortinet.png
}
Definiendo un host
switch
define host{
use generic-host
host_name L2sNodo
alias Switch
Allied Telesis AT-8000s
address 192.168.1.10
contact_groups red
parents serverRouter
}
Descripción de los parámetros puestos en este file:
host_name: Nombre para el equipos a monitorear
alias: Nombre para identificar el host, en el GUI del Nagios
address: Dirección IP del Dispositivo a monitorear
check_command: El tipo de comando que deseamos ejecutar
check_interval: El intervalo de tiempo para ejecutar el comando
retry_interval: El intervalo de intentos
max_check_attempts: La cantidad de intentos máxima
check_period: El período de tiempo a monitorear
contact_groups: Grupo de contactos para los cuales enviaremos notificaciones
notification_interval: Intervalo de tiempo para las notificaciones
notification_period: Periodo de tiempo para notificar
notification_options: Las opciones de notificación
hostgroups: El grupo en donde agruparemos los dispositivos
parents: De qué equipo depende la conexión física o lógica del dispositivo que estamos declarando
icon_image: La imagen para representar a nuestro dispositivo a nivel de los servicios
statusmap_image: La imagen para representar a nuestro dispositivo dentro del mapa
action_url: Este parámetro nos permite declarar el link de administración de nuestro dispositivo, para poder accesarlo desde el GUI del administrador del Nagios.
host_name: Nombre para el equipos a monitorear
alias: Nombre para identificar el host, en el GUI del Nagios
address: Dirección IP del Dispositivo a monitorear
check_command: El tipo de comando que deseamos ejecutar
check_interval: El intervalo de tiempo para ejecutar el comando
retry_interval: El intervalo de intentos
max_check_attempts: La cantidad de intentos máxima
check_period: El período de tiempo a monitorear
contact_groups: Grupo de contactos para los cuales enviaremos notificaciones
notification_interval: Intervalo de tiempo para las notificaciones
notification_period: Periodo de tiempo para notificar
notification_options: Las opciones de notificación
hostgroups: El grupo en donde agruparemos los dispositivos
parents: De qué equipo depende la conexión física o lógica del dispositivo que estamos declarando
icon_image: La imagen para representar a nuestro dispositivo a nivel de los servicios
statusmap_image: La imagen para representar a nuestro dispositivo dentro del mapa
action_url: Este parámetro nos permite declarar el link de administración de nuestro dispositivo, para poder accesarlo desde el GUI del administrador del Nagios.
Después de esto ya tenemos nuestro servidor nagios funcionando y
monitoreando todos nuestros equipos. Espero que les haya servido de mucho este
tutorial.
No hay comentarios:
Publicar un comentario