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:
- Usar el instalador de RHEL en la etapa inicial de diseño del sistema
- Hacerlo de forma manual con la línea de comandos
- Usar el asistente de kdump en los laboratorios del Portal de clientes Red Hat
- Usar la consola web de RHEL
- Usar la función del sistema kdump de RHEL
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.
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.
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.
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.
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).
Navegar por canal
Automatización
Las últimas novedades en la automatización de la TI para los equipos, la tecnología y los entornos
Inteligencia artificial
Descubra las actualizaciones en las plataformas que permiten a los clientes ejecutar cargas de trabajo de inteligecia artificial en cualquier lugar
Nube híbrida abierta
Vea como construimos un futuro flexible con la nube híbrida
Seguridad
Vea las últimas novedades sobre cómo reducimos los riesgos en entornos y tecnologías
Edge computing
Conozca las actualizaciones en las plataformas que simplifican las operaciones en el edge
Infraestructura
Vea las últimas novedades sobre la plataforma Linux empresarial líder en el mundo
Aplicaciones
Conozca nuestras soluciones para abordar los desafíos más complejos de las aplicaciones
Programas originales
Vea historias divertidas de creadores y líderes en tecnología empresarial
Productos
- Red Hat Enterprise Linux
- Red Hat OpenShift
- Red Hat Ansible Automation Platform
- Servicios de nube
- Ver todos los productos
Herramientas
- Training y Certificación
- Mi cuenta
- Soporte al cliente
- Recursos para desarrolladores
- Busque un partner
- Red Hat Ecosystem Catalog
- Calculador de valor Red Hat
- Documentación
Realice pruebas, compras y ventas
Comunicarse
- Comuníquese con la oficina de ventas
- Comuníquese con el servicio al cliente
- Comuníquese con Red Hat Training
- Redes sociales
Acerca de Red Hat
Somos el proveedor líder a nivel mundial de soluciones empresariales de código abierto, incluyendo Linux, cloud, contenedores y Kubernetes. Ofrecemos soluciones reforzadas, las cuales permiten que las empresas trabajen en distintas plataformas y entornos con facilidad, desde el centro de datos principal hasta el extremo de la red.
Seleccionar idioma
Red Hat legal and privacy links
- Acerca de Red Hat
- Oportunidades de empleo
- Eventos
- Sedes
- Póngase en contacto con Red Hat
- Blog de Red Hat
- Diversidad, igualdad e inclusión
- Cool Stuff Store
- Red Hat Summit