Logparser Web-Statistik (Beispiel): Besucher Betriebssystem aus Logdatei ermitteln.


Welches Betriebssystem nutzt der Webseiten Besucher?


Die Information über das Betriebssystem wird meist vom Browser an den besuchten Webserver im http Header im sog. User-Agent String übergeben. Standardmäßig werden diese Informationen auch vom Webserver mit geloggt. Die Strings sehen so oder ähnlich aus:


Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Cen…


 


Da es viele denkbare Kombinationen von OS (+Version), Browser-Software(+Version) sehen diese Strings mitunter sehr unterschiedlich aus. Meist steht die Betriebssysteminformation an derselben Stelle, d.h. man kommt mit folgendem Logparser Beispiel (String-Funktionen) den Betriebsystem auf die Spur:



logparser -i:w3c "Select distinct TRIM(REPLACE_CHR(EXTRACT_TOKEN(cs(User-Agent), 2, ';' ), '+', ' ' )) as [OS],count(*) as [Count] into c:\temp\logfiles\os.csv from c:\temp\logfiles\combined.log group by [OS] order by [Count] DESC" -o:CSV


 


Obiges Logparser Beispiel erzeugt eine CSV-Datei aus einem W3C Webserver Log welche das OS und die Anzahl der http-Anfragen enthält:



OS,Count


Windows NT 6.1,250789


Windows 98),1063


Linux i686,403


 


Darüber wird nochmals eine Query gefahren welche über die CASE Funktion die Vielzahl der möglichen Betriebssystem Strings noch weiter kategorisiert und über die Kategorien einen Summe bildet:



logparser "Select CASE SUBSTR( [OS],0, 10) when 'Windows NT' then 'Windows' when 'Intel Mac ' then 'Mac' when 'Linux x86_' then 'Linux' when 'Linux i686' then 'Linux' else 'other' end as [OSS],Sum([Count]) As[SUM] from  c:\temp\logfiles\os.csv group by [OSS] order by [SUM] DESC"


 


Ergebnis:



System  SUM    Percent


------- ------ ---------


Windows 500475 96.624443


other   14596  2.817984


Mac     2352   0.454090


Linux   536    0.103483

Comments (0)

Skip to main content