Manual Nagios
-
Upload
jose-calachahuin -
Category
Documents
-
view
15 -
download
6
description
Transcript of Manual Nagios
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 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}