Zugriffsreporting für Blogengine.net mit Logparser

Ich vertrete die These, dass suchmaschinengenerierter Traffic im Abnehmen begriffen ist. Also muss Google sein Geschäftsmodell auf den Prüfstand stellen. Das tun sie auch, indem sie z.B. Werkzeuge wie Google Analyze zur Verfügung stellen. Damit übermittelt der Benutzer nicht nur Suchdaten, sondern auch Telemetrie-Infos zur Nutzung von Websites. Auch andere Dienste wie URL-Shortener sind Datenkraken, wie auch Scott Hanselman in seinem Blog anmerkt. Die Alternative, einen eigenen Dienst mit Piwik aufzusetzen, hilft mehr Anonymität ins Web zu bringen. Falls der Benutzer im Browser dies unterbindet, bleibt nur noch der Blick in die Logfiles des Webservers. In unserem Fall des Internet Information Servers (kurz IIS), der von Microsoft gratis mitgeliefert wird.

Für die Logfile Analyse hat Microsoft vor vielen Jahren den Logparser entwickelt, einen sehr schnellen kostenlosen Parser. Im Stil von SQL-Abfragen kann man damit durchaus forensische Analysen vornehmen.

Die Frage lautet konkret: wie viele User kommen durch eine Suchmaschine auf einen Blogeintrag, pro Monat.

In diesem Blog erkennt man einen Blogeintrag an der Sequenz /blog/ in der URL. Damit fallen alle direkten Aufrufe von blog.ppedv.de aus der Analyse heraus. In einem Google-Ergebnisbild wird ein Suchender (ich liebe das Wort) auch dank der Darstellung vor allem auf den direkten Link klicken.

Stellt sich die  Frage, wie man den Traffic der Spider herausfiltert. Bisher hatten wir im Logparser die Namen der Bots in die Where-Bedingung eingeschlossen.  Da man niemals weiß, was man nicht weiß, können auch unbekannte Spider agieren. Woran erkennt man also den Crawler einer Suchmaschine? Der sollte die Datei Robots.txt abrufen. Ein starkes Indiz für die Beweiskette. Da die IP-Adressen der Crawler endlich und in einem gewissen Maße auch fix sind kann man sich so eine Liste der Adressen anlegen.

   1:  logparser  "SELECT c-ip, cs(User-Agent) AS [UserAgent], COUNT(*) AS [summe]     
   2:  , MIN(TO_DATE(TO_LOCALTIME(TO_TIMESTAMP(date, time)))) AS FirstDate     
   3:  , MAX(TO_DATE(TO_LOCALTIME(TO_TIMESTAMP(date, time)))) AS LastDate 
   4:  INTO C:\LOGPARSER\LOG_RESULT\Robots.log 
   5:  FROM C:\inetpub\logs\LogFiles\W3SVC1\*.log 
   6:  WHERE cs-uri-stem = '/robots.txt' GROUP BY c-ip, UserAgent 
   7:  ORDER BY c-ip, UserAgent " -i:iisw3c -o:CSV

 

Im nächsten Schritt werden die Datensätze aus dem Logfile per Monat unter Ausschluss der IP-Adressen der Suchmaschinen kumuliert.

   1:  logparser  "select  TO_STRING(date, 'MMMM, yyyy') AS Month,count(c-ip) as blog
   2:   INTO C:\LOGPARSER\LOG_RESULT\zugriffe3d_blog.gif 
   3:  from c:\inetpub\logs\LogFiles\W3SVC1\*.log  
   4:  WHERE cs-uri-stem LIKE '%%post.aspx%%' 
   5:  and  c-ip not in (select TO_STRING(c-ip) 
   6:  from  C:\LOGPARSER\LOG_RESULT\Robots.log) 
   7:  group by Month " 
   8:  -o:chart -groupSize:1024x768 -i:iisw3c -chartType:ColumnStacked -view:off

 

Für alle Interessierten hier die Zugriffszahlen als 2D-Balkendiagramm.

image

Kommentare sind geschlossen