lnav: vea y analice los registros de Apache desde una terminal de Linux

lnav: vea y analice los registros de Apache desde una terminal de Linux

Hace menos de dos semanas, el ataque de ransomware Wannacry comprometió miles de computadoras, causando pérdidas considerables tanto a las grandes empresas como a las personas. Eso, junto con otras vulnerabilidades generalizadas encontradas en los últimos años (como el error Shellshock), resalta la importancia de mantenerse al tanto de sus sistemas de misión crítica.

Aunque las vulnerabilidades a menudo se dirigen a un sistema operativo o software específico. componente, examinar el tráfico que entra y sale de su red puede ser de gran ayuda para proteger los activos de los que es responsable.

Lectura sugerida: 4 buenas herramientas de administración y monitoreo de registros de código abierto para Linux

Como estoy seguro de que ya sabe, los registros del sistema son el primer lugar donde debemos buscar esta información. Para facilitar esta tarea, en este artículo explicaremos cómo instalar y utilizar lnav. un visor de archivos de registro avanzado. Con lnav, podrá ver varios tipos de registros simultáneamente, navegar por el archivo usando teclas de acceso rápido y generar un histograma resumido de accesos y errores. ¡Así que sigue leyendo!

Instalación y ejecución de lnav en Linux

Para instalar lnav. usa el sistema de administración de paquetes de tu distribución.

# aptitude install lnav [Debian y derivados] # yum install epel-release lnav [CentOS 7 y similar]

Una vez completada la instalación, inicie lnav. seguido de la ruta absoluta al directorio donde se registran ser examinados se encuentran. Dado que normalmente será/var/log, hagamos lo siguiente:

# lnav/var/log/httpd freestar.config.enabled_slots.push

para inspeccionar los registros del servidor web Apache en un CentOS 7.

Supervisar los registros de Apache en CentOS 7  Supervisar los registros de Apache en CentOS 7 Monitor Registros de Apache en CentOS 7

