Analyse der Logdateien Ihrer Internet-Anwendungen II - Konfiguration der Berichte

ArticleCategory:

Applications

AuthorImage:

[Foto of Egon]

TranslationInfo:

original in en Egon Willighagen

en to de Hermann-Josef Beckers

AboutTheAuthor:

Neben seiner Arbeit für das LinuxFocus-Projekt hat Egon bis zum 1. November diesen Jahres für die Stichting Logreport Foundation gearbeitet. Ein Teil der Ziele der Foundation ist es, Software für die Log-Analyse unter der GPL zu erstellen.

Abstract:

Dieser Artikel ist der zweite in einer Serie über die Benutzung von Lire für die Analyse der Log-Dateien von Internet-Anwendungen. Dieser Artikel zeigt Ihnen, wie Sie die erstellten Berichte anpassen können. Der erste Arikel dieser Serie erklärt, wie Lire installiert wird.

ArticleIllustration:

[illustration]

ArticleBody:

Einführung

Dieser Artikel basiert auf der aktuellsten Lire-Version, nämlich lire-20011017. Bitte beachten Sie, dass sich bei der Konfiguration gegenüber der letzten Version eine Menge geändert hat und der erste Artikel dieser Serie bereits überholt ist. Die generellen Ideen des li_config-Programms haben sich jedoch nicht geändert.

Neue Eigenschaften in dieser Version sind u. a. zwei neue Dienstegruppen (FTP und firewall), eine Menge neuer Berichte (insgesamt > 68), neue Ausgabeformate (XHTML und RTF) und eine Menge Fehlerbereinigungen. Aber die wichtigste Änderung in dieser Version liegt im Innern. Der Prozeß der Berichtserstellung wurde vollständig neu geschrieben, um die XML-Technik verwenden zu können.

Dieser Artikel stellt eines der XML-Formate vor, die nun in Lire benutzt werden und zeigt, wie das Format zur Definition von Berichten benutzt wird. Er wird kein Tutorial über die Erstellung neuer Berichte sein, aber er wird Ihnen zeigen, wie Sie die vordefinierten Berichte auf der unteren Ebene ändern können. Aber zunächst erklärt der Artikel, wie Sie Lire mitteilen, welche Berichte es generieren soll und wie die Parameter für diesen Berichte gesetzt werden können.

Auswahl von Berichten

Jeder Dienstegruppe ( `email' ist eine Dienstegruppe, der `postfix'- und der `sendmail'-Dienst gehören zu dieser Dienstegruppe) steht eine Anzahl von Berichten zur Verfügung, die für Sie Informationen aus den Log-Dateien extrahieren. Die WWW-Dienstegruppe hat z. B. 31 Auswertungen. Nicht jede Auswertung ist für jedermann interessant. Einige sind sehr speziell. Standardmäßig sind die meisten dieser Berichte aktiviert, aber es macht Sinn, dies anzupassen.

Die Auswertungen, die für die Berichtserstellung benutzt werden, werden in der Datei <prefix>/etc/lire/<Dienstegruppe>.cfg aufgeführt (wenn Lire im Verzeichnis <prefix> installiert wurde). So sieht z. B. die Konfigurationsdatei für die FTP-Dienstegruppe folgendermassen aus:

# Report configuration for the FTP super service

# 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

Die FTP-Dienstegruppe hat also 8 Berichte definiert und bis auf einen sind alle aktiviert. Die "top-files"-Auswertung ist durch das "#"-Zeichen deaktiviert. Die Entfernung des "#"-Zeichens selektiert die Auswertung erneut..

Bitte beachten Sie, dass nicht alle Zeilen, die mit "#" beginnen, Auswertungen bezeichnen. In dieser Konfigurationsdatei sind die Zeilen "Report configuration for the FTP super service", "Top X reports", "By day reports" und "Transfers by X reports" Kommentar. Ähnliche Kommentarzeilen werden Sie in den anderen Konfigurationsdateien finden.

Sortierung der Berichte

Die Sortierung ist sehr einfach. Die Reihenfolge, in der die Auswertungen in den Konfigurationsdateien erscheinen, ist die Reihenfolge, in der sie in der Ausgabe erscheinen. Neuorganisation der Zeilen in den Konfigurationsdateien ändert die Reihenfolge in der Ausgabe. Im obigen Beispiel ist z. B. "transfers-by-type" der Bericht, der als letzter in der Ausgabedatei erscheint.

Anpassung der Berichte

Viele Auswertungen können teilweise durch die im letzten Abschnitt erläuterten Konfigurationsdateien angepasst werden. Betrachten Sie z. B. diese DNS-Dienstegruppe-Konfigurationsdatei:

# Report configuration for the DNS super service

# 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='nonrec'
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='nonrec'
requesttype-distribution
requesttype-distribution-by-method method='recurs'
requesttype-distribution-by-method method='nonrec'

# 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='nonrec'

# 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='nonrec'

Alle 15 Auswertungen sind aktiviert, aber zusätzlich kann für die Auswertungen, die eine Hitliste (Top X) liefern, die Anzahl X definiert werden. Mit der obenstehenden Konfiguration zeigt die Auswertung top-requesting-hosts die ersten 10 an.

Diese Auswertungen werden aus nur acht Berichtsspezifikationen generiert. Die Benutzung von Parametern (period, method, hosts_to_show, und names_to_show) ermöglicht dies. Dies ist eine der neuen mächtigen Eigenschaften des neuen XML-basierenden Auswertungsprozesses.

Wichtig: Alle Variablendefinitionen müssen auf der gleichen Zeile wie der Berichtsname stehen!

Ein etwas exotischeres Beispiel aus der WWW-Dienstegruppe-Konfigurationsdatei:

top-referers-by-page referer_to_show=5 page_to_show=10 referer_exclusion='^-$'

In diesem Beispiel wird ein Perl- Suchmuster als Inhalt für die referer_exclusion-Variable benutzt. Dieser Ausdruck trifft auf alle Referer "-"-Zeilen zu. Diese Referer-Zeilen finden sich in den Log-Dateien, wenn die URL Ihrer Web-Seite von der Benutzerin eingegeben wurde. (Wenn Benutzer Ihre Seite besuchen, indem sie einen Link auf einer anderen Seite auswählen, der sich auf Ihre Seite bezieht, findet sich die Verweisseite im Referer-Feld). Alle Referer-Zeilen, auf die "-" zutrifft, werden von der Auswertung ausgeschlossen.

Manuelle Anpassung der Auswertungen

Mit dieser neuen Version beginnt ein komplett neuer Lire-Zweig. Der Prozess der Berichtserstellung und -Spezifikation wurde vollständig neu geschrieben, um die XML-Technik zu benutzen. Auswertungen werden in XML spezifiziert, aber die Variablen-Definition erfolgt im einfachen ASCII-Format. Die vorherige Berichts-Spezifikation war ein Perl-Skript, welches Informationen sowohl über das Eingabe- als auch das Ausgabeformat enthalten musste. Mit dem neuen XML-Format ist die Implementation von der Spezifikation getrennt und man muss nicht über das Ein-/Ausgabe-Format informiert sein, sondern nur über die Informationen, die verarbeitet werden können.

D. h. wenn Sie Berichte manuell anpassen, müssen Sie etwas über XML wissen. Eine Beispiel-Auswertung aus dem <prefix>/share/lire/reports/firewall-Verzeichnis:

<?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>

Der lire-Namensraum

Zuerst sollte Ihnen auffallen, dass fast jedes XML-Element in diesem Bericht mit lire: beginnt. Dies wird benutzt, um dieses Element einem Namensraum zuzuweisen. Jedes Element mit dem lire-Namensraum ist in der XML DTD http://www.logreport.org/LRSML/1.0/lrsml.dtd (leerer Verweis!) definiert, welche unter http://www.logreport.org/pub/docs/dtd/lrsml/angesehen werden kann. .

Bei allen anderen Elementen wird angenommen, dass sie zur DocBook XML 4.2 DTD gehören, wie das <para>-Element in der zehnten Zeile des Beispiels.

