21
Cuando se hace alguna modificación en los archivos de nagios, lo p es un debug, para ello usaremos el siguiente comando: nagios3 -v /etc/nagios3/ nagios.cfg En el archivo cgi.cfg: Dentro de dicho archivo se encuentran las siguientes líneas (a lo cuales se indica el usuario que tendr acceso a distintos módulos 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 en dicho archivo tambi$n se muestra la forma en como se mostrar l nagios, nosotros podemos definir cual se quiere por default: # 0 = User-defined coordinates # 1 = Depth layers # 2 = Collapsed tree # 3 = Balanced tree # 4 = Circular # = Circular !"ar ed Up$ default%status&ap%layout=3 En otra parte del archivo, la siguiente línea indica la ruta del c ping , % cuntos paquete enviarn a los equipos monitori!ados, siendo & el valor predetermi ping_syntax=/bin/ping -n -U -c 5 $!"# %%&'""$ Con los resultados obtenidos del comando ping #agios obtendr valores promedios % para determinar el estado % la disponibilidad de un dispositivo. En el archivo nagios.cfg, se muestra: Dentro de dicho archivo se encuentra las siguientes líneas, en don la rotación de los registros se reali!ar de manera diaria ( daily ). Dicha configuración puede cambiarse, sin embargo se recomienda llevar el registro de manera la visuali!ación de eventos pasados: ( )!* &!# #+!, '#!% ( #his is the log rotation method that ,agios should use to rotate ( the main log file. alues are as follo0s.. ( n = ,one - don1t rotate the log ( h = ourly rotation 2top of the hour ( d = %aily rotation 2midnight every day

Manual Nagios

Embed Size (px)

DESCRIPTION

Aprende a usar Nagios, configuraciones básicas.

Citation preview

Cuando se hace alguna modificacin en los archivos de nagios, lo primero que se tiene que hacer es un debug, para ello usaremos el siguiente comando:

Cuando se hace alguna modificacin en los archivos de nagios, lo primero que se tiene que hacer es un debug, para ello usaremos el siguiente comando:

nagios3 -v /etc/nagios3/nagios.cfgEn el archivo cgi.cfg:

Dentro de dicho archivo se encuentran las siguientes lneas (a lo largo de varias secciones), en las cuales se indica el usuario que tendr acceso a distintos mdulos en la interfaz web de Nagios:

authorized_for_system_information=nagiosadminauthorized_for_configuration_information=nagiosadminauthorized_for_system_commands=nagiosadminauthorized_for_all_services=nagiosadminauthorized_for_all_hosts=nagiosadminauthorized_for_all_service_commands=nagiosadminauthorized_for_all_host_commands=nagiosadminen dicho archivo tambin se muestra la forma en como se mostrar los mapas en la interfaz web de nagios, nosotros podemos definir cual se quiere por default:# 0 = User-defined coordinates# 1 = Depth layers# 2 = Collapsed tree# 3 = Balanced tree# 4 = Circular# 5 = Circular (Marked Up)default_statusmap_layout=3En otra parte del archivo, la siguiente lnea indica la ruta del comando ping, y cuntos paquetes se enviarn a los equipos monitorizados, siendo 5 el valor predeterminado:

ping_syntax=/bin/ping -n -U -c 5 $HOSTADDRESS$Con los resultados obtenidos del comando ping Nagios obtendr valores promedios y los usar para determinar el estado y la disponibilidad de un dispositivo.

En el archivo nagios.cfg, se muestra:Dentro de dicho archivo se encuentra las siguientes lneas, en donde la ltima de ellas indica que la rotacin de los registros se realizar de manera diaria (daily). Dicha configuracin puede cambiarse, sin embargo se recomienda llevar el registro de manera diaria para mayor facilidad en la visualizacin de eventos pasados:

# LOG ROTATION METHOD# This is the log rotation method that Nagios should use to rotate# the main log file. Values are as follows..# n = None - don't rotate the log# h = Hourly rotation (top of the hour)# d = Daily rotation (midnight every day)# w = Weekly rotation (midnight on Saturday evening)# m = Monthly rotation (midnight last day of month)log_rotation_method=dEn la siguiente lnea se indica la ruta en donde se almacenarn los registros anteriores de Nagios, los cuales se consultarn a travs de la interfaz web, aunque tambin pueden revisarse de manera manual:

log_archive_path=/var/log/nagios3/archivesEn nagios no estan incluidos todos los servicios, por ende se deduce lo siguiente:

check_clamd -> check_tcpcheck_ftp -> check_tcpcheck_imap -> check_tcpcheck_jabber -> check_tcpcheck_nntp -> check_tcpcheck_nntps -> check_tcpcheck_pop -> check_tcpcheck_simap -> check_tcpcheck_spop -> check_tcpcheck_ssmtp -> check_tcpcheck_udp -> check_tcpPor lo anterior se deduce que el plugin check_tcp puede usarse de manera genrica para monitorizar servicios para los cuales no existe un plugin especfico.

En este punto es importante que uno sepa qu servicios se desean monitorizar (y sus puertos asociados), para que de esta manera se pueda reconocer aqullos servicios en la red que se desea monitorizar -servicios para los cuales no existan plugins especficos- y por lo tanto se proceda a definir los comandos personalizados que monitorizarn dichos servicios. Por mencionar 2 ejemplos: no existe un plugin especfico para el servicio RDP (Remote Desktop Protocol), el cual habilita el puerto 3389 (TCP); tampoco existe un plugin especfico para el servicio VNC (Virtual Network Computing), el cual habilita el puerto 5900 (TCP).

As que (continuando con este tutorial, y como ejemplos para fines ilustrativos) se agregarn 2 comandos al final o al principio del archivo commands.cfg . Dichos comandos se utilizarn ms adelante para monitorizar aqullos dispositivos que cuenten con los citados servicios de RDP y VNC, y se har con el apoyo del plugin check_tcp :

###################################################################################### para comprobar el servicio RDP (Remote Desktop Protocol), en el puerto 3389define command {command_name check_rdpcommand_line /usr/lib/nagios/plugins/check_tcp -H $HOSTADDRESS$ -p 3389}

###################################################################################### para comprobar el servicio VNC (Virtual Network Computing), en el puerto 5900

define command {command_name check_vnccommand_line /usr/lib/nagios/plugins/check_tcp -H $HOSTADDRESS$ -p 5900}Bsicamente, se ha definido el nombre del comando y luego el comando en s. En la lnea del comando se ha usado el plugin check_tcp mencionado anteriormente, en donde el parmetro -H (host) y la variable $HOSTADDRESS$ indican a Nagios cul equipo ser monitorizado, y el parmetro -p (port) indica el puerto en el que se probar la conexin TCP.

Siguiendo los 2 ejemplos anteriores es posible agregar otros comandos personalizados si ya se ha determinado que no existen plugins especficos para ciertos servicios.

En la carpeta OBJECTS, podemos encontrar:objects/commands.cfg

Definicion de comandos de ejecucion por default, con los alias que queremos usar

objects/contacts.cfg

Definicion de contactos de notificacion

objects/localhost.cfg

Plantilla inicial para el chequeo del host local

objects/printer.cfg

Plantilla de ejemplo de chequeo de impresoras por SNMP

objects/switch.cfg

Plantilla de ejemplo de chequeo de switch por SNMP

objects/templates.cfg

Plantillas generales de host, contactos, y serviciosobjects/timeperiods.cfg

Plantilla inicial para definir periodos de chequeos, aqu se definen los rangos de tiempo donde son vlidos el envo de alertas y las verificaciones de los servicios que estn funcionando

objects/windows.cfg

Plantilla de ejemplo de chequeo de equipos Windows

Creando directivas

Debemos crear algunas entradas de configuracin para especificar donde encontramos los servicios, grupos, contactos etc, las mismas debemos incluirlas en nuestro archivo de configuracin nagios.cfg

# Directorio con la configuracin de grupos de Hosts de los Servidores

cfg_dir=/usr/local/nagios/etc/hostgroups

# Directorio con la configuracin de grupos de servicios de los Servidores

cfg_dir=/usr/local/nagios/etc/servicegroup

# Directorio con la configuracin de contactos

cfg_dir=/usr/local/nagios/etc/contacts

# Directorio con la configuracin de grupos de contacto

cfg_dir=/usr/local/nagios/etc/contactgroups

# Directorio con la configuracin de servicioscfg_dir=/usr/local/nagios/etc/services

# Directorio con la configuracin de los comandos

cfg_dir=/usr/local/nagios/etc/commands

# Directorio con la configuracin de los equipos a monitorear

cfg_dir=/usr/local/nagios/etc/servers

Con la directiva cfg_dir el indicamos Nagios que tome como configuracin los archivos con extencion cfg encontrados en tal directorio.

Agregando Grupos de contacto

Para que el Nagios enve notificaciones sobre el estado de los servicios es necesario definir grupos a los cuales envirselas, y dentro de ellos estarn los miembros a cuales enviarlos

A continuacin podemos ver una configuracin tpica de un grupo de contactos

define contactgroup{

contactgroup_name admin

alias Administrators

members admin-sap,admin-windows

}

define contactgroup{

contactgroup_name {nombre del grupo contacto}

alias {descripcion}

members {miembros del grupo}

}

contactgroup_name

Nombre que se le asignara al grupo de contacto

alias

Descripcin corta para identificar al grupo

members

Miembros del grupo separados por comas

Se deber crear el archivo {nagios-dir}/etc/contactgroups/{nombregrupodecontacto.cfg} con las entradas correspondientes anteriormente explicadas.

Agregando Contactos

Para recibir las notificaciones de Nagios es necesario generar contactos que estn incluidos en diferentes grupos de contactos, una configuracin simple para un contacto se ve como la siguiente entrada

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 root@localhost

}

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}

}

