BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Apache Logdateien auf der Kommandozeile auswerten

Mit Hilfe von snowlog können Zugriffslogdateien des Apache Webservers auf der Kommandozeile ausgewertet werden. Im FreeBSD Portbaum findet man snowlog unter sysutils/snowlog:

# cd /usr/ports/sysutils/snowlog && make install clean

Damit eine Logdatei ausgewertet werden kann, muss zuerst in der httpd.conf ein neues Logformat definiert und eine zusätzliche Logdatei konfiguriert werden. Für eine Standard-Apache 2 Konfiguration fügt man folgende zwei Zeilen zum Beispiel in eine vhost Konfiguration in /usr/local/etc/apache2/httpd.conf ein:

LogFormat "%a\t%l\t%u\t%{%s}t\t%r\t%>s\t%X\t%{Content-Type}o\t%b\t%{Referer}i\t%{User-Agent}i\t%V\t%{LogHint}e" parsable
CustomLog /var/log/httpd-access-parsable-vhost.log  parsable

Danach muss die Konfiguration neu eingelesen werden:

# /usr/local/etc/rc.d/apache2 configtest
Performing sanity check on apache2 configuration:
Syntax OK
# /usr/local/etc/rc.d/apache2 graceful

Mit der -f Option kann snowlog die Logdatei übergeben werden. Die in der Logdatei enthaltenen Anfragen werden nun nach IP-Adresse sortiert. Mit der Pfeil nach unten und der Pfeil nach oben Taste kann durch die einzelnen Anfragen navigiert werden. Dabei werden im unteren Teil des Terminals verschiedene Informationen zur Anfrage angezeigt:

# snowlog -f /var/log/httpd-access-parsable-vhost.log
* Snowlog 1.1.1
 xx.xx.102.187  -                                                                                                                      
   /                                                                                                                                   304
   /files/images/blog/kde4.png                                                                                                         200
   /                                                                                                                                   200
   /links/                                                                                                                             200
   /themes/2-cols/buttons/rss.png                                                                                                      200
   /themes/chrueterng/buttons/rss.png                                                                                                  200
   /files/images/chrueterteeBSD_hellgruen.png                                                                                          200
   /links/maintainer/                                                                                                                  200
   /freebsd/                                                                                                                           200
 xx.xx.144.157   http://www.google.com/reader/view/
   /files/images/blog/kde4_thumb.png                                                                                                   200
 xx.xx.231.88   Google: freebsd dbus_enable xorg 2009
   /blog/archive/2009/01/25/tastaturlayout-nach-aktualisieren-des-xorg-servers-auf-1-5-3-konfiguieren.html                             200
   /themes/chrueterng/css/mobile.css                                                                                                   200
   /themes/chrueterng/css/main_chrueter.css                                                                                            200
   /favicon.ico                                                                                                                        200
   //themes/chrueterng/buttons/freebsd.png                                                                                             200
   //themes/chrueterng/buttons/chruetertee.png                                                                                         200
   //themes/chrueterng/buttons/rss.png                                                                                                 200
   /themes/chrueterng/buttons/comments.png                                                                                             200
   /files/images/logo.jpg                                                                                                              200
   //themes/chrueterng/buttons/xhtml10.png                                                                                             200
   /dynimages/gravatar/5a3fde99fe127a44bec6d05cb9190975?gravatar_id=5edbb08fd0cd2ea894f67f801725b4c6&border=aaaaaa&rating=X&size=40    200
   /dynimages/gravatar/2b2e73a0b373fd724b7d9d726b4f052f?gravatar_id=a66a582a1fcacd1032b43ad670088e24&border=aaaaaa&rating=X&size=40    200
   /blog/freebsd/                                                                                                                      200
   /files/images/blog/kde4_thumb.png                                                                                                   200
   /blog/archive/2009/01/25/tastaturlayout-nach-aktualisieren-des-xorg-servers-auf-1-5-3-konfiguieren.html                             304
