Suscríbase al feed

Si en algún momento trabajó como administrador de sistemas, es probable que haya pasado por situaciones de gran estrés después de que un fallo en el sistema haya generado la interrupción del entorno de producción. En estos casos, el objetivo principal es volver a ponerlo en funcionamiento lo antes posible. No obstante, apenas todo vuelva a estar en marcha, el siguiente objetivo debe ser analizar la causa principal (RCA). Debe comprender el motivo que generó el problema para poder evitar que vuelva a ocurrir.

El kernel de Linux es la base de Red Hat Enterprise Linux (RHEL) y se encarga de todos los detalles específicos que posibilitan su funcionamiento en un sistema. Cuando detecta un error irrecuperable, entra en alerta, lo cual resulta en la falla del sistema. Hay varios factores que pueden generar que el kernel deje de funcionar, incluidos los problemas de hardware, inconvenientes con los módulos del kernel de terceros, errores en el kernel, etc.

RHEL incluye el servicio kdump, el cual puede iniciar un segundo kernel si el primero deja de funcionar, para transcribir un volcado de la memoria del sistema en un archivo. Este archivo de volcado del kernel puede analizarse y usarse para determinar la causa principal de la falla, ya que sin él es muy poco común lograr determinarla.

En los entornos de producción, es importante comprobar de forma periódica que la configuración y el funcionamiento de kdump sean correctos (mucho antes de que ocurra la falla del kernel).

Opciones para habilitar kdump

Hay varios métodos para habilitar kdump, entre ellos:

En este artículo, mostraré el uso de la función del sistema kdump de RHEL para configurarlo para los volcados del kernel y, luego, el uso de la consola web de RHEL para validar que kdump funcione correctamente.

Uso de la función del sistema kdump de RHEL

Para obtener una descripción general sobre los primeros pasos con las funciones del sistema de RHEL, consulte la publicación del blog Introduction to RHEL system roles.  

Tenga en cuenta que ya se resolvieron los errores recientes de la función del sistema kdump relacionados con la configuración de los volcados del kernel a través de SSH. El ejemplo de este artículo requiere el uso de las funciones del sistema de RHEL 1.22 o versiones posteriores, que actualmente pueden obtenerse en Ansible Automation Hub (disponible para los clientes con una suscripción a Ansible Automation Platform) y también en los repositorios AppStream de la versión beta de RHEL 8 y RHEL 9.

En mi entorno, tengo tres sistemas RHEL 9. Uno de ellos funciona como mi nodo de control de Ansible (rhel9-controlnode.example.com), y los otros dos son nodos gestionados (rhel9-server1.example.com y rhel9-server2.example.com) en los que quiero configurar kdump.  

Simple illustration of three RHEL 9 systems, including one controlnode and two servers

En el caso de que ocurra una falla, el volcado del kernel puede configurarse para que se escriba en el sistema de forma local o en un host remoto a través de Secure Shell (SSH) o los sistemas de archivos de red (NFS). En este ejemplo, me gustaría configurar mis dos nodos gestionados para escribir volcados del kernel en el host rhel9-controlnode.example.com a través de SSH. También quisiera configurar la consola web de RHEL en cada uno de los nodos gestionados para poder comprobar con facilidad que kdump funcione correctamente.

Desde el host del nodo de control, primero cree un archivo de inventario de Ansible, denominado inventory.yml, con el siguiente contenido:

all:
  hosts:
    rhel9-server1.example.com:
    rhel9-server2.example.com:
  vars:
    kdump_target:
      type: ssh
      location: kdump@rhel9-controlnode.example.com
    kdump_path: "/home/kdump/crash"
    kdump_ssh_user: kdump
    kdump_ssh_server: rhel9-controlnode.example.com
    cockpit_manage_firewall: true

En la parte superior del archivo de inventario, se enumeran los dos nodos gestionados. Luego, defina las variables de Ansible para las funciones del sistema kdump y cockpit de RHEL.

  • La variable kdump_target especifica que las funciones kdumps deben transferirse, a través de SSH, al host rhel9-controlnode.example.com.
  • La variable kdump_path especifica que las kdumps deben escribirse en el directorio /home/kdump/crash.
  • Las variables kdump_ssh_user y kdump_ssh_server especifican que las kdumps deben transferirse con la cuenta de usuario kdump en el host rhel9-controlnode.example.com (creé esta cuenta de usuario en el host rhel9-controlnode.example.com antes de ejecutar la función del sistema kdump).
  • La variable cockpit_manage_firewall especifica que la función del sistema cockpit debe habilitar el servicio cockpit en el firewall.

Luego de ello, defina el playbook de Ansible, denominado system_roles.yml, con el siguiente contenido:

- name: Run RHEL kdump system role
  hosts: all
  roles:
    - redhat.rhel_system_roles.kdump
- name: Run RHEL cockpit system role
  hosts: all
  roles:
    - redhat.rhel_system_roles.cockpit

Este playbook solicita las funciones del sistema kdump y cockpit de RHEL.

Ejecútelo con el comando ansible-playbook:

$ ansible-playbook -i inventory.yml -b system_roles.yml