contact_name

Nombre literal a asignarle al contacto

alias

Alias descriptivo del contacto, ej Administrador de Routers

contactgroups

Grupos de contactos a los cuales pertenece

service_notification_period

Periodo de tiempo en el cual recibir notificaciones sobre el estado de los servicios

host_notification_period

Periodo de tiempo en el cual recibir notificaciones sobre el estado de los hosts

service_notification_options

Opciones de cuando realizar una notificacin sobre el estado de un servicio

host_notification_options

Opciones de cuando realizar una notificacin sobre el estado de un host

service_notification_commands

Comando para realizar la notificacin del estado del servicio

host_notification_commands

Comando para realizar la notificacion del estado del host

email

Email perteneciente al contacto en el cual recibira las notificaciones por email. Para que esto funcione se debe tener correctamente configurado el mail delivery local.

Se deber crear el archivo {nagios-dir}/etc/contacts/{nombredecontacto.cfg} con las entradas correspondientes anteriormente explicadas.

Agregando Comandos

En Nagios los encargados de recabar los datos del monitoreo, de mostrar alertas, de todas las tareas, son los comandos.

Los mismos se dividen en comandos de performance y en comandos de chequeo, los primeros son utilizados para algunos casos en particular.

Los comandos de chequeo no traen datos de los equipos a monitorear, como consumo de CPU, Memoria, Disco, procesos corriendo, puertos abiertos etc, es decir todos los datos necesarios de la monitoria.

