一致する条件などを実行するスクリプトaccess_log
にログをリンクせずにファイル内のノイズエントリを維持する簡単な方法はありますか?grep -v
Apache 統計を監視しますcollectd
が、結果として次のメッセージが表示されます。
157.98.65.xxx - - [23/Apr/2014:09:46:32 -0400] "GET /server-status/?auto HTTP/1.1" 200 439 "-" "collectd/4.10.9"
157.98.65.xxx - - [23/Apr/2014:09:46:32 -0400] "GET /server-status/?auto HTTP/1.1" 200 439 "-" "collectd/4.10.9"
Apacheログに対して分析を実行すると、分析を実行したい理由と実際には関係のないものが得られます(sysadmin監視による活動は気にしません)。
答え1
ログ定義でおよびを組み合わせることができますSetEnvIf
。env=
Apache のマニュアルでは、ここで引用した「条件付きロギング」について説明します。
ステータスログ
クライアント要求の特性によっては、アクセスログから特定のエントリを除外するのが便利な場合があります。これは環境変数の助けを借りて簡単に行うことができます。まず、要求が特定の条件を満たすことを示すために環境変数を設定する必要があります。これは通常を通して行われます
SetEnvIf
。次に、env=
ディレクティブの句をCustomLog
使用して、環境変数が設定されている要求を含めるか除外します。いくつかの例:
# Mark requests from the loop-back interface
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
# Mark requests for the robots.txt file
SetEnvIf Request_URI "^/robots\.txt$" dontlog
# Log what remains
CustomLog logs/access_log common env=!dontlog
それは覆うこのセクションのマニュアルの内容。
あなたはこのようなものを見つけるでしょう(テストされていません)
SetEnvIf Remote_Addr "157\.98\.65\.xxx" dontlog
または
SetEnvIf User-Agent "collectd/4\.10\.9" dontlog