Post on 31-Dec-2015
Gestion y Monitoreo de Redes
Instalacion y Configuracion de Nagios
Notas:
------
* Comandos que empiezan con un "$" implica que deberia ejecutar el comando
como un usuario general - no como root.
* Comandos que empiezan con un "#" implica que deberia trabajar como el usuario root.
* Comandos con lineas mas especificas (como "GW-RTR>" o "mysql>") implica que esta
ejecutando el comando en un equipo remoto o dentro otro programa.
* Si una linea termina con un "\" esto indica que el comando sigue en la proxima
linea y Ud. deberia tratar el comando si como fuera en una sola linea.
Ejercicios
-----------
Ejercicios Parte I
------------------
0. Haz un log in en su PC o abre una ventana de terminal como el usuario sysadmin.
1. Para instalar Nagios version 3 en Ubuntu podria hacer esto como el usuario
sysadmin usando "sudo" o como root:
# apt-get install nagios3
Ya esta instalado Version 3 de Nagios, pero puede correr el comando si quiere.
2. Nagios deberia estar corriendo ya
- En un Navegador vaya al:
http://localhost/nagios3/
- Cuando pregunta por un usuario y clave usa:
user: nagiosadmin
pass: <clave del taller>
3. Miramos a los archivos instalados...
# cd /etc/nagios3/
# ls -l
-rw-r--r-- 1 root root 1882 2008-12-18 13:42 apache2.conf
-rw-r--r-- 1 root root 10524 2008-12-18 13:44 cgi.cfg
-rw-r--r-- 1 root root 2429 2008-12-18 13:44 commands.cfg
drwxr-xr-x 2 root root 4096 2009-02-14 12:33 conf.d
-rw-r--r-- 1 root root 26 2009-02-14 12:36 htpasswd.users
-rw-r--r-- 1 root root 42539 2008-12-18 13:44 nagios.cfg
-rw-r----- 1 root nagios 1293 2008-12-18 13:42 resource.cfg
drwxr-xr-x 2 root root 4096 2009-02-14 12:32 stylesheets
# ls -l conf.d/
-rw-r--r-- 1 root root 1695 2008-12-18 13:42 contacts_nagios2.cfg
-rw-r--r-- 1 root root 418 2008-12-18 13:42 extinfo_nagios2.cfg
-rw-r--r-- 1 root root 1152 2008-12-18 13:42 generic-host_nagios2.cfg
-rw-r--r-- 1 root root 1803 2008-12-18 13:42 generic-service_nagios2.cfg
-rw-r--r-- 1 root root 210 2009-02-14 12:33 host-gateway_nagios3.cfg
-rw-r--r-- 1 root root 976 2008-12-18 13:42 hostgroups_nagios2.cfg
-rw-r--r-- 1 root root 2167 2008-12-18 13:42 localhost_nagios2.cfg
-rw-r--r-- 1 root root 1005 2008-12-18 13:42 services_nagios2.cfg
-rw-r--r-- 1 root root 1609 2008-12-18 13:42 timeperiods_nagios2.cfg
Archivos con un "2" en su nombre no han cambiado desde version 2 de Nagios.
El archivo host-gateway_nagios3.cfg fue cambiado entre versiones, asi tiene
un nombre nuevo.
PARTE II
Configurando Equipos en Nagios
-----------------------------------------------------------------------------
0. El Orden de la Configuracion
Conceptualmente vamos a construir nuestra configuracion desde arriba por abajo de nuestra Red.
Asi, vamos a definir entradas por los rutadores y conmutadores (switches) primero. Despues esto
empezamos con los PCs, etc...
Llendo desde arriba por abajo habra definido los dispositivos que acutan como parientes por el
resto de los dispositvos primero.
1. Configurar Nagios monitorear las rutadores del curso
# cd /etc/nagios3/conf.d/
# vi routers.cfg
define host {
use generic-host
host_name gw
alias rutador del borde
address 10.10.254.254
}
Ahora definimos entradas por los tres enrutadores que tenemos. Nota
la entrada de "parents" de "sw1" - vamos a definir "sw1" en switches.cfg.
define host {
use generic-host
host_name rtr1
alias rutador del grupo 1 de VMs
address 10.10.1.254
parents sw1
}
define host {
use generic-host
host_name rtr2
alias rutador del grupo 2 de VMs
address 10.10.2.254
parents sw1
}
define host {
use generic-host
host_name rtr3
alias enrutador de los clientes
address 10.10.3.254
parents sw1
}
Graba y salga del archivo /etc/nagios3/conf.d/routers.cfg
2. Configuramos los Conmutadores (Switches)
Nota que cada switch tendra una relacion de pariente con uno de las rutadores.
# vi switches.cfg
Primero el switch de "backbone" (troncal)
define host {
use generic-host
host_name sw1
alias conmuatdor troncal
address 10.10.254.253
parents gw
}
Nota las entradas de "parents" - Ya hicimos las entradas de los "parents" en
el archivo rutadores.cfg, asi esto funciona.
Ahora el conmutador de los clientes del curso (portatiles, PCs de Windows)
define host {
use generic-host
host_name sw2
alias conmutador de los clientes
address 10.10.3.250
parents rtr3
}
Graba y salga del archivo /etc/nagios3/conf.d/switches.cfg
3. Crea entradas por cada PC en la sala
Ahora en un solo archivo vamos a definir todo los PCs en la sala. Puede hacer esto en varios archivos (grupo1-pcs.cfg, grupo2-pcs.cfg) si quiere, pero por nuestro curso usamos un solo archivo.
Abajo hay tres entradas de ejemplo. Usa estos para hacer las entradas por todo los PCs
Nota los parientes (parents) de cada uno. PCs de grupo 1 tienen como pariente el enrutador del grupo 1,
o rtr1. PCs de grupo 2 tienen como pariente el enrutador del grupo 2 or rtr2. Normalmente seria un switch,
pero por el hecho que estamos usando maquinas virtuales no ne necesario tener un switch.
IMPORTANTE! No agrega una entrada por tu PC! Esto ya esta hecho en el archivo
/etc/nagios3/conf.d/localhost_nagios2.cfg - En este archivo puede definir el "parent" por el localhost
para que el instante de Nagios aparesca bien en los graficos de su Red.
Puede ver el archivo /etc/hosts para ver todo los PCs, conmutadores y rutatores de la sala.
Grupo 1
-------
pc1 a pc13
Grupo 2
-------
pc14 a pc26
Ahora, hacemos las entradas:
# vi pcs.cfg
# Nuestro NOC
define host {
use generic-host
host_name noc
alias Centro de Operaciones
address 10.10.3.5
parents sw2
}
# PCs de Grupo 1
define host {
use generic-host
host_name pc1
alias pc1 grupo 1
address 10.10.1.1
parents rtr1
}
# PCs de Grupo 2
define host {
use generic-host
host_name pc14
alias pc14 grupo 2
address 10.10.2.14
parents rtr2
}
Ahora sigue y agrega entradas por todo los PCs.
Graba y salga del archivo /etc/nagios3/conf.d/pcs.cfg
Ahora verificamos que nuestros archivos estan bien configurados
5. Verificamos que nuestros archivos estan bien configurados
# nagios3 -v /etc/nagios3/nagios.cfg
... Deberia ver :
Total Warnings: NN (aviso de falta de chequeo de servicios. No se preocupa.)
Total Errors: 0
Things look okay - No serious problems were detected during the check.
5. Recargar / Reinicializar Nagios
# /etc/init.d/nagios3 stop
# /etc/init.d/nagios3 start
Puede hacer "restart" pero no es 100% confiable.
6. Vaya al interfaz de la Web (http://localhost/nagios3) y verifica que las
entradas (PCs, conmutadores, rutadores) estan visibles. Apreta "Host Detail"
por la izquierda en Nagios para ver todo esto.
PART III
Configurar un Chequeo de Servicio por el NOC del Taller
-----------------------------------------------------------------------------
0. Configurando
Ahora que tenemos el hardware configurado vamos a configurar monitoreo de services, hacer grupos
de hardware y servicios, etc.
1. Associar un chequeo de servicio por el NOC del Taller
# vi hostgroups_nagios2.cfg
- Busca el hostgroup con nombre "ssh-servers". En la linea de "Members" cambia la linea:
members localhost
a
members localhost,noc
Salga y graba el archivo.
Verifica que todo esta bien:
# nagios3 -v /etc/nagios3/nagios.cfg
Reinitializar Nagios para ver los servicios nuevos asociado con el PC noc:
# /etc/init.d/nagios3 Restart
Apreta "Service Detail" para ver su entrada nueva.
PART IV
Definir Servicios por todo sus PCs
-----------------------------------------------------------------------------
1. Determinar que servicios estan corriendo por que dispositivos
- Esto es la clave de como uno usa Nagios y las herramientas de monitoreo.
Ahora decidimos que servicios vamos a monitorear para cada PC en nuestra sala:
- En nuestro casa tenemos:
rutadores: corriendo ssh y snmp
conmutadores: corriendo telnet y/o ssh y snmp
pcs: Corriendo ssh, http y snmp
Configuramos Nagios hacer checqueos por estes servicios en las maquinas de la
sala
2.) Verificar que SSH esta corriendo en los rutadores y en los PCs
- En el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg ya hay una entrada por
el chequeo del servicio de SSH. Solo tiene que redefinirlo. Al principio la
entrada se vea asi:
# A list of your ssh-accessible servers
define hostgroup {
hostgroup_name ssh-servers
alias SSH servers
members localhost,noc
}
Que deberiamos cambiar? Si, la linea de "members". Va a ser largo con todo los PCs listado
_menos_ su PC. Por ejemplo:
define hostgroup {
hostgroup_name ssh-servers
alias SSH servers
members localhost,noc,pc1,pc2,pc3,pc4....,rtr1,rtr2,rtr3
}
Pero, incluye todo los PCs
- Ahora salga y graba el archivo y verifica que todo esta bien:
# nagios3 -v /etc/nagios3/nagios.cfg
- Si todo esta bien haz:
# /etc/init.d/nagios3 stop
# /etc/init.d/nagios3 start
y revisa todo en la pagina web de Nagios.
3.) Verifica que http esta corriendo en todo los PCs de la sala.
- Esto es casi igual que el ejercicio anterior. Solo haz el cambio por el servicio
HTTP agregando los miembros de cada PC (rutadores y conmutadores no). Recuerda de
no agregar tu maquina porque ya esta configurado como "localhost"
PART V
Crear mas Grupos del Host
-----------------------------------------------------------------------------
1. Actualizar /etc/nagios3/conf.d/hostgroups_nagios2.cfg
- Por los ejercicios que vienen es muy util tener hech los grupos de hosts:
debian-servers
routers
switches
Abre el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg y vas a ver una
entra para debian-servers que solo incluya el localhost. Actualizar esto
para incluir todo los PCs en la sala.
# vi /etc/nagios3/conf.d/hostgroups_nagios2.cfg
Actualizar la entrada que dice:
# A list of your Debian GNU/Linux servers
define hostgroup {
hostgroup_name debian-servers
alias Debian GNU/Linux Servers
members localhost
}
Para que "members" contiene todo los pcs. Mas o menos asi:
members localhost,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9
pc10,pc11,pc12,pc13,pc14,pc15,pc16,pc17,pc18, etc...
- La linea no puede tener un break. Tiene que seguir como una sola linea.
- Despues agrega entradas por "routers" y uno por "switches" - Usa los
nombres "routers" y "switches"
- Cuando terminas verifica que todo esta bien, recarga Nagios y vea los
cambos en el interfaz Web.
PART V
Informacion Extendida de los Hosts (maquinas) - "O, hacer los graficos bonitos"
-------------------------------------------------------------------------------
1. Actualizar extinfo_nagios2.cfg
- Si quiere usar iconos en los opciones de graficos que tiene Nagios
(el Statusmap) esto es el archivo donde se define esto. Tenemos tres
tipos de maquinas:
Rutadores
Conmutadores
Servidores
Hay un repositorio bastante grande de imagenes de iconos disponible aqui:
/usr/share/nagios/htdocs/images/logos/
Estan instalado por defecto cuando instalamos Nagios en Ubuntu. Hay iconos
muy especifico de varios modelos de equipos, pero para hacer las cosas mas
simples vamos a usar los siguiente iconos:
/usr/share/nagios/htodcs/images/logos/base/debian.*
/usr/share/nagios/htdocs/images/logos/cook/router.*
/usr/share/nagios/htdocs/images/logos/cook/switch.*
- El proximo paso es editar el archivo /etc/nagios3/conf.d/extinfo_nagios2.cfg
y decir a Nagios que icons usar por cada maquina.
# vi /etc/nagios3/conf.d/extinfo_nagios2.cfg
Aqui es una muestra de como se vea una entrad para los rutadores. Ya hay una
entrada por debian-servers que funciona como esta. El modelo de rutador listado
no esta importante. El imagen es generico.
define hostextinfo {
hostgroup_name routers
icon_image cook/router.png
icon_image_alt Cisco Routers (3600)
vrml_image router.png
statusmap_image cook/router.gd2
}
Ahora agrega una entrada por tus conmutadores. Recuerda que llamaste el grupo
"switches". Despues, graba el archivo, verifica que todo esta bien y revise el
Status Map en la interfaz web para ver como esta todo.
PART VI
Crear Grupos de Servicio
-----------------------------------------------------------------------------
1. Crear un grupo de servicio para ssh y http for cada PC.
- La idea es crear dos grupos de services. Es un dispositivo y los servicios
asociado con el dispostivo por los dos grupos. Para hacer esto tiene que
crear un archivo nuevo:
# vi /etc/nagios3/conf.d/servicegroups.cfg
Una muestra para el grupo 1 (no es completo):
define servicegroup {
servicegroup_name servidores-grupo1
alias Servidores de Grupo 1
memberspc1,SSH,pc1,HTTP,pc2,SSH,pc2,HTTP,pc3,SSH,pc3,HTTP,pc4,SSH,pc4,HTTP,pc5,SSH,
pc5,HTTP,pc6,SSH,pc6,HTTP,pc7,SSH,pc7,HTTP,pc8,SSH,pc8,HTTP,pc9,SSH,pc9,HTTP
}
- La linea es una sola linea. No puede tener un break.
- SSH y FTP estan en mayuscalas porque asi es como la "service_description" esta escrito en el
archivo /etc/nagios3/conf.d/services_nagios2.cfg.
- Haz una entrada por los servidores de Grupo 2.
- Graba sus cambios y salga del archivo. Verifica que todo esta bien y recarga Nagios.
- Vea los grupos en el interfaz web bajo los menus "Servicegroup"
PART VII
Configurar acceso a "Guest" por el Interfaz Web de Nagios
-----------------------------------------------------------------------------
1. Abre el archivo /etc/nagios3/cgi.cfg para dar acceso de solo leer (r/o) a
un usuario "guest" por el interfaz de Web.
- Por defecto el usuario nagiosadmin tiene acceso leer y escribir (r/w)
a traves el interfaz Web de Nagios. Si quiere permitir otros usuarios
ver el estatus de su Red pero sin tener acceso de escribir (ejecutar
comandos, etc.) tenemos que hacer algunos cambios en el archivo de
cgi.cfg.
- Primero hacemos el usuario "guest" con un clave en el archivo do htpasswd.user.
# cd /etc/nagios3
# htpasswd /etc/nagios3/htpasswd.users guest
Puede usar cualquier clave, pero uno de "guest" no es tan malo...
- Ahora abre el archivo /etc/nagios3/cgi.cfg and busca el tipo de acceso que quiere
dar. Vas a ver esto (hemos sacado todo los comentarios que haya en el archivo):
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
Cambia estas entradas para permitir que el usuario "guest" tiene acceso a todo
la informacion que da Nagios, pero que no tiene acceso para hacer cambios. Lo
siguiente es tipico de acceso solo leer:
authorized_for_system_information=nagiosadmin,guest
authorized_for_configuration_information=nagiosadmin,guest
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin,guest
authorized_for_all_hosts=nagiosadmin,guest
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
- Haz los cambios, graba el archivo, salga del archivo, verifica que todo esta bien
y recargar Nagios.
- Para ver si esta funcionando vay a http://localhost/nagios3 y en tu navegador tiene
que limpiar los "cookies" para que recibes el dialogo de login por Nagios. Haz un
recargar de la pagina y intenta de entrar como el usuario guest.
OPCIONAL (No traducido)
-----------------------
1.) Verifica que SNMP esta corriendo en el NOC
- First you will need to add in the appropriate service check for SNMP in the file
/etc/nagios3/conf.d/services_nagios2.cfg. This is where Nagios is impressive. There
are hundreds, if not thousands, of service checks available via the various Nagios
sites on the web. You can see what plugins are installed by Ubuntu in the nagios3
package that we've installed by looking in the following directory:
# ls /usr/lib/nagios/plugins
As you'll see there is already a check_snmp plugin available to us. If you are
interested in the options the plugin takes you can execute the plugin from the
command line by typing:
# /usr/lib/nagios/plugins/check_snmp
to see what options are available, etc. You can use the check_snmp plugin and
Nagios to create very complex or specific system checks.
- Now to see all the various service/host checks that have been created using the
check_snmp plugin you can look in /etc/nagios-plugins/config/snmp.cfg. You will
see that there are a lot of preconfigured checks using snmp, including:
snmp_load
snmp_cpustats
snmp_procname
snmp_disk
snmp_mem
snmp_swap
snmp_procs
snmp_users
snmp_mem2
snmp_swap2
snmp_mem3
snmp_swap3
snmp_disk2
snmp_tcpopen
snmp_tcpstats
snmp_bgpstate
check_netapp_uptime
check_netapp_cupuload
check_netapp_numdisks
check_compaq_thermalCondition
And, even better, you can create additional service checks quite easily.
For the case of verifying that snmpd (the SNMP service on Linux) is running we
need to ask SNMP a question. If we don't get an answer, then Nagios can assume
that the SNMP service is down on that host. When you use service checks such as
check_http, check_ssh and check_telnet this is what they are doing as well.
- In our case, let's create a new service check and call it "check_system". This
service check will connect with the specified host, use the private community
string we have defined in class and ask a question of snmp on that ask - in this
case we'll ask about the System Description, or the OID "sysDescr.0" -
- To do this start by editing the file /etc/nagios-plugins/config/snmp.cfg:
# vi /etc/nagios-plugins/config/snmp.cfg
At the top (or the bottom, your choice) add the following entry to the file:
# 'check_system' command definition
define command{
command_name check_system
command_line /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -C
'$ARG1$' -o sysDescr.0
}
You may wish to copy and past this vs. trying to type this out.
Note that "command_line" is a single line. If you copy and paste in vi the line
may not wrap properly and you may have to manually add the part:
'$ARG1$' -o sysName.0
to the end of the line.
- Now you need to edit the file /etc/nagios3/conf.d/services_nagios2.cfg and add
in this service check. We'll run this check against all our servers in the
classroom, or the hostgroup "debian-servers"
- Edit the file /etc/nagios3/conf.d/services_nagios2.cfg
# vi /etc/nagios3/conf.d/services_nagios2.cfg
At the bottom of the file add the following definition:
# check that snmp is up on all servers
define service {
hostgroup_name snmp-servers
service_description SNMP
check_command check_system!public
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
The "xxxxxx" is the community string previously (or to be) defined in class.
In our case this is "public" for our PCs.
For our routers and switches the community string is "unan-ro" - Create another
service entry like this:
# check that snmp is up on all servers
define service {
hostgroup_name snmp-routers-switches
service_description SNMP
check_command check_system!unan-ro
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
Note that we have included our private community string here vs. hard-coding
it in the snmp.cfg file earlier.
- Now we must create the "snmp-servers" group in our hostgroups_nagios2.cfg file.
Edit the file /etc/nagios3/conf.d/hostgroups_nagios2.cfg and go to the end of the
file. Add in the following hostgroup definition:
# A list of snmp-enabled devices on which we wish to run the snmp service check
define hostgroup {
hostgroup_name snmp-servers
alias snmp servers
membersnoc,pc1,pc2,pc3,pc4,pc5, etc...
}
And for our routers and switches:
define hostgroup {
hostgroup_name snmp-routers-switches
alias snmp on our network infrastructure
membersgw-rtr,grupo1-rtr,grupo2-rtr,grupo1-sw,grupo2-sw
}
- Now verify that your changes are correct and restart Nagios.
- If you click on the Service Detail menu choice in web interface you should see
the SNMP check appear.
- After we do the SNMP presentation and exercises in class, then you could come
back to this exercise and add in all the classroom PCs to the members list in the
hostgroups_nagios2.cfg file, snmp-servers hostgroup definition. Remember to list
your PC as "localhost".
Ultima actualizacion 3 de Agosto 2010 por HA
Gestion y Monitoreo de Redes
Instalacion y Configuracion de Nagios
Notas:
------
* Comandos que empiezan con un "$" implica que deberia ejecutar el comando
como un usuario general - no como root.
* Comandos que empiezan con un "#" implica que deberia trabajar como el usuario root.
* Comandos con lineas mas especificas (como "GW-RTR>" o "mysql>") implica que esta
ejecutando el comando en un equipo remoto o dentro otro programa.
* Si una linea termina con un "\" esto indica que el comando sigue en la proxima
linea y Ud. deberia tratar el comando si como fuera en una sola linea.
Ayuda
-----
* Todo los archivos de configuracion estan disponible aqui:
http://noc.ws.nsrc.org/configs/nagios3/
Ejercicios
-----------
Ejercicios Parte I
------------------
0. HAZ UNA CONECCION SSH A SU PC
1. INSTALA NAGIOS
Para instalar Nagios version 3 en Ubuntu podria hacer esto como el usuario
sysadmn usando "sudo" o como root. Como sysadm es asi:
$ sudo apt-get install nagios3
Durante la instalacion es posible que Nagios va a instalar el programa
Postfix como un MTA (Servidor de Correo) para que se puede mandar correos
si es necesario. Si tiene que elegir como se instala Postfix responde con:
"Internet Site"
Cuando Nagios te pide por una contrasena usa la contrasena del curso.
Si quieres tener la documentacion de Nagios en HTML (disponible a traves
el interfaz de Nagios) instala:
$ sudo apt-get install nagios3-doc
Ya, Nagios esta instalado.
2. USAR NAGIOS
- En un Navegador vaya al:
http://pcN.ws.nsrc.org/nagios3/
- Cuando pregunta por un usuario y contrasena usa:
user: nagiosadmin
pass: <clave del taller>
Vas a ver que Nagios tiene una entrada por tu maquina (pcN.ws.nsrc.org
como "localhost" y por el enlace del puerto (gateway) de nuestra red
del taller.
3. REVISAR LOS ARCHIVOS DE CONFIGURACION
$ cd /etc/nagios3/
# ls -l
-rw-r--r-- 1 root root 1882 2008-12-18 13:42 apache2.conf
-rw-r--r-- 1 root root 10524 2008-12-18 13:44 cgi.cfg
-rw-r--r-- 1 root root 2429 2008-12-18 13:44 commands.cfg
drwxr-xr-x 2 root root 4096 2009-02-14 12:33 conf.d
-rw-r--r-- 1 root root 26 2009-02-14 12:36 htpasswd.users
-rw-r--r-- 1 root root 42539 2008-12-18 13:44 nagios.cfg
-rw-r----- 1 root nagios 1293 2008-12-18 13:42 resource.cfg
drwxr-xr-x 2 root root 4096 2009-02-14 12:32 stylesheets
$ ls -l conf.d/
-rw-r--r-- 1 root root 1695 2008-12-18 13:42 contacts_nagios2.cfg
-rw-r--r-- 1 root root 418 2008-12-18 13:42 extinfo_nagios2.cfg
-rw-r--r-- 1 root root 1152 2008-12-18 13:42 generic-host_nagios2.cfg
-rw-r--r-- 1 root root 1803 2008-12-18 13:42 generic-service_nagios2.cfg
-rw-r--r-- 1 root root 210 2009-02-14 12:33 host-gateway_nagios3.cfg
-rw-r--r-- 1 root root 976 2008-12-18 13:42 hostgroups_nagios2.cfg
-rw-r--r-- 1 root root 2167 2008-12-18 13:42 localhost_nagios2.cfg
-rw-r--r-- 1 root root 1005 2008-12-18 13:42 services_nagios2.cfg
-rw-r--r-- 1 root root 1609 2008-12-18 13:42 timeperiods_nagios2.cfg
Archivos con un "2" en su nombre no han cambiado desde version 2 de Nagios.
El archivo host-gateway_nagios3.cfg fue cambiado entre versiones, asi tiene
un nombre nuevo.
4. REVISA EL ARCHIVO DE CONFIGURACION POR EL GATEWAY DEL CURSO
$ cd /etc/nagios3/conf.d/
$ cat host-gateway_nagios3.cfg
Vas a ver algo como:
# a host definition for the gateway of the default route
define host {
host_name gateway
alias Default Gateway
address 10.10.0.254
use generic-host
}
Esto es solo para empezar de acustambrarse a los archivos de configuracion
de Nagios.
PARTE II
Configurando Equipos en Nagios
-----------------------------------------------------------------------------
0. EL ORDEN DE LA CONFIGURACION
Conceptualmente vamos a construir nuestra configuracion desde arriba por abajo de nuestra Red.
Asi, vamos a definir entradas por los rutadores y conmutadores (switches) primero. Despues
empezamos con los PCs. Cuando tengas todo los dispositivos configurado tienes que configurar
grupos de dispositivos y darlos nombres. Finalmente, agregra chequeos de servicios a los
grupos de dispositivos.
Flujo Conceptual de Configuracion
---------------------------------
OJO: NO ES UN EJERCICIO
== Etapa 1 ==
gw-rtr ==> routers.cfg
|
|
sw ==> switches.cfg (padre es gw-rtr)
|
|
rtrN ==> routers.cfg (padre es sw)
|
|
pcN ==> pcs.cfg (padre es rtrN)
== Etapa 2 ==
Agrupar los dispositivos ==> hostgroups_nagios2.cfg
- routers (gw-rtr,rtr1,rtr2,...,rtr6)
- switches (sw)
- pcs (pc1,pc2,...,pc24,noc)
- ssh-servers (localhost,pc1,pc2,...,pc24,ap1,ap2,rtr1,...,rtr6)
- http-servers (localhost,pc1,pc2,...,pc24)
== Etapa 3 ==
Asignar chequeos de servicio a grupos ==> services_nagios2.cfg
- http-servers ==> HTTP
- ssh-servers ==> SSH
== Opcional 1 ==
Configura acceso de "guest" al interfaz web ==> /etc/nagios3/cgi.cfg
== Opcional 2 ==
Crea Grupos de Servicios ==> servicegroups.cfg
== Opcional 3 ==
Agregar informacion extendida a los dispositivos ==> extinfo_nagios2.cfg
1. CONFIGURAR NAGIOS PARA MONITOREAR LOS ROUTERS DEL CURSO
Vamos a trabajar como el usuario root.
# sudo bash
# cd /etc/nagios3/conf.d/
# vi routers.cfg
Abajo son las entradas del archivo. Sugerimos que ud. tipea uno a dos
de las entradas. Despues puede hacer un corte y pegar por lo demas.
Entiende porque el "parent" de rtr1 a rtr6 (o hasta rtr9) es "sw"?
Despues que terminamos con este archivo vamos a configurar la entrada por
el switch "sw". Se puede usar el diagrama de red como referencia.
#
# Archivo con definiciones de los Routers por Nagios
#
define host {
use generic-host
host_name rtr
alias rutador del borde
address 10.10.0.254
}
define host {
use generic-host
host_name rtr1
alias rutador del grupo 1 de VMs
address 10.10.1.254
parents sw
}
define host {
use generic-host
host_name rtr2
alias rutador del grupo 2 de VMs
address 10.10.2.254
parents sw
}
define host {
use generic-host
host_name rtr3
alias rutador del grupo 3 de VMs
address 10.10.3.254
parents sw
}
define host {
use generic-host
host_name rtr4
alias rutador del grupo 4 de VMs
address 10.10.4.254
parents sw
}
define host {
use generic-host
host_name rtr5
alias rutador del grupo 5 de VMs
address 10.10.5.254
parents sw
}
define host {
use generic-host
host_name rtr6
alias rutador del grupo 6 de VMs
address 10.10.6.254
parents sw
}
#
# Routers 7, 8 y 9 si estan disponible
#
define host {
use generic-host
host_name rtr7
alias rutador del grupo 7 de VMs
address 10.10.7.254
parents sw
}
define host {
use generic-host
host_name rtr8
alias rutador del grupo 8 de VMs
address 10.10.8.254
parents sw
}
define host {
use generic-host
host_name rtr9
alias rutador del grupo 9 de VMs
address 10.10.9.254
parents sw
}
#
# Nuestros puntos de acceso inalambrico
#
define host {
use generic-host
host_name ap1
alias Punto de Acceso 1
address 10.10.0.251
parents sw
}
define host {
use generic-host
host_name ap2
alias Punto de Acceso 2
address 10.10.0.252
parents sw
}
#
# Fin del archivo
#
Graba y salga del archivo /etc/nagios3/conf.d/routers.cfg
2. CONFIGURACION DE LOS SWITCHES
Nota que cada switch tendra una relacion de pariente con uno de las rutadores.
# vi switches.cfg
Primero el switch de "backbone" (troncal)
#
# Archivo con definiciones de los Switches por Nagios
#
define host {
use generic-host
host_name sw
alias conmuatdor troncal
address 10.10.0.253
parents rtr
}
#
# Fin del archivo
#
Graba y salga del archivo /etc/nagios3/conf.d/switches.cfg
Por este taller hay solo un switch para configurar.
3. CONFIGURACION DE LOS PCS
Ahora en un solo archivo vamos a definir todo los PCs en la sala. Puede hacer esto en varios archivos
(grupo1-pcs.cfg, grupo2-pcs.cfg) si quiere, pero por nuestro curso usamos un solo archivo.
Abajo hay tres entradas de ejemplo. Usa estos para hacer las entradas por todo los PCs
PCs de grupo 1 tienen como padre el enrutador del grupo 1, o rtr1. PCs de grupo 2 tienen como padre el
enrutador del grupo 2 or rtr2. Normalmente seria un switch, pero por el hecho que estamos usando maquinas
virtuales no hay un switch fisico disponible.
IMPORTANTE! No agrega una entrada por tu PC. Esto ya esta hecho en el archivo
/etc/nagios3/conf.d/localhost_nagios2.cfg - En este archivo puede definir el "parent" por el localhost
para que el instante de Nagios aparesca bien en los graficos de su Red.
Vea http://nsrcwsnoc.ddns.net/wikis/gt/wiki/DiagramaRed para ver todo los PCs, los grupos, y que
router pertenesca a cada grupo.
# vi pcs.cfg
#
# Archivo con definiciones de los PCs por Nagios
#
#
# Nuestro NOC
#
define host {
use generic-host
host_name noc
alias Centro de Operaciones
address 10.10.0.254
parents sw
}
#
# PCs del Grupo 1
#
define host {
use generic-host
host_name pc1
alias pc1 del grupo 1
address 10.10.1.1
parents rtr1
}
define host {
use generic-host
host_name pc2
alias pc2 del grupo 1
address 10.10.1.2
parents rtr1
}
#
# termina pc5 y pc7
#
#
# PCs del Grupo 2
#
define host {
use generic-host
host_name pc5
alias pc5 del grupo 2
address 10.10.2.5
parents rtr2
}
define host {
use generic-host
host_name pc6
alias pc6 del grupo 2
address 10.10.2.6
parents rtr2
}
#
# termina pc7 y pc8
#
Ahora, haz entradas por los PCs en su grupo, o, si quieres por todo los
PCs del taller. Solo queremos que Ud. entiende como funciona la configuracion
de los PCs.
Graba y salga del archivo /etc/nagios3/conf.d/pcs.cfg
Ahora verificamos que nuestros archivos estan bien configurados
5. VERIFICAR CONFIGURATION DE NAGIOS
# nagios3 -v /etc/nagios3/nagios.cfg
... Deberia ver :
Total Warnings: NN (aviso de falta de chequeo de servicios. No se preocupa.)
Total Errors: 0
Things look okay - No serious problems were detected during the check.
Si hay errores lea que dice en la pantalla y intenta reparar los problemas en
los archivos de configuracion.
6. COMO PARAR, INICIALIZAR Y/O REINICIALIZR NAGIOS
# /etc/init.d/nagios3 stop
# /etc/init.d/nagios3 start
Puede hacer "restart" pero no es 100% confiable.
7. VERIFICA LA CONFIGURACION DE NAGIOS HASTA AHORA
Vaya al interfaz de la Web (http://pcN.ws.nsrc.org/nagios3) y verifica que las
entradas (PCs, conmutadores, rutadores) estan visibles. Apreta "Host Detail"
por la izquierda en Nagios para ver esto.
PARTE III
Configurar un Chequeo de Servicio por el NOC del Taller
-----------------------------------------------------------------------------
0. CONFIGURAR CHEQUE DE SERVICIOS
Ahora que tenemos el hardware configurado vamos a configurar monitoreo de services, hacer grupos
de hardware y servicios, etc.
1. HACER UN CHEQUEO DE SERVICIO SSH POR EL ROUTER DE SU GRUPO
# vi hostgroups_nagios2.cfg
- Busca el hostgroup con nombre "ssh-servers". En la linea de "Members" cambia la linea:
members localhost
a
members localhost,rtrN
donde el "N" es el numero de su grupo (asi, "rtr1" por el grupo uno).
Salga y graba el archivo.
Verifica que todo esta bien:
# nagios3 -v /etc/nagios3/nagios.cfg
Reinitializar Nagios para ver los servicios nuevos asociado con el router rtrN:
# /etc/init.d/nagios3 stop
# /etc/init.d/nagios3 start
En el interfaz Web de Nagios:
http://noc.ws.nsrc.org/nagios3/
Apreta "Service Detail" (menu a la izquierda) para ver su entrada nueva.
PARTE IV
Definir Servicios por todo sus Dispositvos
-----------------------------------------------------------------------------
0. SERVICIOS CORRIENDO
rutadores: ssh y snmp
conmutadores: snmp
aps: ssh y snmp
pcs: ssh, http y snmp
Configuramos Nagios hacer checqueos por estes servicios en las maquinas de
nuestro taller. La configuracion de chequeo de SSH y HTTP es facil. De SNMP
es mas involcrado y es un ejercicio opcional.
1. CONFIGURAR EL CHEQUEO DE SSH POR LOS PCS, ROUTERS Y APS
En el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg ya hay una entrada por
el chequeo del servicio de SSH. Solo tiene que redefinirlo.
Abre el archivo:
# vi /etc/nagios3/conf.d/hostgroups_nagios2.cfg
Al principio la entrada de ssh se vea asi:
# A list of your ssh-accessible servers
define hostgroup {
hostgroup_name ssh-servers
alias SSH servers
members localhost,noc
}
Que deberiamos cambiar? Si, la linea de "members". Va a ser largo con todo los PCs listado
_menos_ su PC. Su PC es "localhost". Por ejemplo:
define hostgroup {
hostgroup_name ssh-servers
alias SSH servers
members localhost,noc,pc1,pc2,pc3,pc4....,rtr1,rtr2,rtr3,...,ap1,ap2
}
Pero, incluye todo los PCs, Routers y APs que ya tiene configurado. No incluye maquinas
no configurados.
hora salga y graba el archivo y verifica que todo esta bien:
# nagios3 -v /etc/nagios3/nagios.cfg
Si todo esta bien haz:
# /etc/init.d/nagios3 stop
# /etc/init.d/nagios3 start
y revisa todo en la pagina web de Nagios que el chequeo de servicio de SSH esta
funcionando.
2. CONFIGURAR EL CHEQUEO DE HTTP POR TODO LOS PCS
- Esto es casi igual que el ejercicio anterior. Solo haz el cambio por el servicio
HTTP agregando los miembros de cada PC (rutadores y conmutadores no). Recuerda de
no agregar tu maquina porque ya esta configurado como "localhost", y solo agrega
los PCs que ya esta configurados por Usted.
PARTE V
Crear mas Grupos del Host
-----------------------------------------------------------------------------
1. Actualizar /etc/nagios3/conf.d/hostgroups_nagios2.cfg
Por los ejercicios que vienen es muy util tener hecho los grupos de hosts:
debian-servers
routers
switches
Abre el archivo /etc/nagios3/conf.d/hostgroups_nagios2.cfg y vas a ver una
entra para debian-servers que solo incluya el localhost. Actualizar esto
para incluir todo los PCs en la sala.
# vi /etc/nagios3/conf.d/hostgroups_nagios2.cfg
Actualizar la entrada que dice:
# A list of your Debian GNU/Linux servers
define hostgroup {
hostgroup_name debian-servers
alias Debian GNU/Linux Servers
members localhost
}
Para que "members" contiene todo los pcs. Mas o menos asi:
members localhost,pc1,pc2,pc3,pc4,pc5,pc6,pc7,pc8,pc9, etc...
- OJO! La linea no puede tener un break. Tiene que seguir como una sola linea.
- Despues agrega entradas por "routers" y uno por "switches" - Usa los
nombres "routers" y "switches"
- Cuando terminas verifica que todo esta bien, recarga Nagios y vea si haya
cambos en el interfaz Web.
PARTE VI (OPCIONAL)
Configurar acceso a "Guest" por el Interfaz Web de Nagios
-----------------------------------------------------------------------------
1. Abre el archivo /etc/nagios3/cgi.cfg para dar acceso de solo leer (r/o) a
un usuario "guest" por el interfaz de Web.
- Por defecto el usuario nagiosadmin tiene acceso leer y escribir (r/w)
a traves el interfaz Web de Nagios. Si quiere permitir otros usuarios
ver el estatus de su Red pero sin tener acceso de escribir (ejecutar
comandos, etc.) tenemos que hacer algunos cambios en el archivo de
cgi.cfg.
- Primero hacemos el usuario "guest" con un clave en el archivo do htpasswd.user.
# cd /etc/nagios3
# htpasswd /etc/nagios3/htpasswd.users guest
Puede usar cualquier clave, pero uno de "guest" no es tan malo...
- Ahora abre el archivo /etc/nagios3/cgi.cfg and busca el tipo de acceso que quiere
dar. Vas a ver esto (hemos sacado todo los comentarios que haya en el archivo):
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
Cambia estas entradas para permitir que el usuario "guest" tiene acceso a todo
la informacion que da Nagios, pero que no tiene acceso para hacer cambios. Lo
siguiente es tipico de acceso solo leer:
authorized_for_system_information=nagiosadmin,guest
authorized_for_configuration_information=nagiosadmin,guest
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin,guest
authorized_for_all_hosts=nagiosadmin,guest
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
- Haz los cambios, graba el archivo, salga del archivo, verifica que todo esta bien
y recargar Nagios.
- Para ver si esta funcionando vay a http://localhost/nagios3 y en tu navegador tiene
que limpiar los "cookies" para que recibes el dialogo de login por Nagios. Haz un
recargar de la pagina y intenta de entrar como el usuario guest.
PARTE VII (OPCIONAL)
Informacion Extendida de los Hosts (maquinas) - "O, hacer los graficos bonitos"
-------------------------------------------------------------------------------
1. Actualizar extinfo_nagios2.cfg
- Si quiere usar iconos en los opciones de graficos que tiene Nagios
(el Statusmap) esto es el archivo donde se define esto. Tenemos tres
tipos de maquinas:
Rutadores
Conmutadores
Servidores
Hay un repositorio bastante grande de imagenes de iconos disponible aqui:
/usr/share/nagios/htdocs/images/logos/
Estan instalado por defecto cuando instalamos Nagios en Ubuntu. Hay iconos
muy especifico de varios modelos de equipos, pero para hacer las cosas mas
simples vamos a usar los siguiente iconos:
/usr/share/nagios/htodcs/images/logos/base/debian.*
/usr/share/nagios/htdocs/images/logos/cook/router.*
/usr/share/nagios/htdocs/images/logos/cook/switch.*
- El proximo paso es editar el archivo /etc/nagios3/conf.d/extinfo_nagios2.cfg
y decir a Nagios que icons usar por cada maquina.
# vi /etc/nagios3/conf.d/extinfo_nagios2.cfg
Aqui es una muestra de como se vea una entrad para los rutadores. Ya hay una
entrada por debian-servers que funciona como esta. El modelo de rutador listado
no esta importante. El imagen es generico.
define hostextinfo {
hostgroup_name routers
icon_image cook/router.png
icon_image_alt Cisco Routers (3600)
vrml_image router.png
statusmap_image cook/router.gd2
}
Ahora agrega una entrada por tus conmutadores. Recuerda que llamaste el grupo
"switches". Despues, graba el archivo, verifica que todo esta bien y revise el
Status Map en la interfaz web para ver como esta todo.
PARTE VIII (OPCIONAL)
Crear Grupos de Servicio
-----------------------------------------------------------------------------
1. Crear un grupo de servicio para ssh y http for cada PC.
- La idea es crear dos grupos de services. Es un dispositivo y los servicios
asociado con el dispostivo por los dos grupos. Para hacer esto tiene que
crear un archivo nuevo:
# vi /etc/nagios3/conf.d/servicegroups.cfg
Una muestra para el grupo 1 y 2 (no es completo):
define servicegroup {
servicegroup_name servidores-grupo1-2
alias Servidores de Grupo 1 y 2
memberspc1,SSH,pc1,HTTP,pc2,SSH,pc2,HTTP,pc3,SSH,pc3,HTTP,pc4,SSH,pc4,HTTP,pc5,SSH,
pc5,HTTP,pc6,SSH,pc6,HTTP,pc7,SSH,pc7,HTTP,pc8,SSH,pc8,HTTP
}
- OJO! La linea es una sola linea. No puede tener un break.
- SSH y FTP estan en mayuscalas porque asi es como la "service_description" esta escrito en el
archivo /etc/nagios3/conf.d/services_nagios2.cfg.
- Haz una entrada por los servidores de su grupo. Si quieres o hay tiempo puede
agregar todos los PCs (solo si estan configurados por Usted).
- Graba sus cambios y salga del archivo. Verifica que todo esta bien y recarga Nagios.
- Vea los grupos en el interfaz web bajo los menus "Servicegroup"
OPCIONAL (No traducido)
-----------------------
1.) Verifica que SNMP esta corriendo en el NOC
- Primero tiene que agregar un chequeo de servicio apropiado por SNMP en el archivo
/etc/nagios3/conf.d/services_nagios2.cfg. Esto es un fuerte de Nagios. Hay cientos,
si no miles, de chequeos de servicios disponibles en los sitios de web de Nagios.
Puede ver los plugins instalado por Ubuntu en el paquete de Nagios veando el
siguiente directorio:
# ls /usr/lib/nagios/plugins
Como puede ver ya hay un plugin de check_snmp disponible a nosotros. Si le interesa
las opciones que usa el plugin se puede ejecutar el plugin desde la linea de
comando asi:
# /usr/lib/nagios/plugins/check_snmp
Para ver que opciones hay. Puede usar el check_snmp plugin y Nagios para crear
chequeos hasta muy simples a muy complejos.
- Para ver todo los chequeos ya disponible por el check_snmp plugin revise el archivo
/etc/nagios-plugins/config/snmp.cfg. Vere que hay muchos chequeos preconfigurados
usando check_snmp, incluyendo:
snmp_load
snmp_cpustats
snmp_procname
snmp_disk
snmp_mem
snmp_swap
snmp_procs
snmp_users
snmp_mem2
snmp_swap2
snmp_mem3
snmp_swap3
snmp_disk2
snmp_tcpopen
snmp_tcpstats
snmp_bgpstate
check_netapp_uptime
check_netapp_cupuload
check_netapp_numdisks
check_compaq_thermalCondition
Aun mejor, puede hacer chequeos de servicios adicionales facilmente. Por el caso
de verificar que el servicio snmpd esta corriendo tenemos que hacer una pregunta
al servicio de snmpd. Si no recibimos un respuesta, asi Nagios puede asumnir que
el servicio de SNMP esta bajado en ese maquina. Cuando usa chequeos de servicios
como check_http, check_ssh y check_telnet esto es que ellos estan haciendo,
tambien.
- En nuestro caso, vamos a crear un chequeo de servicio nuevo y lo llamaremos
"check_system". Esto es nuestro chequeo de servicio que se va a conectar con la
maquina especifcado, usar un comunidad privado que hemos definido en el taller y
hacer una pregunta a travez snmp por este maquina - en este caso vamos a preguntar
por la descripcion del sistema (System Description), o por el OID "sysDescr.0"
- Para hacer esto abre el archivo /etc/nagios-plugins/config/snmp.cfg:
# vi /etc/nagios-plugins/config/snmp.cfg
Arriba en el archivo agrega la siguiente entrada:
# 'check_system' definicion de comando
define command{
command_name check_system
command_line /usr/lib/nagios/plugins/check_snmp -H '$HOSTADDRESS$' -C '$ARG1$' -o sysDescr.0
}
Sugerimos que haz una copia y pegar del texto arriba.
- Ahora tenemos que abrir el archivo /etc/nagios3/conf.d/services_nagios2.cfg y
agrega el siguiente chequeo de servicio. Vamos a correr este chequeo encontra
todo nuestro servidores (definidos por Usted) en el taller.
# vi /etc/nagios3/conf.d/services_nagios2.cfg
Al fondo del archivo agrega la siguiente definicion:
# verifica que snmpd esta corriendo en los servidores
define service {
hostgroup_name snmp-servers
service_description SNMP
check_command check_system!xxxxxxx
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
El "xxxxx" es el clave privado que definimos antes por snmp en el taller.
Por los routers y switches hacemos otra entrada asi:
# Verifica que snmp esta funcionando en los routers y switches
define service {
hostgroup_name snmp-routers-switches
service_description SNMP
check_command check_system!xxxxxxxx
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
Graba y salga del archivo /etc/nagios3/conf.d/services_nagios2.cfg
- Ahora tenemos que hacer el grupo "snmp-servers en el archivo hostgroups_nagios2.cfg.
Agrega la entrada al fondo del archivo:
# vi /etc/nagios3/conf.d/hostgroups_nagios2.cfg
# Una lista de dispositivos con snmp habilitados en que queremos correr el chequeo
# del servicio snmp (check_system).
define hostgroup {
hostgroup_name snmp-servers
alias snmp servers
membersnoc,localhost,pc1,pc2,pc3,pc4,pc5, etc...
}
Y, por nuestros routers y switches:
define hostgroup {
hostgroup_name snmp-routers-switches
alias snmp en la infraestructura de nuestra red
membersrtr,sw,rtr1,rtr2,rtr3, etc...
}
- Ahora verifica que sus cambios estan bien y reinicializar Nagios.
- Si haz un click en el menu de "Service Details" en el interfaz web de Nagios
deberias ver el chequeo de SNMP.
Ultima actualizacion 8 de Octubre 2011 por HA