Los comandos de performance se utilizan cuando hay que guardar ciertos datos o enviarlos a algn host externo etc, con informacin de algn servicio.

Una entrada en un archivo de configuracin de comandos puede ser como la siguiente

define command{

command_name check_snmp_mem

command_line $USER1$/check_snmp_mem.pl -H $HOSTADDRESS$ $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$

}

define command{

command_name {nombre del comando}

command_line {datos de ejecucion}

}

command_name

El nombre que el comando tendra para nuestra configuracin personal de Nagios

command_line

Modo del cual Nagios ejecutara el comando en cuestin, con su ruta fsica y argumentos Lo que vemos en entre signos $ son variables internas de nagios, llamadas macros, las mas comunes son:

$USER1$ : Contiene datos del path de ejecucin de los plugins de Nagios

$HOSTADDRESS$ : Tiene la IP de hosts desde el cual se esta corriendo el servicio

$ARG1$ $ARG2$ $ARG3$ $ARG4$ : Son los nmeros en orden de argumentos que recibe el comando a ejecutar

Podemos definir nuestros propios macros seteando variables en el archivo resource.cfg

Se debern agregar al archivo {nagios-dir}/etc/commands.cfg las entradas correspondientes anteriormente explicadas.

Agregando Grupos de ServiciosLos grupos de servicio se utilizan para denotar un variedad de servicios sobre otros, debemos tener asignado aunque sea un servicio a ese grupo por que si no de lo contrario el Nagios mostrara un error al arranque, para eso lo asignamos en la propiedad servicegroups de un servicio en particular. Ejemplo de una entrada de grupo de servicios:

