Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Parsiranje velikih log fajlova
#1
Zdravo svima,

Skorije sam imao potrebu da analiziram prilicno veliki (500MB) mod_security log fajl i to u "realnom" vremenu, tj da svaki upis u fajl registrujem odmah i da promene vidim u nekom obliku koji je jednostavan za analizu napada na odredjeni web sajt.
Takodje fajl se jako brzo menja i rotira.

Resenje koje sam primenio je da sam napisao parser u pythonu koji radi slicno kao "tail -f logfile" i zanima me da li postoji bolji pristup za to:

Code:
...
with open('/var/log/apache2/modsec_audit.log') as f:
    while True: # This will wait for next line in file

        if psutil.cpu_percent() > 50:
            time.sleep(0.2) # CPU usage protection
        line = f.readline()
        if line:
            # Do something with line from file
            # Put it in DB, etc ...
...

Ovo odlicno radi jer cita liniju po liniju i ne zauzima puno memorije, zatim problem sa zakucavanjem cpu u while petlji sam resio sa sleep (jel ima bolji predlog?). Imao sam jos jedan problem a to je prekidanje skripta u pola ili bilo gde, i to sam resio sa pomeranjem file pointera u odnosu na zadnji upis u bazi. 

Deo za analizu je u HTML/PHP-u i on nije sporan jer cita podatke iz DB.

@mikikg ti si cini mi se radio nesto sa nekim velikim logovima?


Hvala,
Ivan
“If you think you are too small to make a difference, try sleeping with a mosquito.” - Dalai Lama XIV
Reply


Messages In This Thread
Parsiranje velikih log fajlova - by 1van - 12-28-2014, 11:24 AM
RE: Parsiranje velikih log fajlova - by mikikg - 12-28-2014, 11:38 AM
RE: Parsiranje velikih log fajlova - by 1van - 12-28-2014, 01:54 PM
RE: Parsiranje velikih log fajlova - by 1van - 12-08-2017, 12:21 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)