web-dev-qa-db-ja.com

Apache:特定のモジュールに対してのみ「LogLevel debug」を構成しますか?

特にmod_authnz_ldapおよびその他のmod_auth *モジュールを使用して、Webサーバーの認証と承認の問題をデバッグしたいと思います。

そのため、Apache構成でLogLevel debugをグローバルに、または単一のVirtualHostに設定します。これにより、mod_authnz_ldapからの有用な情報が得られますが、SSLモジュールから大量のノイズが発生します。例については、以下を参照してください。

Mod_authnz_ldapのログレベルを維持しながら、ssl_engine *のLogLevelを下げる方法はありますか?

はい、grep -v ssl_engine logfileのようなものを使用して行を除外することもできますが、他のいくつかのsyslog解析ツールからこの余分なデータを除外したいです。宛先でログを除外するのではなく、ソースからのログを減らしたいと思います。

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

私は自分の質問、Jeopardy Styleに答えています。

Apache 2.3

これはApache 2.3で可能です。

Apache> HTTPサーバー>ドキュメンテーション>バージョン2.4>モジュールごとのロギング はこう言います:

モジュールごとのロギング

LogLevelディレクティブを使用すると、モジュールごとにログの重大度レベルを指定できます。このようにして、特定の1つのモジュールのみに関する問題をトラブルシューティングしている場合、関心のない他のモジュールの詳細も取得せずに、そのログ量を増やすことができます。これは、mod_proxyやmod_rewriteなどのモジュールで特に役立ちます。それが何をしようとしているのかについての詳細を知りたい場所。

これを行うには、LogLevelディレクティブでモジュールの名前を指定します。

LogLevel info rewrite:trace5

これにより、メインのLogLevelがinfoに設定されますが、mod_rewriteの場合はtrace5になります。

これは、以前のバージョンのサーバーに存在していたRewriteLogなどのモジュールごとのロギングディレクティブに代わるものです。

Apache HTTPサーバー2.4の新機能の概要 言う:

モジュールごとおよびディレクトリーごとのLogLevel構成LogLevelは、モジュールごとおよびディレクトリーごとに構成できるようになりました。新しいレベルtrace1〜trace8がデバッグログレベルの上に追加されました。

Apache-dev メーリングリストの議論も参照してください。

Apache 2.2以前:

いいえ、これは現在Apache 2.2では可能ではありません。 HTTPサーバー>ドキュメント>バージョン2.2>モジュール "LogLevel Directive" にあるマニュアルには、このオプションは表示されません。現在の唯一のオプションは、問題のある行を「grep -v」することです。

Apache 2.4(執筆時に提案):

これはApache 2.4に含まれる予定です。 トランク(2.3) のApacheドキュメントは現在次のように言っています:

互換性:モジュールごとおよびディレクトリごとの構成は、Apache HTTPサーバー2.3.6以降で使用できます。

そして:

モジュール名なしでレベルを指定すると、すべてのモジュールのレベルがそのレベルにリセットされます。モジュール名でレベルを指定すると、そのモジュールのみのレベルが設定されます。モジュールのソースファイル名、モジュール識別子、またはモジュールの指定として末尾の_moduleを省略したモジュール識別子を使用できます。つまり、次の3つの仕様は同等です。

LogLevel info ssl:warn
LogLevel info mod_ssl.c:warn
LogLevel info ssl_module:warn
16