define servicegroup{

servicegroup_name lotus_response

alias Lotus Reponse Services

}

define servicegroup{

servicegroup_name {nombre corto del grupo de servicio}

alias {alias descriptivo completo del grupo}

}

Se deber crear el archivo {nagios-dir}/etc/servicegroup/{nombregrupodeservicios.cfg} con las entradas correspondientes anteriormente explicadas.

Agregando ServiciosA continuacion se muestra una tipica entrada de configuracin de un servicio

define service {

use windows

host_name srv1,srv2

hostgroup_name servidores-windows

service_description Verification disco F:

servicegroups storage

is_volatile 0

check_period 24x7

max_check_attempts 3

normal_check_interval 5

retry_check_interval 1

contact_groups windows

notification_interval 240

notification_period 24x7

notification_options c,r

check_command check_snmp_storage!^F!60!90!-C public!-r

}

define service {

use {template de servicio a utilizar}

host_name {hosts que ejecutan dicho servicio}

hostgroup_name {grupos de host que ejecutan ese servicio}

service_description {descripcion del servicio}

servicegroups {grupo al cual pertenece}

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_interval {intervalo de tiempo entre notificaciones}

notification_period {priodo de tiempo de notificaciones}

notification_options {cuando enviar notificaciones}

check_command {comando de chequeo con sus argumentos}

}

use

Template de servicio a utilizar

host_name

Nombre del o los host a los cuales esta asignado dicho servicio

hostgroup_name

Nombre del grupo de host en los cuales esta asignado dicho servicio, es til para cuando se vuelve tedioso poner uno por uno los nombres de los hosts a los cuales se asigna el servicio

service_description

Alias descriptivo del nombre del servicio

contact_groups

Grupos de contacto a los que enviar las notificaciones

max_check_attempts

Maxima cantidad de chequeos a efectuar por Nagios, antes de enviar un OK como resultado

normal_check_interval

Intervalo de tiempo antes de programar un nuevo chequeo del servicio

retry_check_interval

Intervalo de tiempo antes de realizar un re-chequeo del servicio

notification_interval

Esta directiva se utiliza para definir el nmero de las unidades del tiempo para esperar antes de re-notificar a un contacto que este servidor todava est abajo o inalcanzable. A menos que se haya cambiado la directiva interval_length del valor prefijado de 60, este nmero significar minutos. Si este valor se establece a 0, Nagios re-no notificar contactos sobre los problemas para este host - solamente una notificacin del problema ser enviada.

notification_period

Periodo de tiempo en el cualse envia notificacion y notificacion

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 es de estado cambiante

n = NONE no enviar notificaciones

check_command

Comando para efectuar el chequeo de dicho servicio

Se deber crear el archivo {nagios-dir}/etc/services/{nombreservicio.cfg} con las entradas correspondientes anteriormente explicadas.

Dependencia del estado del servicio por el estado de otro servicio

En caso en los cuales el estado de un servicio dependa de la disponibilidad o el estado de otro, se pueden definir dependencias. Una entrada a modo ejemplo puede ser:

