Clean Code básico en Python
Guía de configuración básica de GRUB

Registros de Ubuntu: Verificar y configurar archivos de logs

registros de Ubuntu

Los registros de Ubuntu son fuentes valiosas de información sobre el estado de tu sistema operativo Ubuntu y las aplicaciones desplegadas en él. La mayoría de los registros están en formato de texto plano ASCII y son fáciles de leer. Esto los convierte en una excelente herramienta para utilizar en la resolución de problemas e identificación de las causas raíz asociadas con fallos del sistema o errores de aplicación.

Debido a la amplia variedad de registros de sistema y aplicación disponibles, elegir las fuentes de registro adecuadas y localizarlas dentro de tu sistema puede ser una tarea desalentadora. En este artículo, te guiaré a través de los muchos tipos de registros de Ubuntu, así como la forma de verlos y analizarlos.

43 Cosas que hacer después de instalar Ubuntu 22.04 LTS

Índice:

¿Qué Son los Registros de Ubuntu?

Los registros de Ubuntu registran los eventos que ocurren en el hardware, software y sistema operativo, lo que ayuda a determinar la causa subyacente de cualquier problema que el sistema pueda experimentar.

En Ubuntu, existen dos tipos de registros:

  • Registros del sistema que proporcionan información sobre funcionalidades del sistema operativo como el control de acceso y los procesos del sistema.
  • Registros de aplicaciones generados por las aplicaciones desplegadas en el sistema, que ofrecen información sobre su estado.

Buenas prácticas con logs

Ubicación de los Archivos de Registro de Ubuntu: ¿Dónde se Almacenan?

El directorio raíz de la mayoría de los archivos de registro es /var/log, mientras que la mayoría de los registros del sistema son generados por el demonio de registro syslog para capturar actividades. El sistema operativo usará syslog, mientras que la mayoría de los programas registrarán datos en archivos dentro del subdirectorio /var/log.

Registros del Sistema

Los registros del sistema incluyen detalles sobre el sistema y ciertas aplicaciones. Syslog usualmente almacena sus archivos de registro en /var/log/messages o /var/log/syslog.

A continuación, se muestran algunos registros clave del sistema y cómo encontrarlos para ayudarte a obtener más información sobre la salud de tu sistema Ubuntu y las aplicaciones que se ejecutan en él.

Tipo de Registro Descripción Ubicación Comando Adicional
Registro de Autorización Información sobre comandos sudo, inicios de sesión SSH y módulos de autenticación. /var/log/auth.log grep sudo /var/log/auth.log | less
Registro de Daemons Información sobre servicios en segundo plano (daemons) como systemd, logind, y otros específicos de aplicaciones. /var/log/daemon.log
Registro de Depuración Mensajes de depuración enviados a syslogd en el nivel DEBUG por aplicaciones o componentes del sistema. /var/log/debug
Registro del Kernel Eventos y mensajes relacionados con el núcleo de Linux para investigar problemas a nivel de núcleo. /var/log/kern.log
Búfer de Anillo del Kernel Estructura de datos que almacena información sobre operaciones del núcleo, con un tamaño fijo y eliminación de mensajes antiguos. No es un archivo, usa dmesg dmesg | less
Registro del Sistema Información exhaustiva sobre el estado del sistema Ubuntu; también incluye registros históricos de /var/log/messages. /var/log/syslog tail -f /var/log/syslog
Registro de Servicio Registros del sistema que capturan el estado de servicios gestionados por systemd-journald. /{run,var}/log/journal/ journalctl -f -u {nombre del servicio}
Registro de Cron Registros de trabajos cron ejecutados por el demonio cron. /var/log/syslog grep CRON /var/log/syslog
Registro de Red Información sobre la conectividad de red gestionada por NetworkManager. /var/log/syslog journalctl /usr/sbin/NetworkManager
Registro de Auditoría Información de auditoría proporcionada por auditd. /var/log/audit/audit.log Usa ausearch y aureport
Registro de Inicio Registros sobre el proceso de arranque del sistema. /var/log/boot.log journalctl -b
Registro de Fallos Información sobre el estado del núcleo cuando ocurre un fallo, almacenada en caso de fallos del sistema. /var/crash
Registro de Firewall Registros sobre actividades de red y reglas de firewall, gestionados por UFW. /var/log Edita /etc/syslog.conf para gestionar ubicación
Registro del Diario Datos de registro capturados por el servicio journald. Configuración en /etc/systemd/journald.conf journalctl
Registro de Errores Información sobre problemas en componentes de aplicaciones y del sistema. /var/log
Registro SSH Información sobre inicios de sesión y comandos sudo en SSH. /var/log/auth.log grep sshd /var/log/auth.log | less

