Apache: configurare "Debug LogLevel" solo per determinati moduli?


13

Voglio eseguire il debug di alcuni problemi di autenticazione e autorizzazione sul mio server web, in particolare con mod_authnz_ldap e altri moduli mod_auth *.

Quindi ho impostato LogLevel debugla configurazione di Apache, a livello globale o per un singolo VirtualHost. Questo mi fornisce informazioni utili da mod_authnz_ldap, ma emette anche un sacco di rumore dai moduli SSL. Vedi sotto per un esempio.

C'è un modo per ridurre LogLevel per ssl_engine *, mantenendo comunque il livello di Google per mod_authnz_ldap?

Sì, potrei escludere le righe usando qualcosa di simile grep -v ssl_engine logfile, ma voglio anche escludere questi dati extra da alcuni altri strumenti di analisi di syslog. Preferirei ridurre la registrazione dalla fonte, invece di escluderla a destinazione.

[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|

Risposte:


16

Sto rispondendo alla mia domanda, Jeopardy Style.

Apache 2.3

Questo è possibile in Apache 2.3.

Apache> Server HTTP> Documentazione> Versione 2.4> La registrazione per modulo dice:

Registrazione per modulo

La direttiva LogLevel consente di specificare un livello di gravità del registro in base al modulo. In questo modo, se si sta risolvendo un problema con un solo modulo particolare, è possibile aumentare il volume di registrazione senza ottenere anche i dettagli di altri moduli che non ti interessano. Ciò è particolarmente utile per moduli come mod_proxy o mod_rewrite dove vuoi sapere i dettagli di ciò che sta cercando di fare.

Fallo specificando il nome del modulo nella direttiva LogLevel:

LogLevel info rewrite:trace5

Questo imposta LogLevel principale su info, ma lo trasforma in trace5 per mod_rewrite.

Questo sostituisce le direttive di registrazione per modulo, come RewriteLog, che erano presenti nelle versioni precedenti del server.

La panoramica delle nuove funzionalità di Apache HTTP Server 2.4 dice:

Configurazione LogLevel per modulo e per directory Ora LogLevel può essere configurato per modulo e per directory. Nuovi livelli da trace1 a trace8 sono stati aggiunti sopra il livello del registro di debug.

Vedi anche la discussione sulla mailing list di Apache-dev .

Apache 2.2 e precedenti:

No, questo non è attualmente possibile in Apache 2.2. Il manuale su Server HTTP> Documentazione> Versione 2.2> Moduli "Direttiva LogLevel" non mostra questa opzione. Al momento l'unica opzione è "grep -v" per le linee offensive.

Apache 2.4 (proposto al momento della scrittura):

Questo sarà incluso con Apache 2.4. I documenti Apache nel trunk (2.3) attualmente dicono:

Compatibilità: la configurazione per modulo e per directory è disponibile in Apache HTTP Server 2.3.6 e versioni successive

E:

Se si specifica un livello senza un nome di modulo, il livello di tutti i moduli verrà ripristinato a quel livello. La specifica di un livello con un nome di modulo imposterà il livello solo per quel modulo. È possibile utilizzare il nome del file sorgente del modulo, l'identificatore del modulo o l'identificatore del modulo con il _module finale omesso come specifica del modulo. Ciò significa che le seguenti tre specifiche sono equivalenti:

LogLevel info ssl:warn
LogLevel info mod_ssl.c:warn
LogLevel info ssl_module:warn
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.