define servicedependency{

host_name

Host A

service_description

Service A

dependent_host_name

Host B

dependent_service_descriptionService D

execution_failure_criteriau

notification_failure_criterian

}

define servicedependency{

host_name

{host donde se ejecuta el servicio dependiente}

service_description

{servicio dependiente}

dependent_host_name

{host donde se ejecuta el servicio del cual se depende}

dependent_service_description{servicio del cual se depende}

execution_failure_criteria{criterio para establecer el estado}

notification_failure_criteria{notificar segun x estado}

}

host_name

Nombre del o los host dentro de los cuales se ejecuta el servicio dependiente

service_description

Descripcion del servicio dependiente, debe ser igual a la entrada que aparece en la configuracion del servicio.

dependent_host_name

Host donde se esta ejecutando el servicio del cual se depende

dependent_service_description

Nombre descriptivo que corresponde al servicio del cual se depende, debe ser igual al de su configuracion de servicio

execution_failure_criteria

Criterios para definir el estado del servicio

notification_failure_criteria

En base a que estado realizar las notificaciones, si esta caido, si esta ok o no realizar notificaciones

Agregando Grupos de Hosts

Los host en nagios de puede agrupar mediante grupos y asi tener un listado aparte que los diferencia de los demas. por ejemplo tener por un lado los servidores SAP con Oracle y por otro los servidores Lotus, o Linux y Windows por separado etc.

Un archivo tipo de grupos de host se presenta a continuacion

define hostgroup {

hostgroup_name ramallo

alias Equipos de Ramallo

members ramallo,slnra01,srvrmlofs

}

define hostgroup {

hostgroup_name {nombre del grupo}

alias {alias descriptivo}

members {host miembros}

}

hostgroup_name

Nombre del grupo de hosts

alias

Alias descriptivo del grupo

members

Host que son miembros del grupo, debemos ingresar el host_name de cada uno separado por comas ,

Se deber crear el archivo {nagios-dir}/etc/hostgroups/{nombregrupodehosts.cfg} con las entradas correspondientes anteriormente explicadas.

Agregando Hosts

Para configurar un host con o sin SNMP previamente instalado y configurado como lo indicado anteriormente, para su posterior monitoreo. Se debe crear una entrada en la configuracion de Nagios.

Un tipico archivos hosts.cfg

define host{

use servidores

host_name servidorsap2

hostgroup_name servidores-linux

alias SAP SERVER

address 192.168.10.84

parents buenos_aires

contact_groups linux;

max_check_attempts 10

notification_interval 120

notification_period 24x7

notification_options d,u,r

}

define host{

use {template-host}

host_name {nombre-host}

hostgroup_name {grupos al que pertenece este host}

alias {alias-descriptivo}

address {ip}

parents {host del que depende}

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}

}

use

Template de host a utilizar

host_name

Nombre del host

hostgroup_name

Grupos a los que pertenece este host

address

Direccion IP del host

parents

Host del que depende y que esta delante suyo, por ejemplo puede ser un router o un equipo que le brinde la conectividad etc, y en el mapa se dibujara como dependiente de ese nodo

contact_groups

Grupos de contacto a los que enviar las notificaciones

max_check_attempts

Maxima cantidad de chequeos a efectuar por Nagios, antes de enviar un OK como resultado

notification_interval

Esta directiva se utiliza para definir el nmero de las unidades del tiempo para esperar antes de re-notificar a un contacto que este servidor todava est abajo o inalcanzable. A menos que se haya cambiado la directiva interval_length del valor prefijado de 60, este nmero significar minutos. Si este valor se establece a 0, Nagios re-no notificar contactos sobre los problemas para este host - solamente una notificacin del problema ser enviada.

notification_period

Periodo de tiempo en el cualse envia notificacion y notificacion

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 es de estado cambiante

n = NONE no enviar notificaciones

Se deber crear el un subdirectorio correspondiente al nombre del host y segun corresponda ubicarlo en el directorio servers/{linux-windows-lotus} o routers y deentro crear un archivo hosts.cfg con la configuracin anteriormente explicada, Informacion extendida de host