Registros de Aplicaciones

Por lo general, recomiendo analizar los registros de aplicaciones como el primer paso al intentar identificar la fuente de un error de aplicación o, en general, para revisar la salud de tu aplicación. Exploremos las capacidades de registro de algunas aplicaciones comunes.

Registro Descripción Ubicación Comando para visualizar
Registro de Apache Incluye dos tipos de registros:
– Acceso Información sobre códigos de respuesta del servidor, acceso a recursos, dirección IP de origen, etc. /var/log/apache2/access.log
– Errores Registra errores ocurridos durante el procesamiento de solicitudes, útil para resolver problemas del servidor. /var/log/apache2/error.log
Registro de NGINX Proporciona múltiples archivos de registro configurables:
– Acceso Información sobre patrones de acceso a recursos en el servidor, incluyendo código de respuesta, IP de origen, etc. /var/log/nginx/access.log
– Errores Contiene errores relacionados con la configuración y acceso de NGINX. /var/log/nginx/error.log
Registro de Docker Los registros enviados a stdout o stderr de contenedores Docker deben ser reenviados a un destino de registro. /var/lib/docker/containers/ docker logs [OPTIONS] <NOMBRE DEL CONTENEDOR O ID>
Registro de HAProxy Proporciona información sobre errores al acceder a aplicaciones con un frontend de HAProxy. /var/log/haproxy.log
Registro de PostgreSQL Los registros se envían a stderr por defecto, pero se pueden encontrar en el directorio de registro si se habilita logging_collector. /var/log/postgresql/postgresql-x.x.main.log
Registro de MySQL Contiene información sobre la actividad de la base de datos, errores y consultas. /var/log/mysql/error.log
Registro de Redis Registra información sobre la actividad del servidor Redis, incluyendo errores y operaciones. /var/log/redis/redis-server.log
Registro de MongoDB Registra operaciones del servidor MongoDB, errores y otras actividades del sistema. /var/log/mongodb/mongod.log
Registro de Java Depende de la configuración de logging de la aplicación Java; típicamente usa log4j o java.util.logging. Configuración específica de la aplicación tail -f <RUTA DEL ARCHIVO DE LOG>
Registro de Tomcat Contiene registros de eventos, errores y actividad del servidor de aplicaciones Tomcat. /var/log/tomcat8/catalina.out
Registro de Kubernetes Registra eventos y errores relacionados con los pods, servicios y el clúster de Kubernetes. /var/log/containers/ kubectl logs <NOMBRE DEL POD>
Registro de Elasticsearch Incluye registros de errores, advertencias y actividad del clúster Elasticsearch. /var/log/elasticsearch/elasticsearch.log

Otros Registros Útiles

Además de los registros mencionados anteriormente, existen algunos registros adicionales del servidor Ubuntu que el sistema genera pero que no son legibles por humanos. Estos registros también se almacenan en la carpeta /var/log.

Registro Descripción Ubicación Comando para visualizar
Registro de Fallos de Inicio de Sesión Contiene información sobre los últimos fallos de inicio de sesión en el sistema. /var/log/faillog faillog
Registro de Últimos Inicios de Sesión Enumera los inicios de sesión más recientes en el sistema. /var/log/lastlogin lastlog | less
Registro de Registros de Inicio de Sesión Almacena información sobre los usuarios que están actualmente conectados al sistema. /var/log/wtmp who

Cómo Ver los Registros de Ubuntu

Los registros proporcionan una gran cantidad de información que ayuda a resolver problemas o errores en el sistema Ubuntu o en las aplicaciones desplegadas en él. Sin embargo, para ver y analizar los archivos de registro, se requieren herramientas adicionales, algunas de las cuales cubriré aquí.

Herramienta/Comando Descripción Uso/Comando
Aplicación de Registros (GNOME) Utilidad gráfica en GNOME para visualizar varios archivos de registro, incluyendo hardware, sistema, aplicaciones, etc. Busca «Registros» en el Dash de Ubuntu.
Visor de Archivos de Registro Herramienta gráfica para ver y analizar registros, disponible en versiones anteriores de Ubuntu. Busca «Visor de Registros» en el Dash de Ubuntu.
Terminal Herramientas de línea de comandos para ver y analizar registros.
– tail Muestra las últimas líneas del archivo de registro. tail [archivo]
– multitail Muestra múltiples archivos de registro en una sola ventana. multitail [archivo1] [archivo2]
– dmesg Muestra mensajes del búfer del Kernel. dmesg
– cat Abre y muestra el contenido completo del archivo de registro. cat [archivo]
– more Navega por el archivo de registro una pantalla a la vez; usa la barra espaciadora para avanzar. more [archivo]
– less Muestra el contenido del archivo de registro una pantalla a la vez con opciones adicionales para navegación y búsqueda. less [archivo] – less +F [archivo]
– grep Busca palabras clave específicas dentro de un registro; útil para localizar incidentes/errores. grep [palabra clave] [archivo]
– lnav Herramienta de línea de comandos para ver y analizar registros con capacidades avanzadas de búsqueda y filtrado. lnav [archivo1] [archivo2]
Comando Journalctl Utilidad para ver y consultar registros en formato binario de journald (systemd).
– Ver todo el contenido del diario Muestra todo el contenido del diario de systemd. journalctl
– Filtrar por tiempo Muestra mensajes dentro de un marco de tiempo específico. journalctl –since «2 hours ago»
– Filtrar por unidad específica Muestra registros asociados con una unidad específica de systemd. journalctl -u [nombre del servicio]
– Filtrar por UID Muestra mensajes relacionados con las actividades de un usuario específico usando su UID. journalctl _UID=[UID]
– Filtrar por período de tiempo Muestra registros dentro de un período de tiempo específico. journalctl –since «YYYY-MM-DD HH:MM:SS» –until «YYYY-MM-DD HH:MM:SS»
– Filtrar por prioridad Muestra mensajes con una prioridad específica. journalctl -p [prioridad]
– Filtrar por mensaje específico Muestra mensajes que contienen una cadena de texto específica. journalctl | grep [cadena de texto]
humanlog Herramienta de línea de comandos para convertir registros de journald en un formato legible por humanos. journalctl | humanlog

Configuración del Demonio de Registro del Sistema Ubuntu

Syslogd, también conocido como sysklogd, es el demonio de registro del sistema predeterminado en Ubuntu. Realiza la tarea de recibir mensajes de diferentes fuentes del sistema y enviarlos al destino de archivo de registro definido. Además de los mensajes de registro, también se capturan metadatos útiles como marcas de tiempo para cuando se generan los registros, nombres de host del sistema fuente, etc., en estos archivos de registro.

Puedes configurar el destino de los archivos de registro y el nivel de prioridad de los registros editando el archivo /etc/syslog.conf. El campo selector en el archivo de configuración especifica la instalación de registro y el nivel de prioridad de registro requerido. Por ejemplo, puedes elegir la instalación de registro de autenticación y la prioridad como «info» o «warning».

El archivo de destino del registro está especificado por el campo de acción. Este podría ser el archivo de ubicación predeterminado de registros del servidor Ubuntu, es decir, /var/log/syslog, o el nombre de un servidor de registro centralizado.

Rotación de Registros en Ubuntu

Con múltiples registros generados cada minuto por diferentes componentes del sistema y de la aplicación, los datos del archivo de registro pueden consumir fácilmente todo el espacio en disco de tu máquina. Por lo tanto, es importante comprimir y archivar periódicamente los archivos de registro. Este proceso se llama rotación de registros.

Inicialmente, los registros se renombran después de un marco de tiempo especificado y se crea un nuevo archivo de registro para los registros más recientes. Luego, los registros se comprimen para ahorrar espacio en disco. La utilidad utilizada para gestionar este proceso de rotación de registros se llama “logrotate”.

Uso de Logrotate

Configura la utilidad logrotate a través del archivo /etc/logrotate.conf. Con la configuración predeterminada en logrotate.conf, Ubuntu rota los archivos de registro semanalmente para archivos propiedad del grupo del servidor syslog de Ubuntu y del usuario root, con una retención predeterminada de cuatro registros a la vez.

Cuando los registros actuales se rotan, se crean nuevos archivos de registro vacíos a los que se transmiten los registros. La utilidad logrotate se invoca desde el script cron /etc/cron.daily/logrotate.

Puedes añadir una configuración de rotación de registros específica para aplicaciones a /etc/logrotate.d/. Aquí también puedes definir la configuración de rotación de registros de herramientas del sistema como APT, syslog y dpkg o para aplicaciones específicas como MySQL y Apache2.

Comandos Útiles para Trabajar con Registros de Ubuntu

Veamos algunos de los comandos básicos que puedes usar en un terminal de Ubuntu para explorar archivos de registro.

Acción Descripción Comando
Cambiar el Directorio de Registros Cambia al directorio donde se almacenan los archivos de registro. cd /var/log
Buscar Archivos de Registro Busca contenido específico dentro de un archivo de registro. Por ejemplo, para encontrar líneas con la palabra «error». grep “error» [archivo]
Editar Archivos de Registro Edita archivos de registro utilizando un editor de texto simple como nano. Recuerda usar sudo para permisos, aunque no es lo más recomendable. sudo nano [archivo]
Monitorear Archivos de Registro Monitorea cambios en un archivo de registro en tiempo real. tail -f [archivo]

