David Bohm

Hay dos frases que definen mi manera de pensar:
Realmente no hemos prestado mucha atención al pensamiento como un proceso; hemos participado en pensamientos, pero sólo hemos prestado atención al contenido, no al proceso.
La capacidad de percibir o pensar de manera diferente es más importante que el conocimiento adquirido.
Ambas son de David Bohm.

domingo, 31 de mayo de 2020

Logs en Linux, archivos para dar y tomar

El mundo de los logs en Linux se hace complicado cuando hay que analizar un comportamiento en el servidor, uno de sus servicios o una aplicación concreta. Por ello vamos intentar resumir los ficheros mas importantes, comúnes o útiles, aunque es un tarea complicada.

Veamos, tradicionalmente se han clasificado en categorias como:
   - Logs de sistema
   - Logs de eventos
   - Logs de servicios
   - Logs de aplicaciones

Eso está muy bien y aparece en todos los sitios, pero la realidad es que si vamos a la configuración de rsyslog o syslog-ng por ejemplo, podremos ver un listado extenso de archivos a los que hace referencia:

   /var/log/auth.log - Logs de autenticación.
   /var/log/syslog.log - Logs de sistema
   /var/log/crond.log - Logs de los trabajaos de cron
   /var/log/daemon.log - Logs de servicios en segundo plano
   /var/log/kernel.log - Logs del kernel
   /var/log/lpr.log - Logs de impresión
   /var/log/user.log - Logs de usuario
   /var/log/maillog - Logs relacionados con el servidor de correo
   /var/log/messages - Logs generales de sistema

Si indagamos por internet, podremos obtener un puñado mas de archivos de logs:


   /var/log/httpd/ - Logs de apache
   /var/log/lighttpd/ - Logs de Lighttpd
   /var/log/boot.log - Logs de arranque de sistema
   /var/log/kern.log - Logs de kernel
   /var/log/mysqld.log o /var/log/mysql.log - Logs de MySQL
   /var/log/secure o /var/log/auth.log - Logs de autenticación
   /var/log/utmp or /var/log/wtmp
   /var/log/yum.log Logs de yum
   /var/log/qmail/ - Logs de qmail

Se que es una locura, pero si además incluyes aplicacions la lista puede ser infinita. Si tuviesemos que centrarnos en unos cuantos creo que sería bueno seleccionar los logs mas críticos y relevantes si un día tenemos un problema. Se que no vamos a descubrir nada nuevo, pero veamos esta lista tan habitual:


/var/log/boot.log --- Almacena la informacion relacionada con el arranque y los mensajes que se registran en dicho proceso. Aqui obtendremos información sobre apagados incorrectos, reinicios no planeados o fallos de arranque en general.

/var/log/auth.log o /var/log/secure --- El primer fichero es típico de distribuciones basadas en debian y el segundo en distribuciones basadas en red hat. Contiene todos los eventos relacionados con la autenticación y la autorización de usuarios. Permite revisar intentos fallidos de acceso, fuerza bruta, etcétera. Almacena todo lo relacionado con la seguridad, uso de sudo, inicios de sesión ssh y todos los eventos de autenticación de usuario. Informará sobre intentos de acceso no autorizados o fallidos, además de los inicios de sesión que se han realizado con éxito. También /var/log/faillog o /var/log/btmp contendrán intentos fallidos de acceso. El registro de inicio de sesión y su fin se mantienen en /var/log/wtmp. A este respecto es muy útil /var/log/lastlog que mantiene el último inicio de sesión de cada usuario.

/var/log/messages o /var/log/syslog --- Contiene registros de la actividad general del sistema, almacena mensajes informativos y no críticos. Puede mostrar errores de arranque no relacionados con el kernel y servicios relacionados con las aplicaciones. Suele ser el primer archivo que revisaremos si algo va mal.

/var/log/dmesg --- Almacena mensajes del nucleso relacionados con hardware, dispositivos y sus controladores. Contendrá la detección de los dispositivos, errores de hardware y otros mensajes genéricos.

/var/log/kernel.log o /var/log/kern.log --- Es un archivo importantísimo, contiene todo lo que registra el núcleo. Nos puede ayudar si tenemos un núcleo personalizado, o nuestro servidor presenta problemas de hardware, conectividad, etcétera.


/var/log/cron --- Registra todo lo que tenga que ver con las tareas programadas en cron. Cada vez que se ejecute una tarea programada cron registrará la información relevante, ejecuciones correctas, errores, etcétera.

/var/log/daemon.log --- Registra eventos relevantes de los demonios que estén en ejecución en segundo plano.

/var/log/yum.log --- Almacenará toda la información relevante cuando se instale un nuevo paquete si hemos usado yum. Registra la instalación de componentes del sistema y los paquetes de los repositorios. Es habitual que si un software no se ha instalado correctamente acudamos a este archivo log.

/var/log/maillog o /var/log/mail.log --- Registrará todo lo relacionado con el servicio de correo y de cualquier aplicación que tenga que ver con dicho servicio. Se podrá rastrear los envios y recepciones de correos electrónicos, investigar sobre problemas de entrega de correos, averiguar origen de un correo, spam, etcétera.

/var/log/httpd --- Almacena los registros del servidor apache si lo tenemos instalado. Normalmente se almacena en dos archivos diferentes: error_log y acces_log. En el primero se registrarán los errores relacionados con el servidor, su servicio y el sistema. En el segundo archivo se almacenarán todas las peticiones de acceso recibidas a través de protocolo http. Registrará dirección IP y el ID de los clientes que realizan peticiones de conexión al servidor tanto exitosas como infructuosas.

/var/log/mysqld.log o /var/log/mysql.log --- Almacena los registros del servidor mysql si lo tenemos instalado. El primer archivo es típico de distribuciones basadas en Red Hat y el segundo para las basadas en Debian. Es el archivo de registro con todos los mensajes de depuración, fallo y éxito relacionados con mysql. Se puede registrar desde problemas al iniciar, ejecutar o detener el demonio de mysql, hasta información sobre bloqueos de consultas, consultas de ejecución lenta, etcétera.

En otras entradas trataremos formas de centralizar la información y de poder hacer un análisis mas general o rápido de los logs, por lo menos en un primer paso que nos evite empezar a revisar archivo tras archivo. Podríamos ver desde un logwatch que nos ayuda a obtener un informe un poco mas "humano" de forma puntual o programada, hasta un servidor de logs Nagios o un graylog, con el que podremos centralizar, recopilar y monitorizar, para establecer alertas que nos notifiquen si hay un comportamiento anómalo en nuestros servidores.

SaluDOS

No hay comentarios:

Publicar un comentario