La informacion extendida de host se utiliza para el look and feel de los host dentro de los mapas de estado, ya sea tanto el 2D como el 3D

define hostextinfo{

host_name linuxoracle

notes Servidor Oracle de uniface

icon_image oracle.png

icon_image_alt Oracle

vrml_image oracle.png

statusmap_image oracle.gd2

}

define hostextinfo{

host_name {nombre de host}

notes {descripcion para el host}

icon_image {logo para ver en la interfaz web}

icon_image_alt {texto para el logo}

vrml_image {logo para ver en el mapa 3D}

statusmap_image {logo para ver en el mapa 2D}

}

host_name

Nombre del host al cual corresponde la informacin dada

notes

Pequea nota descriptiva de la informacion del host a presentar en los mapas de estado

icon_image

Icono a visualizar en el entorno html de la consola Nagios

icon_image_alt

Texto alternativo para mostrar al logo

vrml_image

Icono a visualizar en el mapa 3D

statusmap_image

Icono a visualizar en el mapa 2D

Se deber crear en el archivo hostextinfo.cfg dentro subdirectorio correspondiente al host con las entradas de configuracin anteriormente explicadas. Lo iconos se encuentran dentro del directorio {nagiosdir}share/images/logos/ tanto en su version png como gd

Para convertir una imagen png comun a un icono gd2 (necesario para la generacion del grafico de statusmap 2D) debemos ejecutar el siguiente comando:

pngtogd2 mi-icono.png mi-icono.gd2 1 1

El primer parametro es mi ya existente imagen png, el segundo parametro es el nombre de archivo de salida en formato gd2, el parametro 1 se refiere a que la cree en formato raw (crudo), y el segundo parmetro es para que lo cree sin compresin, todo esto se realiza dentro del directorio logos anteriormente explicado. INSTALACION DE NAGIOS Y CONFIGURACION DE CLIENTES WINDOWS-LINUXPara instalar nagios, se necesita de los siguientes prerrequisitos:

Prerequisistos* Apache* GCC Compiler* GD development libraries

Instalamos Apache y los otros prerequissitos con yum

yum install httpd

yum install gcc

yum install glibc glibc-common

yum install gd gd-devel

Para esta instalacin debemos de seguir el siguiente procedimiento:Creamos el usuario y le asignamos contrasea:

[root@localhost tmp]# useradd -m nagios[root@localhost tmp]# passwd nagiosChanging password for user nagios.New UNIX password: ********Retype new UNIX password: ********passwd: all authentication tokens updated successfully.Creamos un grupo llamado nagcmd y aadimos a este a los usuarios apache y nagios[root@localhost tmp]# groupadd nagcmd[root@localhost tmp]# usermod -a -G nagcmd nagios[root@localhost tmp]# usermod -a -G nagcmd apacheDescomprimimos el fichero nagios-3.0.6.tar.gz[root@localhost tmp]# tar -zxvf nagios-3.3.1.tar.gzNos metemos en el directorio que acabamos de descomprimir[root@localhost tmp]# cd nagios-3.3.1Ejecutamos el script de configuracin de nagios con el nombre del grupo creado[root@localhost nagios-3.3.1]# ./configure --with-command-group=nagcmdCompilamos el cdigo fuente de nagios[root@localhost nagios-3.3.1]# make all

Instalamos los binarios, el script de inicio, ficheros de configuracin de ejemplo y asignamos permisos en el directorio de comandos externo

make install

make install-init

make install-config

make install-commandmode

[root@localhost nagios-3.3.1]# make install

[root@localhost nagios-3.3.1]# make install-init

[root@localhost nagios-3.3.1]# make install-config

[root@localhost nagios-3.3.1]# make install-commandmode

Editamos contacts.cfg para definir el mail del administrador[root@localhost nagios-3.3.1]# nano /usr/local/nagios/etc/objects/contacts.cfgSe debe de buscar la siguiente parte y configurar el mail del administrador:define contact{ contact_name

