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


13

特にmod_authnz_ldapや他のmod_auth *モジュールを使用して、Webサーバーで認証と承認の問題をデバッグしたい。

そのLogLevel debugため、グローバルに、または単一のVirtualHostに対して、Apache構成を設定しました。これにより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|

回答:


16

私は自分の質問、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 Server> Documentation> Version 2.2> Modules "LogLevel Directive"のマニュアルには、このオプションは表示されていません。現在、唯一のオプションは、問題のある行を「grep -v」することです。

Apache 2.4(執筆時点で提案):

これはApache 2.4に含まれます。トランク内のApacheドキュメント(2.3)は現在次のように述べています。

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

そして:

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

LogLevel info ssl:warn
LogLevel info mod_ssl.c:warn
LogLevel info ssl_module:warn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.