Toon posts:

apache logfile beheer

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi iedereen,

Ff een vraagje voor mensen die drukke Apache servers beheren.

Hoe beheren jullie de Apache logfiles? Ik krijg op mijn servertje al 50 tot 100Mb per dag aan Apache logs, met websites als tweakers moet dat natuurlijk al helemaal verschrikkelijk zijn. Slaan jullie alle requests op in de logfiles of filteren jullie standaard request eruit (plaatjes enzo). Ik neem aan dat de logfiles om de zoveel tijd verplaatst en gezipt worden, bewaren jullie die logs dan nog, en voor hoe lang?

De errorlogs vind ik enorm handig om fouten op te sporen, maar dit is al redelijk wat werk met grote logfiles. Hoe gaat dat als je 'echt' grote logfiles heb? Lees je die ook gewoon met de hand zoals ik nog wel eens doe?

In principe heb ik een goed werkende methode maar ik vroeg me gewoon af hoe dat gaat met grote servers.

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 17-11-2025

PowerSp00n

There is no spoon

Op donderdag 27 juni 2002 19:49 schreef wkamphuis het volgende:
met websites als tweakers moet dat natuurlijk al helemaal verschrikkelijk zijn.
Ik denk dat er bij Tweakers.net niet gelogd word. Alleen misschien een dev account ofzo? Wat moet je met zo'n grote berg waar elke seconden weer heel wat regeltjes bij komen? Maar is er voor zoiets niet logrotate ofzo. Heb me er nooit in verdiept heb het alleen een paar keer voorbij zien komen. Weet niet wat het doet. Maar je kunt er even naar kijken :).

  • blackd
  • Registratie: Februari 2001
  • Niet online
Op donderdag 27 juni 2002 20:07 schreef PowerSp00n het volgende:
Maar is er voor zoiets niet logrotate ofzo
Jup dat is er, bij (o.a. :?) Mandrake zit dat standaard geinstalleerd. Draait je logs om ;) en wordt bij Mandrake gezipt om de zoveel tijd (dmv cron). Nu heb ik overigens Debian geinstalleerd ;)

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


Verwijderd

Topicstarter
Logrotate ken ik wel, ik heb zelf iets gelijkwaardigs gemaakt. Gewoon een script wat 's ochtends de logfiles verplaatst, apache een -hup geeft en de logfiles gzipt. Maar dan nog hou je per dag een 10-20Mb aan zips over.

Ik neem aan dat men bij drukke servers wel 'wat' logt, zomaar een server draaien zonder te weten wie/wat daarmee gebeurt lijkt me vrij link.

  • HGM
  • Registratie: April 2000
  • Niet online

HGM

Op donderdag 27 juni 2002 20:25 schreef wkamphuis het volgende:
Ik neem aan dat men bij drukke servers wel 'wat' logt, zomaar een server draaien zonder te weten wie/wat daarmee gebeurt lijkt me vrij link.
Een errorlog. Accesslogging heeft verder vrij weinig zin, zeker dynamische pagina's loggen zelf de pageviews + errors kan je evt. laten mailen ofzo :)

  • jep
  • Registratie: November 2000
  • Laatst online: 27-04 22:42

jep

Als je webalizer logs wil voor al je users, dan moet je wel rotaten / moven / HUP'n. :)

Verwijderd

kun je ipv HUP signal niet echo "" >/path/to/logfile doen?

Verwijderd

Topicstarter
kun je ipv HUP signal niet echo "" >/path/to/logfile doen?
kan wel maar dan ben je alle data in de logs kwijt, als je dat doet kan je net zo goed niets loggen. met het eerst verplaatsen en dan apache een -hup geven wordt alles netjes gelogt terwijl de oude logfile gebackuped kan worden. Ik beschouw mijn logfiles als heilig, ik heb ze allemaal nog ergens gebackupd. Met een echte zware server zal dat wel niet mogelijk zijn maar niets loggen lijkt me ook weer overdreven.

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 17-11-2025

PowerSp00n

There is no spoon

Op donderdag 27 juni 2002 22:36 schreef wkamphuis het volgende:

[..]

