[LinuxFocus-icon]
Home  |  Map  |  Index  |  Zoek

Nieuws | Archieven | Links | Over LF
Dit artikel is beschikbaar in: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Portugues  Turkce  

convert to palmConvert to GutenPalm
or to PalmDoc

[Foto van Egon]
door

Over de auteur:
Naast zijn werk voor het LinuxFocus project, werkte Egon voor de Stichting Logreport tot de eerste november van dit jaar. Een deel van het doel van de stichting was het schrijven van software voor log analyse met een GPL licentie.
Inhoud:

 

Het analyseren van de logbestanden van je internet applicaties II - het configureren van je rapporten

[illustration]

Kort:

Dit artikel is het tweede in een serie over het gebruik van lire om log bestanden van internet server applicaties te analyseren. Dit artikel laat je zien hoe je de gegenereerde rapporten kan aanpassen aan je eigen voorkeuren. Het eerste artikel uit deze serie legde uit hoe lire moet worden geinstalleerd.



 

Inleiding

Dit artikel is gebaseerd io de laatste release van lire, op dit moment is dat lire-20011017. Let erop dat de configuratie erg veranderd is sinds de vorige release, en dat, in feite, het eerste artikel uit de serie nu al verouderd is. Het idee van lr_config is echter niet veranderd.

Nieuwe features in deze release zijn, onder andere: twee nieuwe super services (FTP en firewall), veel nieuwe rapporten (totaal > 68), nieuwe output formats (XHTML en RTF) en een heleboel bug fixes. Maar de belangrijkste verandering in deze release zit in de engine. Het rapport generatie proces is compleet herschreven om gebruik te kunnen maken van XML technologie

Dit artikel zal een van de XML formaten die nu in lire gebrukt worden introduceren en hoe deze gebruikt kunnen worden om rapporten te specificeren. Het zal geen tutorial zijn over het maken van nieuwe rapporten, maar het zal je laten zien hoe je de voorgedefinieerde rapporten kan veranderen op een laag niveau. Maar allereerst zal dit artikel uitleggen hoe je lire kan vertellen welke rapporten hij moet genereren en hoe de parameters voor deze rapporten moeten worden ingesteld.

 

Rapporten selecteren

