====== NAGIOS2 para el monitoreo de los servicios ======
1.- Instalar Nagios
apt-get install nagios2 nagios-plugins nagios-images
2.- Al instalar el nagios-plugins nos va pedir que instalemos varios paquetes com el samba pero todo se deja en blanco y el dhcp del samba le decimos que no.
3.- Una vez instalado abrir un navegador e ir a http://localhost/nagios2 de lo contrario hacer un virtual host que apunte a esta direccion /usr/share/nagios2/htdocs debe salir la ventana de seguridad de nagios. Vamos a /etc/nagios2 y creamos el file con usuario que va a administrar el servicio via web.
htpasswd -c /etc/nagios2/htpasswd.users nagiosadmin
accedemos a la pagina y veremos un ejemplo de los servicios locales ...
DE AQUI EN ADELANTE EMPEZAMOS YA LA CONFIGURACION DE NAGIOS2
Estructura de los archivos....
web /usr/share/nagios2/htdocs/
configuracion /etc/nagios2/conf.d/
plugins /etc/nagios-plugins/
vamos a poner un ejemplo de un servidor el cual va a tener los siguientes servicios..
mail
ftp
http
1. Definir los contactos a los cuales vamos a enviar los reportes..de los servicio
editamos el file de configuracion contacts_nagios2.cfg y le ponemos esto dentro.
define contact{
contact_name admin
alias Administrador Nagios
contactgroups admin
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 lolo@micorreo.cu
}
donde...
define contact{
contact_name {nombre del contacto}
alias {descripcion del contacto}
contactgroups {grupo de contactos al cual pertenece}
service_notification_period {priodo de tiempo de notificaciones de servicios}
host_notification_period {priodo de tiempo de notificaciones de hosts}
service_notification_options {opciones de notificacion por servicio}
host_notification_options {opciones de notificacion por host}
service_notification_commands {comando de notificacion a utilizar por servicio}
host_notification_commands {comando de notificacion a utilizar por host}
email {direccion de email del contacto}
}
define contactgroup{
contactgroup_name admins ; el grupo al que pertenece (lo creamos nosotros)
alias Admins vcl.rimed.cu ; nombre descriptivo del grupo
members admin ; usuario que va a pertenecer a este grupo (si hay mas de uno es separado por coma)
}
2. Agregamos los host a los cuales vamos a comprobar reportes de servicios (no recomendable para hacer en la maquina localhost) en el file host-gateway_nagios2.cfg
define host{
use generic-host
host_name mailserver
alias servidor de correo
address 10.10.10.1
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,u,r
}
define host{
use {ver abajo} se recomienda ponerlo en sentido general
host_name {nombre-host}
alias {alias-descriptivo}
address {ip}
check_command {commando para chequear el host} (para esto primero has un ping a ese servidor si no te va a dar como apagado)
contact_groups {grupo de contacto};
max_check_attempts {maxima cantidad de chequeos}
notification_interval {intervalo de tiempo entre notificaciones}
notification_period {priodo de tiempo de notificaciones}
notification_options {cuando enviar notificaciones} ver abajo
}
use generic-services #eso es para todos los sistemas operativos
local-services # para servicios locales
linux-services
windows-services
storage-services # lo referente a discos y almacenamientos
notification_options
Esta directiva indica a Nagios en que momentos debe enviar notificaciones de estado
d = DOWN cuando el host esta caido
?
u = UNREACHABLE cuando el host no es visible o es inalcanzable
?
r = RECOVERY (OK) cuando el host se recupero
?
f = FLAPPING cuando el host se inicia o detiene
n = NONE no enviar notificaciones
?
3. definir los grupos de maquinas (servidores) que van a ser verificados por el nagios
que esta en el file hostgroups_nagios2.cfg
define hostgroup {
hostgroup_name ISP ; nombre del grupo
alias servidores
members mailserver ; los maquinas que va a pertenecer a este grupo.. (mas de una separada por coma)
}
4. Este el el file mas trabajoso en el cual se van a definir todos los servicios services_//nagios2.cfg//
Hay dos formas de definir los servicios.
1 por grupo (ejemplo hacer chequeo a todo el grupo)
2 independiente (ejemplo hacer chequeo a maquinas y sus servicios por independientes)
para esto vamos a trabajar en el segundo ya que es el mas recomendable
editamos el file anterior y comentamos todo lo que esta dentro y agregamos esto:
define service {
use generic-services
host_name mailserver
service_description salida smtp
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_period 24x7
notification_options c,r
check_command check_smtp
}
define service {
donde...
define service {
use {template de servicio a utilizar}
host_name {hosts que ejecutan dicho servicio}
service_description {descripcion del servicio}
servicegroups {grupo al cual pertenece} (opcional)
is_volatile {si el servicio es volatil}
check_period {periodo de tiempo para el chequeo}
max_check_attempts {maximo de intentos de chequeo}
normal_check_interval {intervalo de tiempo a programar los chequeos}
retry_check_interval {intervalo de tiempo para un re-chequeo}
contact_groups {grupo de contacto};
max_check_attempts {maxima cantidad de chequeos}
notification_period {priodo de tiempo de notificaciones}
notification_options {cuando enviar notificaciones}
check_command {comando de chequeo con sus argumentos}
}
check_command es el comando que se le va a asignar a ese servicio desde el plugins... veamos el ejemplo anterior
check_command check_smtp
en el directorio de plugins hay uno que se llama //mail.cfg// y dentro tiene el commando asignado para verificar el puerto smtp lo mismo pasa con todos los otros servicios
define service {
use generic-services
host_name mailserver
service_description servicio http
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_period 24x7
notification_options c,r
check_command check_http
}
5. APARTE DE LO QUE SE EXPLICA AQUI EN LAS CONFIGURACIONES
FILES
contacts_nagios2.cfg # comentar todo menos lo explicado
extinfo_nagios2.cfg # comentar todo
generic-host_nagios2.cfg # esto no tocar.. es de forma general lo que se configura en los host
generic-service_nagios2.cfg # esto no tocar.. es de forma general lo que se configura en los servicios
host-gateway_nagios2.cfg # Comentar todo menos lo explicado
hostgroups_nagios2.cfg # comentar todo menos lo explicado
localhost_nagios2.cfg # comentar todo
services_nagios2.cfg # comentar todo menos lo explicado
timeperiods_nagios2.cfg # no tocar (Opcional) es donde se define el tiempo (check_period)
con esto ya estamos casi listo para arrancar el demonio del //nagios2//.
para comprobar si tenemos algun error en la configuracion ejecutamos
nagios2 -v /etc/nagios2/nagios.cfg
ponerlo publico o no?
se puede poner publico si no habilitas los comandos externos los cuales te permiten parar e iniciar los servicios via web esto se deshabilita y se habilita en //nagios.cfg// línea 130
para quitar la autenticacion //cgi.cfg// línea 84
//apache2.conf// de nagios línea 16 18 19
si no hay errores reiniciamos el nagios
invoke-rc.d nagios2 restart
NOTA: Para que el nagios nos reporte los servicios tenemos que intalar postfix en el servidor que está el nagios y en el //main.cf// en la linea que dice
relayhost = {ip del servidor SMTP de la red local}