kan wel maar dan ben je alle data in de logs kwijt, als je dat doet kan je net zo goed niets loggen. met het eerst verplaatsen en dan apache een -hup geven wordt alles netjes gelogt terwijl de oude logfile gebackuped kan worden. Ik beschouw mijn logfiles als heilig, ik heb ze allemaal nog ergens gebackupd. Met een echte zware server zal dat wel niet mogelijk zijn maar niets loggen lijkt me ook weer overdreven.
Wat denk jij in zo'n ranzig grote log te kunnen vinden dan? Dan kun je beter 24 uur per dag zorgen dat die logs over je scherm gaan en gaan zitten lezen >:). Ik bedoel, je gaat toch niet een hele log door kijken of er nog iets bijzonders is gebeurt de laatste tijd?

  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 14:52
Ik heb zelf een script geschreven dat de logs eerst processed met webalizer, en dan een echo -n > geeft..waardoor de file weer leeg is. Tevens flushed dit script ook de error log. -HUP van Apache geven is dus helemaal niet nodig.

Dit script gebruik ik voor een paar servers met veel high-traffic domains en werkt al tijden perfect.

Het leidt de naam van de logfiles af aan de hand van de webalizer-configuratie filename voor het desbetreffende domain. Alleen ff een webalizer.conf maken en je nieuwe domaintje wordt meteen geprocessed dus.

Voor mensen die intresse hebben....laat maar weten, dan post ik hem wel.

  • mavink
  • Registratie: April 2000
  • Laatst online: 24-11-2025
Je moet wel uitkijken dat apache voor iedere logfile een filehandle nodig heeft. Dat betekent dat hij als er *echt* veel domeinen komen door z'n filehandles heenraakt en dat wil je dus niet.

Als je veel domeinen hebt staan kan je beter alle apache requests naar 1 logfile gooien, met de hostnaam die opgevraagd wordt er bij; vervolgens kan je die in je logrotate scriptje wel weer in afzonderlijke files splitsen. Dan heeft apache er geen last van als er veel domeinen zijn.

  • JMW761
  • Registratie: Oktober 2001
  • Laatst online: 14:52
inderdaad. Voor een ISP-servertje met vele honderden domains kun je het beste je logfile splitten. Daar zijn ook wel weer tooltjes voor. Staat meen ik op de webalizer homepage uitgelegd.

  • mavink
  • Registratie: April 2000
  • Laatst online: 24-11-2025
De "makkelijkste" manier is om een grote logfile te gebruiken, samen met apache's "mass virtual hosting" module; dan maak je een directorystructuur met bijvoorbeeld:

/web/www.eensite.nl/
/web/www.anderesite.nl/

of

/web/e/www.eensite.nl/
/web/a/www.anderesite.nl/

Dankzij die module kan apache dan als hij een verzoek krijgt voor www.eensite.nl zelf de bijbehorende directory zoeken; dan hoef je voor nieuwe sites niets aan de apache config te veranderen en alleen nog maar een directory aan te maken.

Als je dan een script maakt dat die grote logfile leest, splitst per domein, daar webalizer op loslaat en de resultaten weer in de goeie dir zet hoef je nooit meer configuratiefiles aan te passen als je een nieuwe site maakt! Erg handig als je veel sites moet aanmaken...

  • mavink
  • Registratie: April 2000
  • Laatst online: 24-11-2025
Oh ja en om even terug te komen op het "grote logfiles" gedeelte; dat doe je dus bijvoorbeeld ieder uur of iedere dag, daarna zip je ze. Met gzip kan je gezipte files gewoon aan elkaar plakken; dan maak je dus grote files voor bijvoorbeeld iedere week of iedere maand en schrijf je die weg naar je favoriete archief (cd-r, dvd, tape, /dev/null, etcetera).

Logs direct weggooien doet bijna niemand; eigenlijk is dat alleen handig als je op een andere manier statistieken maakt, bijvoorbeeld door tellertjes weg te schrijven naar een bestand of in een database te loggen.

  • Vigory
  • Registratie: November 2000
  • Laatst online: 15-04 10:26
Ik biedt klanten die ik host logfiles aan. Ik heb een heel simpel scriptje wat elke week de logfile renamed en alleen de logfiles van de laatste 4 weken bewaard.

  • luc
  • Registratie: Maart 2000
  • Niet online

luc