Examinemos brevemente el resultado que se muestra en la imagen anterior:

  • La esquina superior derecha muestra los archivos que se están inspeccionando actualmente ( access_log-20170519. y registro_acceso. . A medida que se desplaza hacia abajo o hacia arriba, notará que los nombres de los archivos pueden cambiar a medida que avanza de uno a otro.
  • Respuestas 40x HTTP. (por ejemplo, No encontrado. o Prohibido. se muestran en negrita, mientras que las respuestas 20x. se muestran en texto normal.
  • Las direcciones IP aparecen en negrita verde.

Eso ciertamente se ve bien, ¿no? Pero profundicemos un poco más ahora, y veremos que lnav proporciona mucho más que una salida de colores bonitos.

Si tiene curiosidad por saber por qué no se muestran los registros de errores, encontrará la respuesta más adelante. en este articulo. ¡Así que sigue leyendo!

Modificación de la salida con opciones y teclas de acceso rápido

Antes de continuar, enumeremos algunas teclas de acceso rápido que nos permitirán movernos a través de la salida de lnav y las teclas de acceso rápido disponibles. visualiza más fácilmente:

  • e o E para saltar al mensaje de error siguiente/anterior.
  • w o W ​​para saltar al mensaje de advertencia siguiente/anterior.
  • bo Retroceso para ir a la página anterior.
  • Espacio para ir a la página siguiente.
  • go G para ir a la parte superior/inferior de la vista actual. .

Cuando se rotan los registros, los archivos antiguos pueden comprimirse (o no) dependiendo de la configuración especificada en los archivos de configuración de logrotate. Para incluir archivos comprimidos en la salida, inicie lnav de la siguiente manera:

# lnav-r/var/log/httpd

Si desea ver más de cerca la forma en que opera lnav, puede iniciar el programa con la opción-d seguida de un nombre de archivo donde se escribirá la información de depuración, así:

# lnav/var/log/httpd-d lnav.txt

En este ejemplo, la información de depuración que se genera cuando se inicia lnav se escribirá en un archivo llamado lnav.txt. dentro del directorio de trabajo actual.

Las primeras líneas de ese archivo se muestran en la siguiente imagen:

Información de depuración de Apache  Información de depuración de Apache Información de depuración de Apache

El texto resaltado indica que lnav cargó el archivo de formatos predeterminados y, más específicamente, el formato access_log. para analizar el registro de acceso de Apache. Además, lnav permite analizar cada línea de salida para que la salida sea más fácil de visualizar y comprender.

Lectura sugerida: Analizador de registros de servidor web GoAccess (Apache y Nginx en tiempo real)

Para usar este característica, inicie el programa y elija la línea que desea analizar. La línea seleccionada es siempre la que está en la parte superior de la ventana. Luego presione py debería ver el siguiente resultado:

Información de estado de la solicitud de Apache  Información de estado de solicitud de Apache Información de estado de solicitud de Apache

Para volver a la normalidad modo, presione p nuevamente.

Ahora, si desea ver un resumen de los registros por fecha y hora, presione i. Por ejemplo, el texto resaltado indica que el lunes 10 de abril, entre las 10 y las 11 p. M., Hubo 37 solicitudes HTTP y 14 generaron errores.

 Registros de Apache por día y hora  Registros de Apache por día y hora Registros de Apache por día y hora

Una vez que haya identificado un problema potencial basado en el histograma como se muestra arriba, Puede presionar i para salir de la vista y examinarla con más detalle utilizando el analizador como se explicó anteriormente. O también puede utilizar las capacidades integradas de SQL escribiendo un punto y coma y escribiendo una consulta estándar. Por ejemplo, haga:

; .schema

para ver las tablas disponibles en el esquema de la base de datos. Después de identificar la tabla correcta ( access_log. en nuestro caso), presionemos q y luego usemos la siguiente consulta para devolver toda la información disponible sobre las solicitudes provenientes de 195.154.230.31:

; SELECT * FROM access_log DONDE c_ip = ‘195.154.230.31’ Información de registro de Apache en formato de tabla  Información de registro de Apache en formato de tabla Apache Información de registro en formato de tabla

Tenga en cuenta que también podríamos haber filtrado los resultados por log_time. El punto es, agregue un poco de SQL y el cielo es el límite en cuanto a lo que puede hacer con lnav.

Formatos de registro predeterminados de Apache

Muchos formatos de registro se cargan de forma predeterminada con lnav. y, por lo tanto, se analizan sin nuestra intervención. Puede ver la lista en la sección Formatos de registro en la documentación oficial.

Los formatos predeterminados se especifican en ~/.lnav/Format/default/default-formats.json.sample. y se pueden agregar otros ~/.lnav/Format. usando la extensión .json.

Sin embargo, editar estos archivos requiere cierto grado de familiaridad con JSON (Notación de objetos Javascript) y con la biblioteca PCRE (Expresiones regulares compatibles con Perl).

Entonces, ¿por qué lnav no mostró los archivos de registro de errores de Apache? La razón es que esos registros no coinciden con ninguna expresión regular en los archivos de formato existentes y, por lo tanto, se tratan como archivos de texto normales (es decir, archivos sin un formato de registro determinado).

Lectura sugerida: Cómo monitorear la carga del servidor web Apache y Estadísticas de la página

Como se mencionó anteriormente, puede crear sus propios formatos una vez que esté al menos algo familiarizado con JSON y PCRE. Esto puede resultar útil, por ejemplo, si ha definido registros de Apache personalizados.

Resumen

Aunque usamos el registro de acceso de Apache para demostrar cómo usar lnav, tenga en cuenta que hay varios otros tipos de registros que se pueden ver y analizar con esta herramienta. Si la herramienta no reconoce un registro específico, puede crear formatos adicionales e instalarlos siguiendo las indicaciones aquí proporcionadas.

¿Tiene alguna pregunta o comentario sobre este artículo? Como siempre, no dude en hacérnoslo saber mediante el formulario a continuación. ¡Esperamos con interés escuchar de usted!