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.cfg
En 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=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 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=3
En 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=d
En 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/archives
En nagios no estan incluidos todos los servicios, por ende se deduce lo siguiente:
check_clamd -> check_tcp
check_ftp -> check_tcp
check_imap -> check_tcp
check_jabber -> check_tcp
check_nntp -> check_tcp
check_nntps -> check_tcp
check_pop -> check_tcp
check_simap -> check_tcp
check_spop -> check_tcp
check_ssmtp -> check_tcp
check_udp -> check_tcp
Por 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 3389
define command {
command_name check_rdp
command_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_vnc
command_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 servicios
objects/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 servicios
cfg_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
alias
members
}
define contactgroup{
contactgroup_name
alias
members
}
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
admin
Administrators
admin-sap,admin-windows
{nombre del grupo contacto}
{descripcion}
{miembros del grupo}
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
alias
contactgroups
service_notification_period
host_notification_period
service_notification_options
host_notification_options
service_notification_commands
host_notification_commands
email
}
define contact{
contact_name
alias
contactgroups
service_notification_period
servicios}
host_notification_period
hosts}
service_notification_options
host_notification_options
service_notification_commands
servicio}
host_notification_commands
host}
email
}
admin
Administrador Nagios
admin
24x7
24x7
w,u,c,r
d,u,r
notify-by-email
host-notify-by-email
root@localhost
{nombre del contacto}
{descripcion del contacto}
{grupo de contactos al cual pertenece}
{priodo de tiempo de notificaciones de
{priodo de tiempo de notificaciones de
{opciones de notificacion por servicio}
{opciones de notificacion por host}
{comando de notificacion a utilizar por
{comando de notificacion a utilizar por
{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 Servicios
Los 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
alias
}
define servicegroup{
servicegroup_name
alias
}
lotus_response
Lotus Reponse Services
{nombre corto del grupo de servicio}
{alias descriptivo completo del grupo}
Se deber crear el archivo {nagios-dir}/etc/servicegroup/{nombregrupodeservicios.cfg} con las
entradas correspondientes anteriormente explicadas.
Agregando Servicios
A continuacion se muestra una tipica entrada de configuracin de un servicio
define service {
use
host_name
hostgroup_name
service_description
servicegroups
is_volatile
windows
srv1,srv2
servidores-windows
Verification disco F:
storage
0
check_period
max_check_attempts
normal_check_interval
retry_check_interval
contact_groups
notification_interval
notification_period
notification_options
check_command
r
}
define service {
use
host_name
hostgroup_name
servicio}
service_description
servicegroups
is_volatile
check_period
max_check_attempts
normal_check_interval
chequeos}
retry_check_interval
chequeo}
contact_groups
max_check_attempts
notification_interval
notificaciones}
notification_period
notification_options
check_command
}
24x7
3
5
1
windows
240
24x7
c,r
check_snmp_storage!^F!60!90!-C public!-
{template de servicio a utilizar}
{hosts que ejecutan dicho servicio}
{grupos de host que ejecutan ese
{descripcion del servicio}
{grupo al cual pertenece}
{si el servicio es volatil}
{periodo de tiempo para el chequeo}
{maximo de intentos de chequeo}
{intervalo de tiempo a programar los
{intervalo de tiempo para un re{grupo de contacto};
{maxima cantidad de chequeos}
{intervalo de tiempo entre
{priodo de tiempo de notificaciones}
{cuando enviar notificaciones}
{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
dependent_host_name
dependent_service_description
execution_failure_criteria
notification_failure_criteria
}
define servicedependency{
host_name
dependiente}
service_description
dependent_host_name
cual se depende}
dependent_service_description
execution_failure_criteria
notification_failure_criteria
}
Service A
Host B
Service D
u
n
{host donde se ejecuta el servicio
{servicio dependiente}
{host donde se ejecuta el servicio del
{servicio del cual se depende}
{criterio para establecer el estado}
{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
members
}
define hostgroup {
hostgroup_name
alias
members
}
Equipos de Ramallo
ramallo,slnra01,srvrmlofs
{nombre del grupo}
{alias descriptivo}
{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
host_name
hostgroup_name
alias
address
parents
contact_groups
max_check_attempts
notification_interval
notification_period
notification_options
}
define host{
use
host_name
hostgroup_name
alias
address
parents
contact_groups
max_check_attempts
servidores
servidorsap2
servidores-linux
SAP SERVER
192.168.10.84
buenos_aires
linux;
10
120
24x7
d,u,r
{template-host}
{nombre-host}
{grupos al que pertenece este host}
{alias-descriptivo}
{ip}
{host del que depende}
{grupo de contacto};
{maxima cantidad de chequeos}
notification_interval
notificaciones}
notification_period
notification_options
}
{intervalo de tiempo entre
{priodo de tiempo de notificaciones}
{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
notes
icon_image
icon_image_alt
vrml_image
statusmap_image
}
define hostextinfo{
host_name
notes
icon_image
icon_image_alt
vrml_image
statusmap_image
}
linuxoracle
Servidor Oracle de uniface
oracle.png
Oracle
oracle.png
oracle.gd2
{nombre de host}
{descripcion para el
{logo para ver en la
{texto para el logo}
{logo para ver en el
{logo para ver en el
host}
interfaz web}
mapa 3D}
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
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-LINUX
Para instalar nagios, se necesita de los siguientes prerrequisitos:
Prerequisistos
* Apache
* GCC Compiler
* GD development libraries
Instalamos Apache y los otros prerequissitos con yum
yum
yum
yum
yum
install
install
install
install
httpd
gcc
glibc glibc-common
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 nagios
Changing 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 apache
Descomprimimos el fichero nagios-3.0.6.tar.gz
[root@localhost tmp]# tar -zxvf nagios-3.3.1.tar.gz
Nos metemos en el directorio que acabamos de descomprimir
[root@localhost tmp]# cd nagios-3.3.1
Ejecutamos el script de configuracin de nagios con el nombre del grupo creado
[root@localhost nagios-3.3.1]# ./configure --with-command-group=nagcmd
Compilamos 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
make
make
make
install
install-init
install-config
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.cfg
Se debe de buscar la siguiente parte y configurar el mail del administrador:
define contact{
contact_name
use
alias
email
}
nagiosadmin
generic-contact
Nagios Admin
javcasta2002@yahoo.com
Ahora se debe de configurar la interfaz web de configuracin de nagios:
[root@localhost nagios-3.3.1]# make install-webconf
Ahora 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 nagiosadmin
New password: ********
Re-type new password: ********
Adding password for user nagiosadmin
Reiniciamos Apache
[root@localhost nagios-3.0.6]# service httpd restart
Con 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-nagiosuser=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 on
Para 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 <nagios_ip_address>
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:
tcp
0 *: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 localhost
Con 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 windows
La 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/nscplus
2. 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( ejecutarcmd), y cambiamos al directorio C:\NSClient+
+
4. Registramos el servicio de NSClient++ con el siguiente comando:
nsclient++ /install
5. Instalamos el systray de NSClient++ con el siguiente comando (Systray es casesensitive):
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++ /start
Ahora 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.cfg
Se 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-service
host_name winserver
service_description CPU Load
check_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-service
host_name winserver
service_description Memory Usage
check_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-service
host_name winserver
service_description C:\ Drive Space
check_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-service
host_name winserver
service_description W3SVC
check_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-service
host_name winserver
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}