Apache access log über syslog

Der Apache Webserver schreibt seine Log Informationen standardmäßig in eine lokale Datei. Auf SuSE oder SLES Systemen ist dass dann meist /var/log/apache2/access_log. Wenn man nicht nur einen Webserver hat, ist es sinnvoll diese Logs an einer zentralen Stelle (z.B. auf einem eigenen Logging Server) zusammenzuführen. Das Mittel der Wahl ist dann syslog oder das weit verbreitete syslog-ng.

Doch wie schafft man es jetzt, dass man:

a) seine lokale Logdatei behält und
b) syslog-ng als zusätzliches Ziel für die Loginformationen definiert

Wie es grundsätzlich funktioniert beschreibt dieser O’Reilly Artikel. Ich habe allerdings das Perlskript durch folgendes einfacheres Shell Skript (/usr/local/bin/apacheToSyslog.sh) ersetzt.

vi /usr/local/bin/apacheToSyslog.sh
   #!/bin/bash

   while read x
   do
      echo $x
   done | logger -p local6.info

chmod 755 /usr/local/bin/apacheToSyslog.sh

Dieses Skript wird bei SuSE oder SLES in der distributionseigenen Konfigurationsdatei eingetragen (|/usr/local/bin/apacheToSyslog.sh combined) und durch den reload des Apaches aktiviert.

vi /etc/sysconfig/apache2
   APACHE_ACCESS_LOG="/var/log/apache2/access_log combined, |/usr/local/bin/apacheToSyslog.sh combined"

rcapache2 reload

# Kontrolle
less /etc/apache2/sysconfig.d/global.conf
   ...
   CustomLog /var/log/apache2/access_log combined
   CustomLog |/usr/local/bin/apacheToSyslog.sh combined

Fehlt noch die syslog-ng Konfiguration:

vi /etc/syslog-ng/syslog-ng.conf
   filter f_logger { level(info) and facility(local6);};
   destination d_logger{ udp("<ziel_server>" port(514)); };
   destination d_logfile{ file("/var/log/apacheToSyslog.log"); };
   log { source(src);filter(f_logger); destination(d_logger); };
   log { source(src);filter(f_logger); destination(d_logfile); };

# aktivieren der Konfiguration
killall syslog-ng
/sbin/syslog-ng

Zeile 4 und 6 sind optional und nur notwendig, wenn zusätzlich zur Übertragung der Daten an den <ziel_server> auch noch lokal eine Logdatei geschrieben werden soll.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: