original in en Logreport, Egon Willighagen
en to nl Hendrik-Jan HeinsDit artikel is de eerste in een serie over het gebruik van Lire om logbestanden van internet-serverapplicaties te analyseren. Deze analyse is niet gelimiteerd tot èèn toepassing, bijvoorbeeld Apache: Lire is een geïntegreerd stuk analysegereedschap voor veel verschillende services. DNS, WWW en e-mail worden ondersteund. Dit artikel legt uit hoe je aan de slag kunt met Lire. Het gaat over de installatie en de configuratie om rapporten te genereren.
De meeste internetservers kunnen hun activiteiten loggen. Bijvoorbeeld de Apache webservern die voor iedere opgevraagde webpagina een regel met informatie wegschrijft naar een logbestand. Afhankelijk van de logopmaak bevat de regel informatie, zoals bijvoorbeeld welke pagina werd opgevraagd, de opmaak van de pagina, welke browser er gebruikt werd en nog veel meer. In het geval van je e-mail server wordt er een soortgelijk logbestand aangemaakt. Dit bevat het e-mailadres waar de e-mail vandaan komt, wie het ontvangen heeft, hoe groot het was, enz. Alle internet services hebben een dergelijke mogelijkheid.
Deze logbestanden bevatten zeer veel informatie, maar de opmaak is lastig uit de losse pols te interpreteren. Je hebt gereedschap nodig dat samenvattingen van de gegevens maakt om je te helpen bij het analyseren van de inhoud. In het geval van webservers vertaalt zich dit in TopX lijsten voor webbrowsers, domeinen en platforms, en een bezocht-versus-tijdsplot. De meeste tellers van andere producten laten dit soort overzichten zien.
Er bestaan voor de meeste typen logbestanden gereedschap om de inhoud te analyseren. Lire is zulk gereedschap. Maar Lire is anders dan de meeste gereedschappen. Lire is een geïntegreerd systeem dat niet slechts èèn type internetdienst kan analyseren, maar vele. En de rapporten die de interessante gegevens uit de logbestanden samenvatten zitten erbij. Je kunt zelf op maat gemaakte rapporttypen aan toevoegen.
Lire kan op verschillende manieren gebruikt worden. Je kunt het draaien vanaf de commandoregel of je kunt een crontabtaak geïnstalleerd hebben die je rapporten per e-mail opstuurt. In het eerste geval kun je de uitvoeropmaak voor het rapport kiezen. De op dit moment beschikbare uitvoeropmaak is onder andere platte tekst, HTML, DocBook, PDF en LogML. In het geval van de crontabtaak is de enige beschikbare opmaak op dit moment platte tekst.
Nu kunnen de logbestanden voor deze diensten worden geanalyseerd:
Lire wordt snel ontwikkeld, op dit moment (september 2001) met drie mensen die er betaald aan werken. Een van hun taken is ondersteuning, dus als je een speciaal verzoek hebt (een nieuwe service bijvoorbeeld) of je een algemene ondersteuningsvraag hebt, laat dan een bericht achter op de mailinglist questions@logreport.org.
Recente versies van lire kunnen worden gedownload vanaf de SourceForge website. Er zijn tar.gz, RPM- en Debianpakketten beschikbaar. Debian Woody en ook Sid bevatten lire al. Installatie van het binaire pakket gaat op de gebruikelijke wijze. Installatie van het tar.gz pakket werkt ook precies zoals verwacht:
./configure make make install
Het configuratieprogramma heeft de volgende opties
option | description |
--prefix=/some/dir | Stelt de root dir in voor de installatie. Standaard is /usr/local. |
--with-perl5libdir=/some/dir | Stelt de dir waar de lire Perl modules worden geinstalleerd in. De standaard is $prefix/share/perl5. |
--with-sgmldir=/some/dir | Het pad voor de SGML installatie directory. De standaard is $prefix/lib/sgml en $prefix/share/sgml. |
Als je van plan bent om gebruik te maken van andere uitvoeropmaak dan platte tekst moet je XML-gereedschap zoals de DocBook XML stijlbladen, Jade en een XML-processor zoals Xalan of Sablotron geïnstalleerd hebben. Met de derde optie voor het configuratieprogramma kun je aangeven waar de SGML-bestanden geïnstalleerd zijn.
Zodra Lire geïnstalleerd is, kun je het losse programma lr_log2report. gebruiken. Maar als je van plan bent om Lire te gebruiken via een crontaak, dan moet je die crontaak eerst configureren. Dit kan worden gedaan met het lr_config programma. De vragen worden een voor een gesteld:
Wordt dit script gestart als deze gebruiker?
Het script moet worden gedraaid door een gebruiker die de logbestanden kan lezen. De logbestanden zijn vaak alleen maar leesbaar voor root en de gebruikers van de groep adm. Controleer of de gebruiker de logbestanden kan lezen. Een voorbeeld:
~> cd /var/log /var/log> ls -al apache/access.combined.log -rw-r----- 1 root root 70902 Jul 27 13:23 apache/access.combined.log /var/log> whoami egonw /var/log> groups egonw adm dialout
In dit voorbeeld kan de huidige gebruiker egonw het Apache logbestand niet lezen. Alleen root kan op dit moment het bestand lezen. De gebruiker is echter lid van de groep adm dus we kunnen dit probleem oplossen door root de groep voor het logbestand te laten wijzigen:
/var/log# whoami root /var/log# chgrp adm apache/access.combined.log /var/log# ls -al apache/access.combined.log -rw-r----- 1 root adm 70902 Jul 27 13:23 apache/access.combined.log
Tijdelijke bestanden worden standaard niet bewaard. Wil je deze behouden?
Voor normaal gebruik zou je hier nee moeten zeggen.
Ben je van plan een online responder te draaien?
De online responder is een stukje gereedschap dat het mogelijk maakt om je logbestand als e-mail naar deze responder te sturen en om dan daarvan een rapport terug te krijgen. Dit is bruikbaar voor beheerders van grote netwerken. Voor normaal gebruik moet je hier nee kiezen.
Standaard worden tijdelijke bestanden in ~/tmp opgeslagen. Wil je dit veranderen?
Standaard worden tijdlijke bestanden opgeslagen in je thuismap. Je kunt deze instellingen veranderen door ja te kiezen en de map op te geven waar je ze dan wel heen wilt schrijven. Onthoud hierbij wel dat dit een map moet zijn waarin de gebruiker die Lire draait schrijfrechten heeft.
Wil je een "disclaimer" versturen bij de gegenereerde rapporten?
Als je je rapporten naar anderen stuurt, dan zou je misschien een "disclaimer" willen toevoegen en moet je dus ja antwoorden op deze vraag. Als de rapporten alleen voor intern gebruik zijn, dan kun je hier nee antwoorden.
Standaard worden status en foutmeldingen naar stderr gestuurd. Wil je dit veranderen in syslog?
Door hier ja te antwoorden kies je ervoor dat foutmeldingen en informatieve meldingen naar logger(1) worden gestuurd in plaats van naar het standaard foutmeldingskanaal (STDERR). Hiervoor moet je wel syslog's logger(1) geïnstalleerd hebben.
Standaard worden informatieve en debugberichten onderdrukt. Wil je het systeem in debugmodus draaien? Voor normaal gebruik moet je hier nee kiezen.
Wil je enkele standaardinstellingen voor alle services gebruiken?
Je kunt voor alle services een e-mail adres en een onderwerp apart instellen. Voor het gemak kun je ook een standaard globale instelling gebruiken. Antwoord hier ja om deze standaard in te stellen:
Wil je een "standaard-naar" e-mail adres gebruiken?
Als je hier ja antwoordt, wordt dit e-mail adres gebruikt om rapporten naartoe te sturen. Het kan voor specifieke services overschreven worden.
Wil je een standaard onderwerpsjabloon gebruiken voor de gegenereerde e-mail?
Als je hier ja antwoordt, kun je een sjabloon opgeven dat gebruikt wordt om e-mailonderwerpen aan te geven. De standaard ziet er als volgt uit: "[LogReport] www / apache report" voor rapporten van Apache logbestanden.
Welke services draai je?
Alle volgende vragen gaan over welke services je van wilt dat Lire een rapport van maakt. De vragen lijken op elkaar en worden hier dus ook niet een voor een besproken. Maar voor alle services zien de vragen er als volgt uit:
Verzamel je ***** logbestanden op deze machine die je verwerkt wilt hebben?
De programma's die Lire ondersteunt worden gegroepeerd als zogenaamde "superservices". De eerste vraag voor iedere superservice is altijd of je logbestanden verzamelt waarvan je wilt dat Lire er een rapport van maakt. Als je hier nee antwoordt, dan worden de verdere vragen over deze superservice niet gesteld. De superservices die Lire op dit moment ondersteunt zijn gegeven aan het begin van dit artikel. Er is er echter een die daar niet genoemd is: apachemodgzip. Dez werkt met logbestanden over Apache in gecomprimeerde modus.
Het configuratieprogramma zal je daarna vragen stellen over welke services een voor een gedraaid worden. Voor e-mail bijvoorbeeld zouden deze services exim, postfix, qmail en sendmail kunnen zijn. Voor ieder programma vraagt lr_config je waar Lire de logbestanden kan vinden. Deze kunnen ingepakt zijn, omdat Lire je zal vragen of je wil specificeren met behulp van welke programma's het de logbestanden moet lezen: zcat of gunzip -c kunnen op deze manier gebruikt worden.
Worden enige van je ***** logbestanden wekelijks gerouleerd?
Als je ja antwoordt, zullen de crontabtaken voor Lire worden geconfigureerd om maar eens per week te draaien. De andere optie is dagelijks.
Als alle vragen beantwoord zijn, schrijft hij alle instellingen naar configuratiebestanden (*/defaults.local). Deze bestanden kunnen worden gebruikt door de Lire crontaak. Helaas wordt deze crontaak niet automatisch geactiveerd. Je moet dit zelf doen door de volgende "one-liner" in te typen:
~> { echo '0 10 * * * /usr/local/logreport/bin/lr_cron daily'; echo '0 10 * * 0 /usr/local/logreport/bin/lr_cron weekly'; } | crontab -
Zodra lire op dee manier gectiveerd is, zullen de rapporten op een wekelijkse of dagelijkse basis worden verstuurd. Je kan de configuratie afstellen door de de hierboven genoemde configuratiebestanden te bewerken.
~> lr_run lr_log2report /tmp/err www apache combined < /var/log/apache/access.combined.log > apache.txt
Het lr_log2report programma gebruikt tenminste drie argumenten. Het eerste is een bestnd waar de foutmeldingen naartoe worden gestuurd. In dit geval /tmp/err. Het tweede argument is de superservice van het logbestand. Er zijn op dit moment drie superservices: www, dns en e-mail. Het derde argument is de service, dat het type logbestand typeert. In dit gevl is dat een Apache gecombineerd bestand, dus de service is apache. Er bestaat een extra argument dat een vlagfunctie heeft en die vertelt dat het apache logbestand gebruik maakt van de gecombineerde opmaak. Zoals met de meeste Lire-programma's kun je extra informatie vinden met behulp van man:
~> man lr_log2report
Om de uitvoeropmaak te veranderen kan je de optie "-i <opmaak>" gebruiken. Geldige opmaak is op dit moment txt (standaard), logml (LogML website), DocBook XML (DocBook Open Repository), HTML en PDF. De laatste twee hebben DocBook stylesheets en Jade nodig om te werken. Alle opmaakmogelijkheden behalve platte tekst hebben ook een XSLT-processor zoals Gnome's xsltproc nodig om bijvoorbeeld PDF te genereren:
~> lr_run lr_log2report -o pdf /tmp/err www apache combined < /var/log/apache/access.combined.log > apache.pdf
Dit artikel heeft in het kort het Lire project voorgesteld en je laten zien hoe je de software kunt installeren en configureren. De volgende artikelen in deze serie zullen de software en het gebruik verder omschrijven. Voor nu kun je meer informatie hierover vinden op onze website: http://www.logreport.org/.
Als je contact met ons wilt opnemen, kun je ons het beste ontmoeten op IRC. De ontwikkelaars kunnen vaak gevonden worden op het #logreport kanaal op het OpenProjects.org IRC netwerk. Vragen, opmerkingen en ondersteuningsvragen zijn welkom.