Otras Soluciones para Monitorear y Analizar Registros de Ubuntu

Mientras que las utilidades y herramientas discutidas anteriormente pueden ser útiles para analizar registros en servidores individuales, cuando se trata de despliegues de infraestructura a gran escala necesitas considerar soluciones personalizadas para la gestión y análisis de registros de Ubuntu. Es posible que tengas que correlacionar eventos y registros a través de múltiples sistemas, y el análisis manual de registros podría volverse engorroso.

Aquí tienes una tabla con ejemplos de soluciones adicionales para la gestión y análisis de registros en entornos de infraestructura a gran escala:

Solución Descripción Características Clave Ejemplo de Uso
ELK Stack (Elasticsearch, Logstash, Kibana) Una solución completa para la gestión y análisis de registros que permite la recopilación, indexación, búsqueda y visualización de registros. Elasticsearch: Motor de búsqueda y análisis.
Logstash: Herramienta de procesamiento de datos de registro.
Kibana: Interfaz de usuario para visualización.
Configura Logstash para recolectar registros de múltiples servidores y usa Kibana para crear dashboards interactivos.
Splunk Plataforma que proporciona análisis de registros y monitoreo en tiempo real, ideal para grandes volúmenes de datos. Búsqueda avanzada.
Dashboards personalizables.
Alertas en tiempo real.
Utiliza Splunk para monitorear y alertar sobre eventos críticos en un entorno distribuido.
Graylog Solución de gestión de registros que ofrece capacidades de almacenamiento, búsqueda y análisis, con una interfaz intuitiva. Interfaz web intuitiva.
Búsqueda avanzada.
Alertas y reportes.
Configura Graylog para centralizar registros y generar reportes sobre patrones de errores recurrentes.
Prometheus + Grafana Aunque principalmente utilizado para monitoreo de métricas, Prometheus puede integrarse con herramientas de registro para visualización y alerta. Prometheus: Recolección y almacenamiento de métricas.
Grafana: Visualización de datos.
Integra Prometheus con Grafana para crear dashboards que combinen métricas y datos de registros.
Sentry Plataforma de monitoreo de errores que ofrece seguimiento de errores y eventos en tiempo real, adecuada para aplicaciones. Monitoreo de errores.
Integración con aplicaciones.
Alertas en tiempo real.
Usa Sentry para rastrear y gestionar errores en aplicaciones desplegadas a gran escala.
Datadog Plataforma de monitoreo y análisis de datos que proporciona visibilidad completa de aplicaciones y sistemas, incluyendo registros. Monitoreo en tiempo real.
Dashboards personalizables.
Alertas.
Configura Datadog para monitorear registros y métricas de aplicaciones y servidores desde una única plataforma.
Loggly Servicio de gestión de registros basado en la nube que ofrece análisis y visualización de datos de registro de manera centralizada. Búsqueda en tiempo real.
Análisis de tendencias.
Alertas y notificaciones.
Utiliza Loggly para gestionar registros desde múltiples fuentes y obtener alertas basadas en eventos críticos.

Logs de Kubernetes con Grafana Loki y Promtail

Laboratorios de infra con Docker Compose y Python

Conclusión

Los registros de Ubuntu proporcionan una gran cantidad de información que puede ayudarte a resolver problemas de tu sistema operativo así como errores de aplicaciones. Necesitas seleccionar los archivos de registro correctos para su revisión para reducir el tiempo de respuesta.

Asegúrate de que los archivos de registro estén configurados para capturar el nivel de detalle que tu organización requiere. Las herramientas integradas de Ubuntu para ver registros pueden ayudar con el primer nivel de análisis. Este enfoque funciona bien si solo tienes unos pocos sistemas para monitorear.

Sin embargo, la ingesta y gestión de registros a gran escala necesita herramientas especializadas a nivel empresarial como Sematext Logs. Cuando tu panorama de Ubuntu es extenso, esta necesidad se vuelve aún más relevante, especialmente debido al volumen de registros generados.

Sin las herramientas adecuadas a tu disposición, encontrar la fuente de interrupciones y corregirlas podría resultar una tarea difícil.

Más apuntes

Invítame a un café con bitcoins:
1QESjZDPxWtZ9sj3v5tvgfFn3ks13AxWVZ

Bitcoins para café
También puedes invitarme a algo para mojar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Tienes que aprobar los términos para continuar