----------------------------------------------------------------------------------------------------------------------------------------------
 Line 423/646
 GET     /blog/archive/2009/01/25/tastaturlayout-nach-aktualisieren-des-xorg-servers-auf-1-5-3-konfiguieren.html                       200
 Sat Feb  7 16:20:09 2009                                                                                                  text/html, 5 KB
 Firefox/3.0.6 (Windows)
 www.chruetertee.ch
 http://www.google.de/search?hl=de&client=firefox-a&rls=org.mozilla%3Aen-GB%3Aofficial&hs=gs9&q=freebsd+dbus_enable+xorg+2009&btnG=Suche&meta=
----------------------------------------------------------------------------------------------------------------------------------------------
 557 requests from 89 hosts (11.16 MB). (H)elp.   

In der Datei ~/.snowlog/filters können verschiedene Filter definiert werden. Der Name des Filters wird dabei in eckigen Klammern angegeben. Folgendes Beispiel definiert einen Filter, der alle Anfragen bis auf Anfragen von XML-Dateien anzeigt und einen weiteren Filter, der alle Anfragen anzeigt, welche den HTTP-Statuscode 404 hatten. Drückt man nun in snowlog die Taste f, werden alle Filter angezeigt. Durch Auswählen der entsprechenden Filternummer wird der Filter angewendet:

[without RSS feeds]
request     !xml

[404]
httpstatus  =404

Befinden sich zum Beispiel Refferer-Spamer unter den Anfragen, navigiert man mit den Pfeiltasten zu der entsprechenden Anfrage und drückt die s-Taste. Dadurch werden alle Anfragen der Absender-IP-Adresse und des Refferers nicht mehr angezeigt. Durch das Drücken der q Taste verlässt man snowlog wieder. Mehr Informationen zu snowlog und den Filtermöglichkeiten findet man in der Manpage snowlog(1).

 Permalink

KDE 4.2 auf FreeBSD

Seit kurzem ist KDE 4.2 als Testversion für FreeBSD vorhanden. Zum Installieren von KDE 4.2 muss zuerst der Portbaum, zum Beispiel mit portsnap, auf den neusten Stand gebracht werden:

# portsnap fetch update

Da KDE 4.2 noch nicht im offiziellen Portbaum vorhanden ist, muss es mit Subversion heruntergeladen werden. Dazu muss ggf. zuerst Subversion installiert werden:

# cd /usr/ports/devel/subversion-freebsd && make install clean

Nun können die benötigten Dateien mit Subversion in ein Verzeichnis, in diesem Fall /usr/area51, heruntergeladen werden:

# svn co https://kf.athame.co.uk/kde-freebsd/trunk/area51/ /usr/area51

Anschliessend können die Ports, welche für KDE 4.2 benötigt werden, z.B. mit UnionFS über den offiziellen Portbaum gelegt werden:

# mount -t unionfs /usr/area51 /usr/ports
# mount
/dev/ad4s3a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad4s3d on /tmp (ufs, local, soft-updates)
/dev/ad4s3f on /usr (ufs, local, soft-updates)
/dev/ad4s3e on /var (ufs, local, soft-updates)
<above>:/usr/area51 on /usr/ports (unionfs, local)

Alternativ dazu kann auch das kdemerge-Script verwendet werden, welches sich unter /usr/area51/Tools/scripts/kdemerge befindet. Im Skript müssen zuerst die KDEDIR und PORTSDIR-Variablen angepasst werden:

# Path to the KDE ports without the trailing /. 
KDEDIR="/usr/area51"  
# Path to the official ports collection.
PORTSDIR="/usr/ports"

Nun können die für KDE 4.2 benötigten Ports mit dem Portbaum verbunden werden:

# /usr/are51/Tools/scripts/kdemerge
===> Merging files from area51 to the ports directory
/usr/area51 --> /usr/ports

You can now run "portupgrade -a" or "portmaster -a" to upgrade your ports
tree. Please read /usr/home/beat/ports/UPDATING-area51 before you run
portupgrade or portmaster. We suggest that you backup your ~/.kde4
configuration dir and start with a clean config.

Danach kann KDE 4.2 über den Portbaum installiert werden:

# cd /usr/ports/x11/kde4
# make install clean

Möchte man eine frühere Version von KDE 4 aktualisieren, so sollte man zuerst die Datei /ust/ports/UPDATING-area51 lesen. Anschliessend können die Ports gemäss der Anleitung in /ust/ports/UPDATING-area51 aktualisiert werden.