Ik had een mooie oplossing inderdaad met een grote log, iedere nacht splitten in kleine files, webalizer eroverheen en de files gzippen..
Maar sinds ik met vhost_alias enzo aan 't kloten ben wil 't niet meer werken :(
Ik krijg hele vreemde webalizer output :? (voor een voorbeeld: http://indium.hostservices.nl/stats/usage_200205.html)

Ik heb me voorgenomen om vavanvond 's iets goeds te bouwen dus als iemand een leuk scriptje kan posten zou 'k dat zeker op prijs stellen..

Verwijderd

Topicstarter
je webalizer output lijkt op het 'out-of-sequence' probleem, je logfiles staan niet in de juiste volgoorde, webalizer krijgt eerst de nieuwste en daarna pas de oudste logs te zien. Met mergelogs (zie webalizer-faq) kan je logfiles bij elkaar voegen en op datum sorteren, webalizer kan er dan wel de statistieken uit halen.

  • luc
  • Registratie: Maart 2000
  • Niet online

luc

Op vrijdag 28 juni 2002 21:36 schreef wkamphuis het volgende:
je webalizer output lijkt op het 'out-of-sequence' probleem, je logfiles staan niet in de juiste volgoorde, webalizer krijgt eerst de nieuwste en daarna pas de oudste logs te zien. Met mergelogs (zie webalizer-faq) kan je logfiles bij elkaar voegen en op datum sorteren, webalizer kan er dan wel de statistieken uit halen.
Ej tnx, ga 'k even uitzoeken..
Het vage vind ik dat er in feite niets veranderd is, logfile splitten --> webalizer over losse files --> losse files deleten
Ik heb weinig zin om losse files te gaan bijhouden per vhost.. dat kost bergen met ruimte :(

  • Infern0
  • Registratie: September 2000
  • Laatst online: 16-03 23:51

Infern0

Hou die ontzettende rust!!

Ik gebruik cronolog, dus wat handiger, hoef je pache niet te HUP'en
code:
1
CustomLog "|/usr/local/sbin/cronolog  --symlink=/usr/log/apache/access_log.www.blaat.nl /usr/log/apache/%Y/%m/%d/access_log.www.blaat.nl" combined

Krijg je netjes van elke dag een dir met alle logs
Gebruik modlogan om de file's te analyseren, dit kan gewoon direct naar de log omdat het een symlink is.
Een modlogan script is voldoende

http://www.bsdfreaks.nl Home site: http://rob.lensen.nu /me was RobL


Verwijderd

Op donderdag 27 juni 2002 19:49 schreef wkamphuis het volgende:

Hoe beheren jullie de Apache logfiles?
1) access en error apart
2) per site in /var/log/apache/site/*
3) symlink vanaf homedir naar de logfile dir
4) sommige drukke subdomains hebben een eigen logfile

:)

Verwijderd

Topicstarter
ik ga idd ook cronolog gebruiken, het hup'en (graceful) van apache maakt de block-list van robotcop leeg, beetje irri.

de oude logfiles heb ik al met het cronosplit-programma per dag kunnen uitsplitsen zodat deze ook netjes in de 'stuctuur' passen. zodadelijk webalizer met dns compilen (is klote werk) en die over alle oude logs heen laten gaan, wil wel eens zien waar de hits vandaan komen :)

ik gebruik trouwens per vhost "%Y/%m/access.%Y-%m-%d" zodat elke dir maximaal 31 files krijgt, elke file is gemiddeld 50 tot 100Mb unziped.

  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

Op donderdag 27 juni 2002 19:49 schreef wkamphuis het volgende:
In principe heb ik een goed werkende methode maar ik vroeg me gewoon af hoe dat gaat met grote servers.
Wanneer je bijvoorbeeld een forum beheert, zou je bepaalde requests actief kunnen filteren. Een doodsimpel voorbeeld van hoe bijvoorbeeld de GoT httpd.conf eruit zou kunnen zien.
code:
1
2
3
4
5
    SetEnvIf Request_URI "showtopic.php" trash_me
    SetEnvIf Request_URI \.gif trash_me
    SetEnvIf Request_URI \.jpg trash_me
    SetEnvIf Request_URI \.png trash_me
    CustomLog /var/log/apache_only/access_log common env=!trash_me

'k Weet het, een doodsimpel voorbeeld, maar het gaat om het idee. Op die manier hou ik m'n logs altijd lekker klein, zodat de standaard-dingen er in ieder geval niet in komen. Dat was overigens ook erg handig in de tijd dat CodeRed en Nimda je logfiles vervuilden.

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR

Pagina: 1