|
|
Este artículo está disponible en los siguientes idiomas: English Castellano Deutsch Francais Italiano Nederlands Portugues Turkce |
por Egon Willighagen <egonw(at)logreport.org> Sobre el autor: Además de trabajar para el proyecto LinuxFocus, Egon trabajó para la Stichting Logreport Foundation hasta el 1 de Noviembre de 2001. Uno de los objetivos de la fundación es escribir software para el análisis de log con una licencia pública GPL. Taducido al español por: Begoña Blanco <jtabljab(at)lg.ehu.es> Contenidos:
|
Resumen:
Este artículo es el segundo de una serie utilizando Lire para analizar los ficheros log de las aplicaciones en servidores de internet. Este artículo muestra cómo se pueden personalizar los informes generados. El primer artículo de esta seria explicaba cómo instalar Lire.
Este artículo está basado en la última actualización de Lire, que es lire-20011017. Nótese que la configuración ha cambiado considerablemente desde la última versión y por lo tanto, el primer artículo de la serie ya ha quedado obsoleto. De todas maneras, la idea general de lr_config no ha cambiado.
Entre otras, las nuevas características de esta versión son: dos nuevos super servicios (FTP y cortafuegos), un montón de nuevos informes (total > 68, dos nuevos formatos de salida (XHTML y RTF) y muchas correcciones de bugs. Pero el cambio más importante está en el motor. El proceso generación de informes ha sido completamente reescrito para aprovechar la tecnología XML.
Este artículo hará una introducción a uno de los formatos XML ahora utilizado en Lire, y a cómo es utilizado para especificar los informes. No va a ser un tutorial sobre cómo hacer nuevos informes, sino que mostrará cómo se pueden cambiar los informes predeterminados a bajo nivel. Pero en primer lugar, este artículo explicará cómo decir a Lire qué informes debería generar y cómo establecer los parámetros para dichos informes.
Cada super servicio (p.ej. `email' es un super servicio, los servicios `postfix' y `sendmail' pertenecen a este super servicio) dispone de un número de informes, que extraen la información del log para usted. El super servicio WWW tiene, por ejemplo, 31 informes. No todos los informes son interesantes para todo el mundo. Algunos son muy específicos. Por defecto, la mayoría de estos informes son seleccionados, pero resulta útil personalizarlos.
Los informes que serán utilizados en la generación del informe se proporcionana en el fichero <prefix>/etc/lire/<superservice>.cfg (Assumiendo que Lire está instalado en el directorio <prefix>). Por ejemplo, el fichero de configuración para el super servicio FTP tiene el siguiente aspecto:
# Configuración del informe para el super servicio FTP
# Top X reports
top-remote-host hosts_to_show=10
#top-files files_to_show=10
top-files-in files_to_show=10
top-files-out files_to_show=10
top-users users_to_show=10
# By day reports
bytes-by-day
# Transfers by X reports
transfers-by-direction
transfers-by-type
El super servicio FTP en consecuencia tiene 8 informes definidos y se seleccionan todos excepto uno. El "top-files" se deselecciona por medio del caractes "#". Si se borra el caracter "#" el informe se volverá a seleccionar.
Nótese que no todas las líneas que comienzan por "#" son informes. En este fichero de configuración las líneas "Configuración del informe para el super servicio FTP ", "Top X reports", "By day reports" y "Transfers by X reports" son comentarios. Cosas similares se pueden esperar en otros ficheros de configuración.
Ordenar es muy simple. El orden en el que aparecen las líneas de informe en los ficheros de configuración es el orden en que los informes darán su salida. Reorganizar las líneas en estos ficheros de configuración los reordena en la salida. Por ejemplo, en el caso anterior, las transferencias por tipo constituirán el último informe proporcionado en la salida.
Muchos informes pueden ser parcialmente personalizados con los ficheros de configuración comentados en la sección anterior. Por ejemplo, consideremos la configuración del super servicio DNS:
# Configuración del informe del super servicio DNS
# Top reports
top-requesting-hosts hosts_to_show=10
top-requesting-hosts-by-method hosts_to_show=10 method='recurs'
top-requesting-hosts-by-method hosts_to_show=10 method=ñonrec'
top-requested-names names_to_show=10
top-requested-names-by-method names_to_show=10 method='recurs'
top-requested-names-by-method names_to_show=10 method=ñonrec'
requesttype-distribution
requesttype-distribution-by-method method='recurs'
requesttype-distribution-by-method method=ñonrec'
# By Day reports
requests-by-period period=1d
requests-by-period-by-method period=1d method='recurs'
requests-by-period-by-method period=1d method=ñonrec'
# By Hour reports
requests-by-period period=1h
requests-by-period-by-method period=1h method='recurs'
requests-by-period-by-method period=1h method=ñonrec'
Cada uno de los quince informes son seleccionados, pero además, para informes que dan una salida Top X, el número X puede ser definido. Con la configuración superior, el informe host más solicitados, ofrecerá un Top 10.
Estos informes son generados sólo de ocho especificaciones de informe. El uso de parámetros (period, method, hosts_to_show, y names_to_show) lo hace posible. Ésta es una de las nuevas y potentes características del nuevo motor basado en XML.
Importante: ¡Todos los establecimientos de variables deben colocarse en la misme línea que el nombre del informe!
Un ejemplo más exótico se extrae del fichero de configuración del super servicio WWW:
top-referers-by-page referer_to_show=5 page_to_show=10 referer_exclusion='^-$'
En este ejemplo, se utiliza una expresión regular en Perl como contenido de la variable referer_exclusion. Esta expresión concuerda con todas las referencias "-". Dichas referencias se encuentran en el fichero de log en casos cuando, por ejemplo, la URL de su página web era tecleada por el usuario cliente. (Cuando los usuarios visitan su página haciendo click sobre un link en una página, haciendo referencia a su página, la página desde la que se enlaza será proporcionada en el campo de referencia.) Todas las referencias que coincidan con "-" serán excluidas del análisis.
Esta nueva actualización comienza una versión completamente nueva de Lire. La generación de informes y el proceso de especificación ha sido reescrito completamente para emplear la tecnología XML. Los informes son especificados en XML, pero el establecimiento de variables se realiza en formato plano ASCII. La especificación de informe anterior era un script en Perl que debía conocer tanto el formato de entrada como el de salida. Con el nuevo formato XML, la implementación se separa de la especificación, y ya no se tiene que conocer los formatos de entrada y salida; únicamente la información que puede ser procesada.
Por lo tanto, al personalizar informes a bajo nivel, usted debe saber algo de XML. Un ejemplo de informe extraido del directorio <prefix>/share/lire/reports/firewall:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE lire:report-spec PUBLIC
"-//LogReport.ORG//DTD Lire Report Specification Markup Language V1.0//EN"
"http://www.logreport.org/LRSML/1.0/lrsml.dtd">
<lire:report-spec xmlns:lire="http://www.logreport.org/LRSML/"
superservice="firewall" id="bytesperfrom" charttype="bars">
<lire:title>Top Bytes per From-IP Report</lire:title>
<lire:description>
<para>
This report lists the IP addresses sending the highest data volume.
</para>
</lire:description>
<lire:param-spec>
<lire:param name="ips_to_show" type="int" default="10">
<lire:description>
<para>This parameter controls the number of sending IP adresses to
display in the report.
</para>
</lire:description>
</lire:param>
</lire:param-spec>
<lire:display-spec>
<lire:title>Volume per sending IP, Top $ips_to_show</lire:title>
</lire:display-spec>
<lire:report-calc-spec>
<lire:group sort="-rcvd_volume" limit="$ips_to_show">
<lire:field name="from_ip"/>
<lire:sum name="rcvd_volume" field="length"/>
</lire:group>
</lire:report-calc-spec>
</lire:report-spec>
En primer lugar usted debería darse cuenta de que caso todos los elementos XML de este informe comienzan con lire:. Esto se utiliza para asignar un espacio de nombres o namespace a ese elemento. Cada elemento del namespace lire está definido en el DTD de XML http://www.logreport.org/LRSML/1.0/lrsml.dtd (enlace vacío!), que puede ser navegado en http://www.logreport.org/pub/docs/dtd/lrsml/.
El resto de elementos se supone que pertenecen al DocBook XML 4.2 DTD. Así como el elemento <para> en la décima línea del ejemplo.
Si usted quiere cambiar el título que aparece en el informe, debe cambiar el contenidod de <lire:title> en el <lire:display-spec>. No olvide que las cadenas que comienzan por "$" son variables Perl donde el nombre corresponde a uno de los parámetros especificados en la sección <lire:param-spec>.
El truco es que usted debe coger el elemento <lire:title> correcto. Usted necesita el elemento que es el contenido del nodo <lire:display-spec>. El último elemento contiene información que se visualiza en el informe de salida. El primer elemento <lire:title> contiene el título del informe que se utiliza en documentación del software Lire.
El siguiente ejemplo muestra un fragmento de la especificación del informe WWW peticiones-por-resultado. Se puede observar que el <lire:display-spec> ya no sólamente saca un título, sino que también una pequeña explicación. Nótese que todo el contenido en el elemento <lire:description> no utiliza el namespace lire y por lo tanto es contenido de DocBook.
<lire:display-spec>
<lire:title>Requests By HTTP Result</lire:title>
<lire:description>
<para>
The most common HTTP status codes are given below:
<variablelist>
<varlistentry>
<term>200</term>
<listitem>
<para>OK (The request has succeeded.)</para>
</listitem>
</varlistentry>
<!-- rest is cut out -->
</variablelist>
</para>
</lire:description>
</lire:display-spec>
La salida del informe tendrá el siguiente aspecto (sólo se muestra la parte superior):
Requests By HTTP Result
The most common HTTP status codes are given below:
200 OK (The request has succeeded.)
201 Created (The request has been fulfilled and resulted in a new resource being created.)
206 Partial Content (The server has fulfilled the
La mayoría de los informes tienen un gráfico asociado a los datos. Estas imágenes son generadas a partir de los datos y la especificación del informe también define el formato en el que la imagen es dibujada. Tome como ejemplo el siguiente fragmento del informe transferencias-por-tipo de FTP:
Para este informe los datos son visualizados con un gráfico de sectores como puede observarse en el atributo @charttype en el código superior. El resultado tiene el siguiente aspecto:
Cambiando el tipo de gráfico a bars a 'charttype="bars"' la salida cambia a:
Nótese que el título del informe tiene un fallo. El informe es sobre el tipo de transferencia no sobre el tipo de fichero. Este fallo ya ha sido reportado.
Información más específica sobre lenguaje XML utilizado para la especificación de informes se puede encontrar en el sitio web de LogReport. Usted observará que el lenguaje es bastante extenso, y por ahora yo le sugeriría que utilizara la especificación de informe que viene con la distribución, como su guía principal.
Elementos que no se han cubierto en este artículo, pero que son utilizados en esos informes son utilizados para la especificación de parámetros (<lire:param-spec>) y el cálculo de los datos de salida (<lire:report-calc-spec>). Especialmente, la última tiene muchas opciones y usa conocimiento anterior del formato interno (llamado DLF) en el cual son almacenados los datos de log. Esto se cubrirá en un futuro artículo.
Este artículo ha hecho una introducción al motor de generación de informes basados en XML y ha explicado cómo se pueden personalizar los informes que se obtienen. Más información se puede hallar en el web site de LogReport: http://www.logreport.org/.
Si quiere contactasr con el equipo de LogReport, puede hacerlo por IRC. Los desarrolladores a menudo pueden ser localizados en el canal #logreport en la red IRC OpenProjects.org. Preguntas, comentarios y solicitudes de soporte serán bienvenidas. Si prefiere contactar por correo electrónico, puede localizar al equipo en la lista de distribución pública questions@logreport.org.
|
Contactar con el equipo de LinuFocus
© Egon Willighagen, FDL LinuxFocus.org Pinchar aquí para informar de algún problema o enviar comentarios a LinuxFocus |
Información sobre la traducción:
|
2002-01-04, generated by lfparser version 2.21