Home > Linux, Redhat > Como instalar y configurar netdump

Como instalar y configurar netdump

En sistemas unix como HPUX, AIX, Solaris… cuando la máquina se reinicia por cualquier tipo de fallo (tanto software como hardware), la máquina genera lo que se denomina un crash.

Este crash, dump o volcado nos proporciona los estados del registro del procesador, el stack, contenido en memoria en el instante de la caida de la maquina etc etc… Esto generará uno o varios ficheros en la propia máquina que luego habitualmente se envían a soporte para que analicen el crash y puedan determinar los motivos del reinicio asi como si es necesario efectuar alguna reparación o parchear la máquina.

Esta funcionalidad para que la máquina nos genere un crash, como he comentado, viene por defecto en la gran mayoría de los unix, pero en el caso de los linux, deberemos de instarlo nosotros.

Existen almenos dos opciones, diskdump y netdump. La gran diferencia es que diskdump, generaría el volcado en el disco duro de la propia máquina mientras que con netdump, usaremos un servidor de dumps y cualquier crash que genere cualquier máquina, será enviado a este servidor a través de la red.

En este artículo, voy a tratar la instalación y configuración de netdump, para ello necesitaremos lo siguiente:

  • Un linux que hará de servidor de netdump
  • Almenos otro linux que hará de cliente de netdump (y que provocaremos un reinicio)
  • Los paquetes netdump y netdump-server acordes a nuestra distribución.

Instalamos el paquete netdump-server en la máquina que hará la funciones de servidor de netdump y el paquete netdump en la máquina que queremos que genere dumps cuando se reinicie. Eso se hace de manera habitual con rpm, apt etc.. sin mayores complicaciones.

En el caso del netdump-server nos creará un usuario llamado netdump al cual le deberemos de establecer una password que usaremos más adelante y para el caso del netdump-cliente nos generará unas claves DSA que se usarán para establecer relaciones de confianza para que al enviar el dump a través de la red, no pida contraseña.

La única configuración obligatoria que deberemos de realizar es configurar en el cliente, la ip del servidor de netdump que usará. Esto se hace editando el fichero /etc/sysconfig/netdump

NETDUMPADDR=IP-SERVIDOR-NETDUMP

A menos que se configure lo contrario, la comunicación se establecerá por el puerto 6666 UDP

Una vez tengamos los pasos anteriores realizados, propagaremos las claves DSA que ha generado el netdump-cliente, nos pedirá la password del usuario netdump.

[root@cliente]# /etc/init.d/netdump propagate
netdump@172.17.133.135′s password:
[root@cliente]#

Esto lo único que hace es distribuir las claves ssh de la siguiente manera:

cat /etc/sysconfig/netdump_id_dsa.pub |  ssh netdump@$NETDUMPADDR cat ‘>>’ /var/crash/.ssh/authorized_keys2

Ahora, tan solo necesitamos arrancar los servicios del servidor (/etc/init.d/netdump-server start) y de el cliente (/etc/init.d/netdump start). Acordaros de ponerlo en los runlevels correspondientes para que se inicie en el arranque de la máquina. Podremos ver que está funcionando por que nos generará un pequeño fichero de log bajo /var/crash/ip:fecha/ en el servidor indicando que ha arrancado un cliente y desde el propio cliente veremos el modulo de kernel netconsole cargado:

[root@servidor ]# cat log
[...network console startup...]

[root@cliente]# lsmod
Module                  Size  Used by    Tainted: P
netconsole             18020   0  (unused)
[...]

A partir de ahora, ya tendremos todo listo para probar nuestro servidor de netdump y que mejor manera que “crasheando” la máquina nostoros mismos :D

Para hacer esto, usaremos las magic keys que es una combinación de teclas Alt, SysRq + otra tecla. En funcion de la tecla que pulsemos, hará un volcado de los registros del procesador, enviará un SIGKILL a todos los procesos excepto el ini, hará un sync a todos los filesystems montados etc… Sí, al fin tiene utilidad la tecla sysrq/pet sis :D

Mi método preferido por rapidez es usar el echo, ya que de la otra manera habitualmente no estaremos delante del servidor físico y tendremos que entrar por consola y configurar las hot keys, así que os pongo a continuación la manera de generar un crash manualmente la máquina.

OJO QUE REINICIA LA MAQUINA

echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger

Lo que hacemos aquí es primero habilitar las magic keys y despues ejecutar la magic key “c” que realiza un reboot a la máquina y genera un crashdump. Podeis ver la lista completa de magic keys aqui

Tras esto, se debería de estar enviando el crash por red a la máquina servidor de netdump y generará un fichero vmcore bajo /var/crash/ip_cliente:fecha por lo que es recomendable que se cree un filesystem aparte para albergar los posibles dumps que generen las máquinas, así evitaremos el llenado del /var ya que hará un volcado de la practica totalidad de la memoria. Os puedo comentar que en generar un crash de 4Gb y enviarlo, se tardan unos 25 minutos en una red a 100Mbs.

Otro dato a tener en cuenta es que debemos de tener desactivado el ASR (automated system recovery) que es un timeout que se configura para los servidores proliant de HP y que consite en que cuando el harware no es capaz de hablar con el software en un periodo de tiempo determinado, reinicia la máquina al entender que se ha quedado colgada. Si se produce un ASR, no se generará dump.

Como ver si tenemos configurado el ASR:

[root@cliente]# hplog -a STATUS
Current ASR Status is ENABLED and the timeout value is 10

Como deshabilitarlo:

[root@cliente]# hplog -a DISABLE
Disabling ASR timer

Espero que esto os haya servido de ayuda y si teneis algún servidor que se reinicia sin motivos aparentes, os animo a que instaleis un servidor de netdump en vuestra plataforma, vale cualquier servidor (con espacio suficiente) ya que no consume recursos del sistema, aunque sí trafico de red cuando esté recibiendo los dumps.

Categories: Linux, Redhat Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.