Apache: Konfigurieren Sie "LogLevel-Debug" nur für bestimmte Module?

13

Ich möchte einige Authentifizierungs- und Autorisierungsprobleme auf meinem Webserver beheben, insbesondere bei mod_authnz_ldap und anderen mod_auth * -Modulen.

Also habe ich LogLevel debugdie Apache-Konfiguration entweder global oder für einen einzelnen VirtualHost festgelegt. Dies liefert mir nützliche Informationen von mod_authnz_ldap, spuckt aber auch eine Menge Rauschen von den SSL-Modulen aus. Unten finden Sie ein Beispiel.

Gibt es eine Möglichkeit, den LogLevel für ssl_engine * zu reduzieren, während der loglevel für mod_authnz_ldap beibehalten wird?

Ja, ich könnte die Zeilen mit so etwas wie ausschließen grep -v ssl_engine logfile, aber ich möchte diese zusätzlichen Daten auch von einigen anderen Syslog-Analyse-Tools ausschließen. Ich würde eher die Protokollierung von der Quelle reduzieren, anstatt sie am Ziel auszuschließen.

[Tue Jul 06 16:55:31 2010] [debug] ssl_engine_io.c(1830): | 0100: 12 23 e7 0f 45 1f 1f d3-ed 12 f8 12 1f a9 90 85  .+..(........... |
[Tue Jul 06 16:55:31 2010] [debug] mod_authnz_ldap.c(474): [client 10.10.10.123] [96991] auth_ldap authenticate: accepting joe
[Tue Jul 06 16:55:31 2010] [debug] mod_authnz_ldap.c(730): [client 10.10.10.123] [96991] auth_ldap authorise: require group: authorisation successful (attribute memberUid) [Comparison true (cached)][Compare True]
[Tue Jul 06 17:02:17 2010] [debug] ssl_engine_io.c(1830): | 0023: 23 ff 29 5a 4b bd 4c e6-bc 36 22 9c c3 22 c2 4b  ..)ZK.L..6u....K |
[Tue Jul 06 17:02:17 2010] [debug] ssl_engine_io.c(1830): | 0023: 23 ff 29 5a 4b bd 4c e6-bc 22 75 9c c3 b6 22 4b  ..)blahblah|
Stefan Lasiewski
quelle

Antworten:

16

Ich beantworte meine eigene Frage, Jeopardy Style.

Apache 2.3

Dies ist in Apache 2.3 möglich.

Apache> HTTP Server> Dokumentation> Version 2.4> Die Protokollierung pro Modul lautet:

Protokollierung pro Modul

Mit der LogLevel-Direktive können Sie einen Protokollschweregrad auf Modulbasis angeben. Auf diese Weise können Sie, wenn Sie ein Problem mit nur einem bestimmten Modul beheben, dessen Protokollierungsvolumen erhöhen, ohne auch die Details anderer Module zu erhalten, an denen Sie nicht interessiert sind. Dies ist besonders nützlich für Module wie mod_proxy oder mod_rewrite Wo möchten Sie Details darüber wissen, was es zu tun versucht?

Geben Sie dazu den Namen des Moduls in Ihrer LogLevel-Direktive an:

LogLevel info rewrite:trace5

Dadurch wird der Haupt-LogLevel auf info gesetzt, für mod_rewrite jedoch auf trace5.

Dies ersetzt die modulspezifischen Protokollierungsanweisungen, z. B. RewriteLog, die in früheren Versionen des Servers vorhanden waren.

Übersicht über die neuen Funktionen in Apache HTTP Server 2.4 :

Konfiguration pro Modul und pro Verzeichnis LogLevel Der LogLevel kann jetzt pro Modul und pro Verzeichnis konfiguriert werden. Die neuen Ebenen trace1 bis trace8 wurden oberhalb der Debug-Protokollebene hinzugefügt.

Siehe auch die Diskussion auf der Apache-dev Mailingliste.

Apache 2.2 und früher:

Nein, dies ist derzeit in Apache 2.2 nicht möglich. Das Handbuch unter HTTP-Server> Dokumentation> Version 2.2> Module "LogLevel-Direktive" zeigt diese Option nicht an. Die einzige Option ist derzeit, die beleidigenden Zeilen mit "grep -v" zu versehen.

Apache 2.4 (zum Zeitpunkt des Schreibens vorgeschlagen):

Dies wird in Apache 2.4 enthalten sein. Die Apache-Dokumente im Trunk (2.3) sagen derzeit:

Kompatibilität: Die Konfiguration pro Modul und pro Verzeichnis ist in Apache HTTP Server 2.3.6 und höher verfügbar

Und:

Wenn Sie eine Ebene ohne Modulnamen angeben, wird die Ebene für alle Module auf diese Ebene zurückgesetzt. Wenn Sie eine Ebene mit einem Modulnamen angeben, wird die Ebene nur für dieses Modul festgelegt. Es ist möglich, den Namen der Modulquelldatei, die Modulkennung oder die Modulkennung zu verwenden, wobei das nachfolgende _Modul als Modulspezifikation weggelassen wird. Dies bedeutet, dass die folgenden drei Spezifikationen äquivalent sind:

LogLevel info ssl:warn
LogLevel info mod_ssl.c:warn
LogLevel info ssl_module:warn
Stefan Lasiewski
quelle