Änderung des Titels in den von Lire erstellten Berichten

Wenn Sie die Überschrift ändern möchten, die im Bericht erscheint, müssen Sie den Inhalt von <lire:title> in <lire:display-spec> ändern. Beachten Sie, dass Zeichenketten, die mit "$" beginnen, Perl-Variablen sind, wobei der Name mit einem der angegebenen Parameter in der <lire:param-spec>-Sektion korrespondiert.

Der schwierige Teil dabei ist, dass Sie das korrekte <lire:title>-Element finden müssen. Sie brauchen das Element, welches der Inhalt des <lire:display-spec> -Knotens ist. Letztgenanntes Element enthält die Information, die im Ausgabe-Bericht angezeigt wird. Das erste <lire:title>-Element enthält den Berichtstitel, der in der Dokumentation der Lire-Software benutzt wird.

Das nächste Beispiel zeigt ein Stück der "requests-by-result"-WWW-Berichtsspezifikation. Man kann sehen, dass <lire:display-spec> nun nicht nur einen Titel, sondern zusätzliche Erklärungen ausgibt. Beachten Sie, dass sämtlicher Inhalt innerhalb des <lire:description>-Elements nicht den lire-Namensraum benutzt und deshalb DocBook-Inhalt ist.

<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>

Der erstellte Bericht wird ungefähr so aussehen (nur oberster Teil angezeigt):

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

Wechsel des Bildtyps für einen Bericht

Viele Berichte sind mit Grafiken verknüpft. Diese Grafiken werden aus den Daten generiert und die Report-Spezifikation definiert auch das Format, in dem die Grafik erstellt wird. Nehmen wir z. B. den folgenden Schnipsel aus dem "FTP transfers-by-type"-Report.

<lire:report-spec xmlns:lire="http://www.logreport.org/LRSML/" superservice="ftp" id="transfers-by-type" charttype="pie">

Für diesen Bericht werden die Daten durch eine Kuchengrafik visualisiert, was man aus dem @charttype-Attribut im obigen Code ersehen kann. Das Ergebnis sieht wie folgt aus:

[charttype pie]

Durch Wechsel des Chart-Typs auf bars wie in 'charttype="bars"' verändert sich die Ausgabe zu:

[charttype bars]

Beachten Sie, dass der Berichtstitel einen Fehler enthält. Der Bericht bezieht sich auf den Transfer-Typ, nicht auf den Datei-Typ. Der Fehler wurde bereits gemeldet.

Spezielles

Weitere spezielle Informationen zur XML-Sprache, die für die Berichtsspezifikation benutzt wird, finden Sie auf der LogReport Web-Seite. Sie werden sehen, dass die Sprache recht ausführlich ist, und ich schlage vor, dass Sie die mit dieser Version verteilte Berichts-Spezifikation als Haupt-Informationsquelle benutzen.

Elemente, die in diesem Artikel nicht besprochen wurden, aber in diesen Berichten benutzt werden, sind z. B. jene für die Parameter-Spezifikation (<lire:param-spec>) und für die Berechnung der Ausgabe-Daten (<lire:report-calc-spec>). Besonders der letztere hat viele Optionen und setzt Wissen über das interne Format (DLF genannt) voraus, in dem die Log-Daten gespeichert werden. Dies bleibt einem weiteren Artikel vorbehalten.

Zusammenfassung

Dieser Artikel führte in den XML-basierenden Berichts-Erstellungs-Prozeß ein und erläuterte, wie Sie die erstellten Auswertungen anpassen können. Weitere Informationen finden Sie auf der LogReport-Web-Seite: http://www.logreport.org/.

Wenn Sie mit dem LogReport-Team Kontakt aufnehmen möchten, können Sie das im IRC tun. Die Entwickler können oft im #logreport channel im OpenProjects.org IRC network angetroffen werden. Fragen, Kommentare und Unterstützungsanfragen sind willkommen. Wenn Sie eMail bevorzugen, können Sie das Team über die öffentliche Mailing-Liste [email protected] erreichen.