nagiosadmin

use

generic-contact alias

Nagios Admin email [email protected]

}

Ahora se debe de configurar la interfaz web de configuracin de nagios:[root@localhost nagios-3.3.1]# make install-webconfAhora debemos de crear la cuenta nagiosadmin para poder loguearnos en la interfaz web de Nagios:[root@localhost nagios-3.3.1]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadminNew password: ********Re-type new password: ********Adding password for user nagiosadminReiniciamos Apache[root@localhost nagios-3.0.6]# service httpd restartCon esto ya hemos instalado nagios, ahora instalaremos nagios-plugins-1.4.15.tar.gz:

[root@localhost tmp]# tar -zxvf nagios-plugins-1.4.15.tar.gz[root@localhost tmp]# cd nagios-plugins-1.4.15

Compilamos e instalamos los plugins

./configure --with-nagios-user=nagios --with-nagios-group=nagios

make

make install

[root@localhost nagios-plugins-1.4.15]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios[root@localhost nagios-plugins-1.4.15]# make

[root@localhost nagios-plugins-1.4.15]# make install

Ahora se debe de configurar el server para que inicie automticamente el servicio nagios, con el siguiente procedimiento:

[root@localhost nagios-plugins-1.4.15]# chkconfig --add nagios[root@localhost nagios-plugins-1.4.15]# chkconfig nagios onPara finalizar la configuracin de nagios, se debe de verificar la configuracin de archivos es correcta y de esta manera no tener problemas al momento de ejecutar nagios, todo esto lo verificamos con la siguiente lnea:

[root@localhost nagios-plugins-1.4.15]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Ahora podremos conectarnos a Nagios con http://localhost_or_ip_or_hostname/nagios y con el usuario creado nagiosadmin.

INSTALACIN DE AGENTES DE MONITORIZACION WINDOWS-LINUX

Primero se debe de instalar el demonio NRPE, en el servidor nagios para que escuche todos los comandos que se ejecutan en el equipo cliente, se seguir el siguiente procedimiento:

Extraeremos el archivo con el siguiente comando:

Tar zxvf nrpe-2.12.tar.gz

Cd nrpe-2.12

Y ejecutamos la siguiente lnea:

./configure

Make all

Luego instalaremos el plugin NRPE para testear, el demonio, y el ejemplo de configuracin del demonio:

make install-plugin

make install-daemon

make install-daemon-config

Instalamos el demonio NRPE como un servicio que correr bajo xinetd:

Make install-xinetd

Editamos el achivo ubicado en: /etc/xinetd.d/nrpe y agregamos la ip del server de monitorizacin:

only_from = 127.0.0.1 Editamos el archivo ubicado en: /etc/services, para el demonio NRPE y agregamos la siguiente lnea:

nrpe

5666/tcp

# NRPE

Para finalizar la configuracin reiniciamos el servicio xinetd, con la siguiente lnea:

Service xinetd restart

Ahora testearemos localmente el demonio NRPE, con la siguiente lnea:Netstat at | grep nrpe

La salida que nos debe mostrar es la siguiente:

tcp00 *:nrpe*.*LISTEN

Si en caso no mostrase dicho mensaje se deber de verificar lo siguiente:

La lnea extra mencionada arriba en el archivo /etc/services

La directiva de only_from en el archivo /etc/xinetd.d/nrpe que contenga una entrada para 127.0.0.1. Que el servicio xinetd este instalado e iniciado.

Se deber de verificar los archivos logs del sistemay buscar referencias acerca de xinetd o nrpe y reparar cualquier problema reportado.

A continuacin, verificaremos que el demonio NRPE esta funcionando correctamente, para esto correremos el plugin check_nrpe que se instal para hacer pruebas: /usr/local/nagios/libexec/check_nrpe -H localhostCon esta lnea deberemos de obtenet una lnea donde nos indique la versin de nrpe que tenemos instalado en nuestro server nagios:

NRPE v2.12