Iedere super service (dus `email' is een super service, de `postfix' en `sendmail' service's behoren tot deze super service) heeft een aantal rapporten beschikbaar die extra informatie voor je uit de logs halen. De wwww superservice heebt bijvoorbeeld 31 rapporten. Niet alle rapporten zijn interresant voor iedereen. Sommigen zijn erg specifiek. Standaard worden de meeste van deze rapporten geselecteerd, maar het is handig om dit in te stellen naar je eigen wensen.

De rapporten die zullen worden gebruikt bij het genereren van een rapport worden ingesteld in het bestand <prefix>/etc/lire/<superservice>.cfg (aangenomen dat Lire geinstalleerd is de directory <prefix>). Voor de FTP super service bijvoorbeeld ziet het configuratie bestand er als volgt uit:

# 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

De FTP super service heeft dus acht raporten gedefinieerd en allen behalve een zijn geselecteerd. De "top-files" wordt ge deselecteerd door gebruik te maken van het karakter "#". Het verwijderen van het karakter "#" zal het rapport opnieuw selecteren.

Let erop dat niet alle regels die beginnen met een "#" rapporten zijn. in dit configuratie bestand zijn de regels "Report configuration for the FTP super service", "Top X reports", "By day reports" en "Transfers by X reports" commentaren. Dezelfde dingen kunnen verwacht worden in de andere configuratie bestanden.

 

Rapporten sorteren

Ordenen is zeer eenvoudig. De volgorde waarin de rapport regels verschijnen in de configuratie bestanden is de volgorde waarin de rapporten zullen worden weergegeven in de output. Het herordenen van de regels in deze configuratie bestanden, zal ze dus ook herordenen in de output. Bijvoorbeeld in het bovenstaande voorbeeld, worden transfers type voor type in het laatste rapport in de output gegeven.

 

Rapporten aanpassen aan de eigen wensen

Veel rapporten kunnen gedeeltelijk worden aangepast aan de eigen wensen met de configuratie bestanden dit gaat zoals in het voorgaande deel is uitgelegd. Bijvoorbeeld deze DNS super service configuratie:

# Rapport configuratie voor de 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 vijftien rapporten zijn geselecteerd, maar bovendien is het voor de rapporten met een top X output mogelijk het nummer X te definieren. Met de bovenstaande configuratie geeft het rapport top-requesting-hosts een Top 10.

Deze rapporten worden gegenereerd uit slechts acht rapport specificaties. Het gebruik van de parameters (period, method, hosts_to_show, en names_to_show) maakt dit mogelijk. Dit is een van de nieuwe krachtige features van de nieuwe op XML gebaseerde engine.

Belangrijk: alle variabele instellingen moeten op dezelfde regel worden geplaatst als de rapport naam!

Een meer exotisch voorbeeld kan gegeven worden aan de hand van het WWW super service configuratie bestand:

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

In dit voobeeld wordt een Perl reguliere uitdrukking gebruikt als inhoud voor de referer_exclusion variabele. Deze expressie komt overeen met alle referers "-". Zulke referers kunnen worden gevonden in het log bestand in gevallen waarin bijvoorbeeld de URL van een web pagina is ingetyped door de client gebruiker. (Wanneer gebruikers je pagina bezoeken door op een link in een pagina te klikken die doorverwijst naar je pagina, dan wordt de pagina wara de link vandaan komt gegeven in het referer veld.) Alle referers die hetzelfde zijn als "-" worden uit de analyse gehouden.

 

Low Level aanpassen van Rapporten

Deze nieuwe release is het begin van een heel nieuwe tak van Lire. De rapport generatie en de specificatie processen zijn compleet herschreven om gebruik te kunnen maken van XML technologie. Rapporten worden gespecificeerd in XML, maar de instelling van de variabelen werkt in gewoon ASCII formaat. De voorgaande rapport specificatie was een Perl script dat zowel het input format als het output format moest kennen. Met het nieuwe XML format is de implementatie gescheiden van de specificatie en je hoeft niet meer zowel het input als het output formaat te kennen, maar alleen de gegevens die verwerkt kunnen worden.

Dus, als je rapporten low level aanpast, hoef je allen maar een beetje XML te kennen. Een voorbeeld rapport, genomen van de <prefix>/share/lire/reports/firewall directory:

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

 

De lire Naamruimte

Het eerste dat je zou moeten opvallen is dat vrijwel ieder XML element in dit rapport begint met lire:. Dit wordt gebruikt om een naamruimte toe te wijzen aan dat element. Ieder element met de lire naamruimte, is gedefinieerd in XML DTD http://www.logreport.org/LRSML/1.0/lrsml.dtd (lege link!), die kan worden doorgespit op http://www.logreport.org/pub/docs/dtd/lrsml/.

Alle andere elementen zouden moeten toebehoren aan het DocBook XML 4.2 DTD. Zoals het element <para> op de tiende regel bijvoorbeeld.

 

Het veranderen van de titel die boven de door Lire gegenereerde rapporten verschijnt

Als je de titel die verschijnt in het rapport wilt wijzigen, dan moet je de <lire:title> inhoud in de <lire:display-spec> veranderen. Onthoud hierbij dat strings die starten met "$" Perl variabelen zin waar de naam correspondeert met een van de gespecificeerde parameters in de <lire:param-spec> sectie.

Het lastige deel is dat je het juiste <lire:title> element moet nemen. Je moet het element nemen dat de inhoud is van de <lire:display-spec> node. Het volgende element bevat de gegevens die verschijnen in het output rapport. Het eerste <lire:title> element bevat de titel van het rapport die gebruikt wordt in de documentatie van de Lire software.

Het volgende voorbeeld laat een fragment van de requests-by-result WWW rapport specificatie zien. Je kan zien dat de <lire:display-spec> nu niet alleen een titel als output geeft, maar ook wat meer uitleg. Let er op dat alle inhoud in het <lire:description> element geen gebruik maakt van de lire naamruimte, en dus DocBook inhoud is.

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

Het rapport zal er ongeveer uitzien als (alleen het bovenste deel hier):

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

 

Het veranderen van het type afbeelding voor een report

De meeste rapporten bevatten afbeeldingen die afhankelijk zijn van de gegevens. Deze afbeeldingen worden gegenereerd met behulp van de gegevens en de rapport specificatie definieert het formaat waarin de afbeelding wordt afgedrukt. Neem bijvoorbeeld het volgende stuk uit het FTP transfers-by-type rapport.

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

Voor dit rapport worden de gegevens gevisualiseerd in een taart diagram zoals te zien is aan het @charttype attribuut in de bovenstaande code. Het resultaat ziet er zo uit:

[charttype pie]

Door het diagram type te veranderen in staaf zoals in 'charttype="bars"' verandert de output in:

[charttype bars]

Let erop dat het rapport een bug bevat. Het rapport staat op het transfer type niet het bestands type. Deze bug is al gemeld.

 

Specifieke informatie

Meer specifieke informatie over de XML taal die gebruikt is voor de rapport specificatie kan worden gevonden op de LogReport web site. Je zal zien dat de taal vrij uitgebreid is, en voor nu kan ik je aanraden om gebruik te maken van de rapport specificatie die als gids bij de distributie wordt geleverd.

Elementen die niet besproken zijn in dit artikel, maar die wel worden gebruikt in deze rapporten voor de specificatie van parameters zijn (<lire:param-spec>) en berekening van de uitgedraaide gegevens (<lire:report-calc-spec>). Vooral de laatste heeft veel opties en maakt hebruik van bestaande kennis van het interne formaat (genaamd DLF) waarin de log gegevens worden opgeslagen. Dit zal worden besproken in een toekomstig artikel.

 

Conclusie

Dit artikel heeft de XML gebaseerde rapport engine geïntroduceerd en uitgelegd hoe je de rapporten die je krijgt kan aanpassen. Meer informatie kan worden gevonden p[ de LogReport web site: http://www.logreport.org/.

Als je contact op wilt nemen met het LogReport team, kan je IRC opgaan. De ontwikkelaars kunnen vaaak worden gevonden op het #logreport channel op het OpenProjects.org IRC network. Vragen, commentaar en ondersteuningsvragen zijn welkom. Als je liever gebruik maakt van e-mail, dan kan je het team bereiken via de publieke mailing lijst .

 

Talkback voor dit artikel

Elk artikel heeft zijn eigen talkback pagina. Daar kan je commentaar geven of commentaar van anderen lezen:
 talkback pagina 

Site onderhouden door het LinuxFocus editors team
© Egon Willighagen, FDL
LinuxFocus.org

Klik hier om een fout te melden of commentaar te geven
Vertaling info:
en -> --
en -> nl

2002-01-31, generated by lfparser version 2.17