En este ejemplo, indico que debe ejecutarse el playbook system_roles.yml , que debe obtener los privilegios de superusuario (la bandera -b) y que el archivo inventario.yml debe usarse como mi inventario de Ansible (la bandera -i).

En mi entorno, la función presenta un error en la tarea Fail if reboot is required and kdump_reboot_ok is false.  

Screenshot of a command result in a terminal

La configuración de kdump puede requerir el reinicio del sistema. Si hubiera establecido la variable kdump_reboot_ok en true en el archivo de inventario, los hosts se habrían reiniciado de forma automática. En este ejemplo, reinicio los hosts de forma manual y, luego, ejecuto el playbook nuevamente. En este segundo intento, la ejecución se completa de forma correcta.

Screenshot of a PLAY RECAP in a terminal window

Comprobación de los ajustes de kdump

En cada uno de los dos nodos gestionados, la función del sistema kdump creó una clave SSH nueva, la cual se almacenó en /root/.ssh/kdump_id_rsa, y configuró el archivo de ajustes kdump.conf.  

En el host del nodo de control, rhel9-controlnode.example.com, la función del sistema kdump configuró el archivo authorized_keys de las cuentas de usuario kdump con las claves públicas que corresponden a cada uno de los dos nodos gestionados.  

El método más efectivo para comprobar que todo funcione correctamente es generar una falla en el kernel de cada uno de los nodos gestionados y corroborar que sus volcados se hayan creado de forma adecuada. Advertencia: La interrupción del kernel genera tiempo de inactividad en el sistema. Lleve a cabo este procedimiento dentro del período de mantenimiento únicamente.

Puede forzar la falla del kernel desde la línea de comandos o mediante la consola web.

Inicie sesión en cada uno de los nodos gestionados mediante la consola web de RHEL conectándose a los nombres de sus host en el puerto 9090 mediante un navegador web. Después de ingresar, seleccione Kernel dump en el menú de la izquierda y, luego, haga clic en el botón Test configuration. Aparecerá un mensaje en el que se advierte que esto generará la falla del kernel.

Screenshot of the "Test kdump settings" dialog box with a "Crash system" button

Ahora compruebe el directorio /home/kdump/crash en el host rhel9-controlnode.example.com.

[rhel9-controlnode]$ ls -l /home/kdump/crash/
total 0
drwxr-xr-x. 2 kdump kdump 72 Sep  6 15:07 192.168.122.102-2023-09-06-15:07:39
drwxr-xr-x. 2 kdump kdump 72 Sep  6 15:07 192.168.122.103-2023-09-06-15:07:44

Cuando se generó el volcado del kernel, se creó un directorio para cada host. Estos incluyen la dirección IP, la fecha y la hora en que ocurrió la falla. También se crearon archivos de volcado de kernel:

[rhel9-controlnode]$ ls -l /home/kdump/crash/192.168.122.103-2023-09-06-15\:07\:44/
total 99120
-rw-------. 1 kdump kdump     77622 Sep  6 15:07 kexec-dmesg.log
-rw-------. 1 kdump kdump     66633 Sep  6 15:07 vmcore-dmesg.txt
-rw-------. 1 kdump kdump 101350015 Sep  6 15:07 vmcore.flat

Se recomienda probar la función kdump de forma periódica para verificar que funcione correctamente. Esto resulta importante cuando hay cambios en el sistema, como la aplicación de parches, los cambios en el almacenamiento, los reemplazos de hardware y los cambios en la capa de red (si el objetivo de kdump se establece en SSH o NFS), etc.

Conclusión

Si en algún momento falla el kernel de alguno de sus sistemas RHEL, ¿debería determinar la causa? Si es así, es fundamental que configure y pruebe los volcados del kernel de forma adecuada en el entorno de RHEL. La función del sistema RHEL kdump le permite configurar volcados del kernel en el entorno de RHEL según sea necesario mediante la automatización. No dude en comunicarse con nuestro equipo de Servicios de soporte global (GSS) mediante la solicitud de seguimiento de incidentes en caso de que tenga algún problema al configurar kdump en su entorno de RHEL.


Sobre el autor

Brian Smith is a Product Manager at Red Hat focused on RHEL automation and management.  He has been at Red Hat since 2018, previously working with Public Sector customers as a Technical Account Manager (TAM).  

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Navegar por canal

automation icon

Automatización

Las últimas novedades en la automatización de la TI para los equipos, la tecnología y los entornos

AI icon

Inteligencia artificial

Descubra las actualizaciones en las plataformas que permiten a los clientes ejecutar cargas de trabajo de inteligecia artificial en cualquier lugar

open hybrid cloud icon

Nube híbrida abierta

Vea como construimos un futuro flexible con la nube híbrida

security icon

Seguridad

Vea las últimas novedades sobre cómo reducimos los riesgos en entornos y tecnologías

edge icon

Edge computing

Conozca las actualizaciones en las plataformas que simplifican las operaciones en el edge

Infrastructure icon

Infraestructura

Vea las últimas novedades sobre la plataforma Linux empresarial líder en el mundo

application development icon

Aplicaciones

Conozca nuestras soluciones para abordar los desafíos más complejos de las aplicaciones

Original series icon

Programas originales

Vea historias divertidas de creadores y líderes en tecnología empresarial