Verwendet man UnionFS kann es sein, dass Patches aus den aktuellen, im Portbaum vorhandenen KDE Ports noch sichtbar sind, welche mit KDE 4.2 nicht mehr benötigt werden:

===>   Returning to build of kdebase-runtime-4.2.0
===>   kdebase-runtime-4.2.0 depends on file: /usr/local/bin/cmake - found
===>   kdebase-runtime-4.2.0 depends on shared library: intl - found
===>   kdebase-runtime-4.2.0 depends on shared library: kimproxy.5 - not found
===>    Verifying install for kimproxy.5 in /usr/ports/x11/kdelibs4
===>  Vulnerability check disabled, database not found
=> kdelibs-4.2.0.tar.bz2 doesn't seem to exist in /usr/ports/distfiles/KDE.
=> Attempting to fetch from http://mirrors.isc.org/pub/kde/stable/4.2.0/src/.
kdelibs-4.2.0.tar.bz2                         100% of 9797 kB  369 kBps 00m00s
===>  Extracting for kdelibs-4.2.0
=> MD5 Checksum OK for KDE/kdelibs-4.2.0.tar.bz2.
=> SHA256 Checksum OK for KDE/kdelibs-4.2.0.tar.bz2.
/bin/mkdir -p /usr/ports/x11/kdelibs4/work/kdelibs-4.2.0/build
===>  Patching for kdelibs-4.2.0
===>  Applying FreeBSD patches for kdelibs-4.2.0
1 out of 3 hunks failed--saving rejects to
../cmake/modules/FindKDE4Internal.cmake.rej
=> Patch patch-FindKDE4Internal.cmake failed to apply cleanly.
*** Error code 1

Stop in /usr/ports/x11/kdelibs4.
*** Error code 1

Stop in /usr/ports/x11/kdebase4-runtime.
*** Error code 1

Stop in /usr/ports/x11/kdebase4-runtime.
*** Error code 1

Stop in /usr/area51/x11/kde4.
*** Error code 1

Stop in /usr/area51/x11/kde4.

In solch einem Fall können die vorhandenen Patches gelöscht und nochmals mit SVN heruntergeladen werden:

# cd /usr/ports/x11/kdelibs4/files/
# rm patch-*
# svn up

Danach kann die Installation erneut gestartet werden:

# cd /usr/ports/x11/kde4
# make clean install clean

Sind alle benötigten Ports installiert, kann KDM (KDE Login Manager) in der Datei /etc/ttys eingetragen werden:

#ttyv8  "/usr/local/bin/xdm -nodaemon"  xterm   on  secure
ttyv8   "/usr/local/kde4/bin/kdm -nodaemon"     xterm on secure

Falls noch nicht vorhanden müssen D-Bus und der HAL-Daemon in der Datei /ect/rc.conf aktiviert werden:

dbus_enable="YES"
hald_enable="YES"

Danach wird bei einem Systemstart automatisch KDM für die Anmeldung gestartet und KDE 4.2 kann verwendet werden.

KDE4

Folgende Punkte sollten bei der Verwendung von KDE 4.2 beachtet werden:

  •  Der FreeBSD Support für Systeminformationen in Plasma fehlt zur Zeit noch, das heisst, es werden keine Informationen zum Prozessor und den Temperaturen angezeigt.
  •  Die Beschriftung der Tabs in der Konsole fehlen und müssen manuell gesetzt werden.
  •  In ksysguard wird die Prozessoranzeige nicht richtig angezeigt. Das ist jedoch abhängig vom Systemboard.
  •  Dem FAM-Subsystem fehlt zur Zeit noch die FreeBSD-Unterstützung und ist deshalb abgeschaltet, dadurch kann es hier teilweise zu Geschwindigkeitseinbussen kommen.

Damit KDE 4.2 möglichst fehlerfrei in den Portbaum gebracht werden kann, werden weiterhin Tester gesucht. Probleme und Erfolgsmeldungen können an die Mailingliste kde-freebsd gesendet werden.

Vielen Dank an Martin für seine Hilfe beim Erstellen dieses Artikels. 

Comments (5)  Permalink
1-2/2