Monitoreando equipos windowsLa primera vez que configuremos Nagios para monitorear una mquina Windows, necesitamos realizar un poco ms de trabajo, se seguir el siguiente procedimiento:

Editamos el archivo de configuracin de Nagios principal (main).

nano /usr/local/nagios/etc/nagios.cfg

Quitamos el caracter michi (#) de la siguiente lnea del archivo de configuracin principal:

#cfg_file=/usr/local/nagios/etc/objects/windows.cfg

Grabamos y salimos.Instalando el agente en Windows

1. Descargamos la ltima versin estable del complemento NSClient++ http://sourceforge.net/projects/nscplus2. Se procede a descomprimir los archivos de NSClient++-0.3.9-win32.zip en un nuevo directorio C:\ NSClient++

3. Abrimos una ventana de consola( ejecutar(cmd), y cambiamos al directorio C:\NSClient++4. Registramos el servicio de NSClient++ con el siguiente comando:

nsclient++ /install5. Instalamos el systray de NSClient++ con el siguiente comando (Systray es case-sensitive):

nsclient++ SysTray

6. Abrimos el administrador de servicios y le damos click derecho ( propiedades sobre el servicio NSClientpp y habilitamos el check de permitir que el servicio interactue con el escritorio.

7. Editamos el archivo NSC.INI (localizado en el directorio C:\NSClient++) y realizamos los siguientes cambios: Descomentamos todos los mdulos que aparecen listados en la seccin [modules], excepto CheckWMI.dll y RemoteConfiguration.dll

Opcionalmente, si requiere una contrasea para los clientes, cambie la opcin 'password' en la seccin [Settings].

Descomentamos la opcin 'allowed_hosts' en la seccin [Settings]. Agregamos la direccin IP del servidor de Nagios en esta lnea o dejarla en blanco para permitir a todos los equipos conectarse.

Aseguramos que la opcin 'port' en la seccin [NSClient] esta descomentada y asignada a '12489' ( puerto por default).

8. Iniciamos el servicio de NSClient++ con el siguiente comando:

nsclient++ /startAhora debemos de agregar este equipo en los archivos del server nagios para poder monitorear sus servicios, el archivo que deberemos de modificar deber ser el template Windows.cfg, el cul se encuentra ubicado en la siguiente ruta:

/usr/local/nagios/etc/objects/windows.cfgSe darn algunos ejemplos de como agregar servicios de monitorizacin:

Agregamos la siguiente definicin de servicio para monitorear el uso de CPU en el servidor Windows y generar una alerta CRITICA si en 5 minutos la carga de CPU es de 90% o ms o una alerta PRECAUCIN (WARNING) si en 5 minutos la carga es de 80% o ms.

define service{use generic-servicehost_name winserverservice_description CPU Loadcheck_command check_nt!CPULOAD!-l 5,80,90}

Agregamos la siguiente definicin de servicio para monitorear el uso de memoria del servidor Windows y generar una alerta CRITICA si el uso de memoria es de 90% o ms y una alerta de PRECAUCIN (WARNING) si el uso de memoria es de 80% o ms.

define service{use generic-servicehost_name winserverservice_description Memory Usagecheck_command check_nt!MEMUSE!-w 80 -c 90

}Agregamos la siguiente definicin de servicio para monitorear el uso en el disco C:\ del servidor Windows y generar una alerta CRITICA si el uso en disco es de 90% o ms y una alerta de PRECAUCIN (WARNING) si el uso en disco es de 80% o ms.

define service{use generic-servicehost_name winserverservice_description C:\ Drive Spacecheck_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90}

Agregamos la siguiente definicin de servicio para monitorear el estado del servicio W3SVC en una mquina Windowsy generar una alerta CRITICA si el servicio es detenido.

define service{use generic-servicehost_name winserverservice_description W3SVCcheck_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC}

Agregamos la siguiente definicin de servicio para monitorear el proceso Explorer.exe de una mquina Windowsy generar una alerta CRITICA si el proceso no se est ejecutando.

define service{use generic-servicehost_name winserverservice_description Explorercheck_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe}