miércoles, 3 de agosto de 2011

Entendiendo los logs de GNU/Linux

Cuando utilizamos por mucho tiempo sistemas GNU/Linux, es escencial que sepamos dónde están localizados los archivos log y qué contiene cada uno. Cuando el sistema está corriendo estable, toma un tiempo para aprender y entender el contenido de varios archivos log, lo cual ayudará en momentos de crisis y tendrás que revisar entre los logs para identificar el problema.

El fichero /etc/rsyslog.conf controla el comportamiento del contenido de los logs. Por ejemplo, lo siguiente es una entrada en rsyslog.conf para /var/log/messages.

$ grep "/var/log/messages" /etc/rsyslog.conf 
*.info;mail.none;authpriv.none;cron.none        /var/log/messages

De lo anterior tenemos que:
  • *.info indica que todos los logs de tipo INFO serán registrados.
  • mail.none,authpriv.none,cron.none indica que esos mensajes de errores no deben ser registrados en el fichero /var/log/messages.
  • También podemos especificar *.none, lo que indica que ninguno de los mensajes serán registrados.



A continuación tenemos 20 ficheros log ubicados en el árbol /var/log/. Algunos de estos ficheros son específicos de una distribución. Por ejemplo, veremos el fichero dpkg.log en distribuciones basadas en Debian como Ubuntu.
  1. /var/log/messages – Contiene los mensajes del sistema global, incluyendo los mensajes registrados durante el arranque del sistema. Muchas cosas son registradas en /var/log/messages inclyendo mail, cron, daemon, kern, auth, etc.
  2. /var/log/dmesg – Contiene información del kernel ring buffer. Cuando el sistema arranca, imprime los números de los mensajes en pantalla que muestran información acerca de los dispositivos de hardware que el kernel detecta durante el arranque. Estos mensajes están disponibles en el kernel ring buffer y cada vez que un mensaje nuevo entra, el viejo es sobreescrito. También podemos ver el contenido de este log con el comando dmesg.
  3. /var/log/auth.log – Contiene información sobre autorizaciones del sistema, incluyendo los logins de los usuarios y el mecanismo de autenticación que fue utilizado.
  4. /var/log/boot.log – Contiene información registrada durante el arranque del sistema.
  5. /var/log/daemon.log – Contiene información registrada por varios daemon que se encuentran en  background ejecutándose en el sistema.
  6. /var/log/dpkg.log – Contiene información que es registrada cuando un paquete es instalado o eliminado utilizando el comando dpkg.
  7. /var/log/kern.log – Contiene información registrada por el kernel. Es de mucha auyuda para resolver problemas de un kernel personalizado.
  8. /var/log/lastlog – Muestra información de los logins recientes de todos los usuarios. No es un fichero ascii. Debemos utilizar el comando lastlog para ver el contenido de este log.
  9. /var/log/maillog /var/log/mail.log – Contiene información del servidor de correo que esté ejecutándose en el sistema. Por ejemplo, sendmail registra en este log información acerca de todos los correos enviados.
  10. /var/log/user.log – Contiene información acerca de todos los logs a nivel de usuario.
  11. /var/log/Xorg.x.log – Contiene información de X.
  12. /var/log/alternatives.log – Contiene información de update-alternatives. En Ubuntu update-alternatives mantiene enlaces simbólicos a los comandos o aplicaciones por defecto.
  13. /var/log/btmp – Contiene información acerca de los intentos de login fallidos. Utilizamos el comando  last para ver el log btmp. Por ejemplo: last -f /var/log/btmp | more
  14. /var/log/cups – Contiene información sobre todo lo relacionado con las impresoras.
  15. /var/log/anaconda.log – Cuando instalamos distribuciones derivadas de Red Hat como CentOS o Fedora, todos los mensajes relacionados con la instalación son registrados aquí.
  16. /var/log/yum.log – Contiene información registrada cuando un paquete es instalado utilizando yum
  17. /var/log/cron – Cada vez que el daemon cron (o anacron) inicia un trabajo, registra la información acerca de dicho trabajo en este log.
  18. /var/log/secure – Contiene información relacionada con la autenticación y privilegios de authorization. Por ejemplo: Aquí sshd registra todos sus mensajes, incluyendo los logins no satisfactorios.
  19. /var/log/wtmp o /var/log/utmp – Contiene información acerca de los logins. Con wtmp podemos encontrar quien está logueado en el sistema. El comando who utiliza este log para mostrar la información.
  20. /var/log/faillog – Contiene información acerca de los intentos fallidos de logueo de los usuarios. Con el comando faillog podemos ver el contenido de este log.
A parte de estos 20, el direcotrio /var/log también debe contener algunos de estos sub-direcotrios, dependiendo de si la aplicación está instalada y ejecutándose en nuestro sistema.
  • /var/log/httpd/ o /var/log/apache2 – Contiene los access_log y error_log del servidor web Apache
  • /var/log/lighttpd/ – Contiene los access_log y error_log de light HTTPD
  • /var/log/conman/ – Archivos de registro del cliente ConMan, utilizado para conectar consolas remotas que son administradas por el daemon conmand.
  • /var/log/mail/ – Este sub-directorio contiene registros adicionales del servidor de correo. Por ejemplo, sendmail almacena las estadísticas de correo en el fichero /var/log/mail/statistics.
  • /var/log/prelink/ – El programa prelink program modifica librerías compartidas y binarios enlazados para agilizar el proceso de arranque. /var/log/prelink/prelink.log contiene la información acerca del fichero .so que fue modificado por prelink.
  • /var/log/audit/Contiene información almacenada por el daemon audit (auditd).
  • /var/log/setroubleshoot/ – SELinux utiliza setroubleshootd (SE Trouble Shoot Daemon) para notificar acerca de problemas en el contexto de seguridad de los ficheros, y registra aquella información en este log.
  • /var/log/samba/ – Contiene información almacenada por Samba, el cual es utilizado para interconectar  Windows con Linux.
  • /var/log/sa/ – Contiene los ficheros sar diarios que son recolectados por el paquete sysstat.
  • /var/log/sssd/ – Utilizado por el daemon system security services, el cual administra el acceso a directorios remotos y mecanismos de autenticación.
En vez de de intentar guardar los ficheros de registro limpiándolos después de un número determinado de días o borrando los logs después que sobrepasan un tamaño determinado; lo podemos hacer automáticamente con logrotate.

Para ver los logs podemos utilizar cualquiera de estos métodos (por favor, no uses ‘cat | more’):
  • Los editores vi o nano
  • El comando tail -f
  • El comando grep texto
  • El comando less


Fuente: TheGeekStuff


Artículos relacionados



Widget by Hoctro | Jack Book

0 comments:

Publicar un comentario