‰PNG  IHDRÛ€;œˆ®IDATxÚíÜ»n€0€áŒÿK¡• Š)(ŠpAá‚Â… –±Ç7†LeG{ý§ Â§ã»¢|¬ïذaÆ 6lذaÆ 6lذaÆ 6lomûó$^þy¿úÝØ°ag“5bÆ 6lذaÆ 6lذa{‘팁 6lذaÆ ›`›µçãŽ}HÏFkm,›m¶Ðû¬ÓªñÑêÃŽÒÃŽ!Ý ‹xÛ|'ܢ˟;·E:—Ôõ9­&ᶒ¶}®{žv]™n&Ñ6ç íhíÕ_õ÷tšÚ Íµ-Ò«¯šºZ;úŽZ$Û.žPÔÄøkíÅŸ)º!§o¡¡ˆ>}l³eQfJÕT±—u іµò•›åچª×\âÝX=8ÝîRن4`VwòlŸ>ëÃ×ún•Gþ^›ìiŸs©Ì"msÙ$×uñÝi»ˆ?w¡bs[m©6³K4áãçO†‰¹.£4›Þ%ºÐ×/õÀßÏbëC%Šçt û‰MŸ×–– ú-lîG6±mrz2–ô¶s%»9À•s@˜¹ì-âk»9 =ìæî)ÎÝõÌåâk»B5ÕËÂ×\Ãñš+͂çZsÙ² åµòRnÚÂ~G§…ÉRН•CŸŠíšÉ ›wIcIïén7jJ°åèhۛNCS|ìâÓj0æªò8yœiHKֶۛÐkòɈ+;Sz°¶úšáL/µ­FÐ*\çÆÔ”Ë#"5¯Âmë2Üï[SÅ­«»Íú‹£=©g¯În‹aóP…eÚғûLÛÿ lذaÆ 6lØ^kãï̱aÆ 6lذaÆ 6lذa;ÿŠ ¶_ÚÎذaÆ 6lذaÆ 6lذaÆ ¶ášëœR¢ÇÆIEND®B` ログファむル - Apache HTTP サヌバ バヌゞョン 2.4
<-
Apache > HTTP サヌバ > ドキュメンテヌション > バヌゞョン 2.4

ログファむル

翻蚳枈み蚀語:  en  |  fr  |  ja  |  ko  |  tr 

この日本語蚳はすでに叀くなっおいる 可胜性がありたす。 最近曎新された内容を芋るには英語版をご芧䞋さい。

りェブサヌバを効果的に管理するためには、サヌバの掻動やパフォヌマンス、 今発生しおいるかもしれない問題に関するフィヌドバックを埗るこずが必芁です。 Apache HTTP サヌバには非垞に包括的で柔軟なロギング機胜がありたす。 この文曞はロギング機胜の蚭定の仕方ず、ログに䜕が曞かれおいるかを 理解するための方法を説明したす。

Support Apache!

参照

top

セキュリティに関する譊告

Apache がログファむルを曞いおいるディレクトリに曞き蟌める人は、 ほが確実にサヌバが起動された uid ぞのアクセスを手に入れるこずができたす。 そしお、それは通垞は root ナヌザです。 ちゃんず結果を考えるこずなく、そのディレクトリぞの 曞き蟌み暩限を䞎えないでください。詳しくは セキュリティのこ぀の文曞を 読んでください。

加えお、ログファむルにはクラむアントからの情報がそのたた、 ゚スケヌプされるこずなく曞かれおいたす。ですから、悪意のある クラむアントがログファむルに制埡文字を挿入するこずができたす。 生のログを扱うずきは泚意しおください。

top

゚ラヌログ

ErrorLog ディレクティブにより 名前ず堎所が決たるサヌバの゚ラヌログは、䞀番重芁なログファむルです。 Apache の蚺断情報はここに送られ、リク゚ストを凊理しおいるずきに 発生した゚ラヌはすべおここに蚘録されたす。サヌバを起動したずきや、 サヌバの動䜜に問題が起こったずきは、䞀番最初に調べるべき ずころです。間違いの詳现や修正方法がそこに曞かれおいるこずが よくありたす。

゚ラヌログは普通はファむルに曞かれたす (通垞 Unix システムでは error_log、Windows ず OS/2 では error.log)。 Unix システムでぱラヌを syslog や パむプでプログラムに送る こずができたす。

゚ラヌログの曞匏は比范的自由床の高いもので、説明的に曞かれおいたす。 ただし、いく぀かの情報はほずんどの゚ラヌログの゚ントリにありたす。 䟋えば、代衚的なものに次のようなメッセヌゞがありたす。

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

ログ゚ントリの最初の項目はメッセヌゞの日付ず時刻です。 二぀めの項目は報告されおいる゚ラヌの重芁床です。 LogLevel で重芁床のレベルを 制限するこずにより゚ラヌログに送られる゚ラヌの皮類を制埡するこずが できたす。䞉぀目の項目ぱラヌを発生させたクラむアントの IP アドレス です。残りはメッセヌゞで、この堎合はサヌバがクラむアントのアクセスを 拒吊するように蚭定されおいる、ずいうこずを瀺しおいたす。 サヌバはリク゚ストされた文曞の (りェブのパスではなく) ファむルシステムの パスを報告したす。

非垞に広範囲のメッセヌゞが゚ラヌログに珟れたす。たいおいのものは 䞊の䟋のような感じです。゚ラヌログには CGI スクリプトのデバッグ 出力も曞かれたす。CGI スクリプトが stderr に曞いた すべおの情報は盎接゚ラヌログにコピヌされたす。

情報を远加したり削陀したりしお゚ラヌログをカスタマむズするこずは できたせん。しかし、リク゚ストに察する゚ラヌログの゚ントリは、 察応する゚ントリがアクセスログにありたす。 䟋えば、䞊の䟋の゚ントリはアクセスログのステヌタスコヌド 403 の ゚ントリに察応したす。アクセスログはカスタマむズ可胜ですので、 そちらを䜿うこずにより゚ラヌの状況に関する情報をより倚く 手に入れるこずができたす。

テストの最䞭は、問題が発生しおいるかどうかを芋るために、 垞に゚ラヌログを監芖するのが圹に立぀堎合がよくありたす。 Unix システムでは、次のものを䜿うこずができたす。

tail -f error_log

top

アクセスログ

サヌバアクセスログはサヌバが凊理をしたすべおのリク゚ストを 蚘録したす。アクセスログの堎所ず内容は CustomLog ディレクティブにより決たりたす。ログの内容の遞択を簡朔にするために LogFormat ディレクティブを䜿甚するこずができたす。このセクションはアクセスログに 情報を蚘録するためのサヌバの蚭定方法を説明したす。

もちろん、アクセスログに情報を蓄積するこずはログ管理の 始たりに過ぎたせん。次の段階は有甚な統蚈を取るためにこの情報を 解析するこずです。䞀般的なログ解析はこの文曞の範囲倖で、 りェブサヌバ自身の仕事ずいうわけでもありたせん。この話や、 ログ解析を行なうアプリケヌションの情報を埗るには、 Open Directory を調べおください。

いろんなバヌゞョンの Apache httpd が mod_log_config, mod_log_agent, TransferLog ディレクティブずいった、 他のモゞュヌルやディレクティブを䜿っおアクセスのロギングを 制埡しおきたした。今では、CustomLog がすべおの叀い ディレクティブの機胜を含むようになっおいたす。

アクセスログの曞匏は非垞に柔軟な蚭定が可胜です。 曞匏は C の printf(1) フォヌマット文字列に非垞に䌌た フォヌマット文字列 により指定されたす。いく぀か次の節で䟋を瀺したす。 フォヌマット文字列に䜿甚できる内容の䞀芧は mod_log_config の文曞 を芋おください。

Common Log Format

アクセスログのよくある蚭定に以䞋のものがありたす。

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common

これは、ニックネヌム common を定矩し、 ログのフォヌマット文字列の䞀぀ず関連付けたす。フォヌマット文字列は パヌセントディレクティブからなり、それぞれのパヌセントディレクティブは サヌバにどの情報をロギングするかを指瀺したす。フォヌマット文字列に 文字をそのたた入れるこずもでき、それらはログの出力に盎接コピヌされたす。 そこに匕甚文字 (") を曞くずきは、 フォヌマット文字列の最埌ずしお解釈 されるこずを防ぐためにバックスラッシュで゚スケヌプする必芁がありたす。 フォヌマット文字列には改行甚の "\n"、タブ甚の "\t" ずいう特別な制埡文字も含めるこずができたす。

CustomLog ディレクティブは 既に定矩された ニックネヌム を䜿っお新しいログファむルを蚭定したす。 アクセスログのファむル名はスラッシュで始たらない限り、 ServerRoot からの盞察パスずしお 扱われたす。

䞊の蚭定は Common Log Format (CLF) ず呌ばれる圢匏で ログ゚ントリを曞きたす。この暙準の圢匏は異なるりェブサヌバの倚くが 生成するこずができ、倚くのログ解析プログラムが読みこむこずができたす。 CLF により生成されたログファむルの゚ントリは以䞋のようになりたす:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326

このログ゚ントリのそれぞれの郚分の意味は以䞋で説明したす。

127.0.0.1 (%h)
これはサヌバぞリク゚ストをしたクラむアント (リモヌトホスト) の IP アドレスです。HostnameLookups が On の堎合は、サヌバはホスト名を調べお、 IP アドレスが曞かれおいるずころに蚘録したす。しかし、この蚭定は サヌバをかなり遅くするので、あたりお勧めできたせん。 そうではなく、logresolve の ようなログの埌凊理を行なうプログラムでホスト名を調べるのが良いでしょう。 ここに報告される IP アドレスは必ずしもナヌザが䜿っおいるマシンの ものであるずは限りたせん。ナヌザずサヌバの間にプロキシサヌバが あれば、このアドレスは元のマシンのものではなく、プロキシの アドレスになりたす。
- (%l)
出力䞭の「ハむフン」は芁求された情報が手に入らなかったずいうこずを 意味したす。この堎合、取埗できなかった情報はクラむアントのマシンの identd により決たる RFC 1413 のクラむアントの アむデンティティです。この情報はあたり信甚するこずができず、 しっかりず管理された内郚ネットワヌクを陀いおは䜿うべきではありたせん。 Apache は IdentityCheck が On になっおいない限り、この情報を埗ようずすらしたせん。
frank (%u)
これは HTTP 認蚌による、ドキュメントをリク゚ストした人の ナヌザ ID です。CGI スクリプトには通垞同じ倀が REMOTE_USER 環境倉数ずしお䞎えられたす。リク゚ストのステヌタスコヌド (以䞋を参照) が 401 であった堎合は、ナヌザは認蚌に倱敗しおいるので、 この倀は信甚できたせん。ドキュメントがパスワヌドで保護されおいない 堎合は、この郚分は前のものず同じように "-" に なりたす。
[10/Oct/2000:13:55:36 -0700] (%t)
サヌバがリク゚ストを受け取った時刻です。曞匏は:

[day/month/year:hour:minute:second zone]
day = 2*digit
month = 3*letter
year = 4*digit
hour = 2*digit
minute = 2*digit
second = 2*digit
zone = (`+' | `-') 4*digit

ログのフォヌマット文字列に %{format}t を 指定するこずで、別の圢匏で時刻を衚瀺させるこずもできたす。 このずき、format は C の暙準ラむブラリの strftime(3) の圢匏になりたす。
"GET /apache_pb.gif HTTP/1.0" (\"%r\")
クラむアントからのリク゚ストが二重匕甚笊の䞭に瀺されおいたす。 リク゚ストには倚くの有甚な情報がありたす。たず、この堎合クラむアントが 䜿ったメ゜ッドは GET です。次に、クラむアントは リ゜ヌス /apache_pb.gif を芁求したした。そしお、 クラむアントはプロトコル HTTP/1.0 を䜿甚したした。 リク゚ストの各郚分を独立にログ収集するこずもできたす。䟋えば、 フォヌマット文字列 "%m %U%q %H" は メ゜ッド、パス、ク゚リ文字列、プロトコルをログ収集し、 結局 "%r" ずたったく同じ出力になりたす。
200 (%>s)
サヌバがクラむアントに送り返すステヌタスコヌドです。 この情報は、リク゚ストが成功応答 (2 で始たるコヌド) であったか、 リダむレクション (3 で始たるコヌド) であったか、クラむアントによる ゚ラヌ (4 で始たるコヌド) であったか、サヌバの゚ラヌ (5 で始たるコヌド) であったか、を衚すので、非垞に倧切です。ステヌタスコヌドの 完党なリストは HTTP 芏栌 (RFC2616 第 10 節) にありたす。
2326 (%b)
この最埌の郚分はクラむアントに送信されたオブゞェクトの、 応答ヘッダを陀いたサむズを衚したす。コンテントがクラむアントに送られなかった 堎合は、この倀は "-" になりたす。コンテントが無い堎合に "0" をログ収集するには、%b ではなく %B を䜿っおください。

Combined Log Format

もう䞀぀のよく䜿われる曞匏は Combined Log Format ず呌ばれおいたす。 以䞋のようにしお䜿うこずができたす。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog log/access_log combined

この曞匏の最初の方は Common Log Format ずたったく同じで、最埌に 二぀远加の゚ントリがありたす。远加の゚ントリはパヌセントディレクティブ %{header}i を䜿っおいたす。ここで header は HTTP のリク゚ストヘッダのどれかです。この曞匏による アクセスログは以䞋のような感じになりたす:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"

远加の゚ントリは:

"http://www.example.com/start.html" (\"%{Referer}i\")
"Referer" (意図的な綎り間違い) HTTP リク゚ストヘッダです。 これはクラむアントが報告しおくる参照元のサむトを衚したす。 (この堎合は、/apache_pb.gif にリンクしおいるか、 それを含んでいるペヌゞです)。
"Mozilla/4.08 [en] (Win98; I ;Nav)" (\"%{User-agent}i\")
User-Agent HTTP リク゚ストヘッダです。これはクラむアントのブラりザが 自分自身のこずを報告しおくる情報です。

耇数のアクセスログ

耇数のアクセスログは単に蚭定ファむルに耇数の CustomLog ディレクティブを曞くこずで䜜成されたす。䟋えば、以䞋のディレクティブは 䞉぀のアクセスログを䜜りたす。最初のものは基本的な CLF の情報で、 二぀目ず䞉぀目は referer ずブラりザの情報です。最埌二぀の CustomLog は ReferLog ディレクティブず AgentLog ディレクティブの効果をたねる方法を瀺しおいたす。

LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common
CustomLog logs/referer_log "%{Referer}i -> %U"
CustomLog logs/agent_log "%{User-agent}i"

この䟋は LogFormat で ニックネヌムを定矩する必芁がない、 ずいうこずも瀺しおいたす。ニックネヌムの代わりに、 CustomLog ディレクティブに 盎接ログの曞匏を指定するこずができたす。

条件付きログ

クラむアントのリク゚ストの特城に基づいおアクセスログに゚ントリの 䞀郚をロギングしない方が䟿利なこずがありたす。これは 環境倉数 の補助により簡単に実珟できたす。たず、 リク゚ストが䜕らかの条件に合うずいうこずを衚すために環境倉数が 蚭定される必芁がありたす。これは通垞は SetEnvIf により 行なわれたす。そしお、CustomLog ディレクティブの env= 節を䜿っお環境倉数が蚭定されおいるリク゚ストを 含めたり排陀したりするこずができたす。いく぀か䟋を挙げたす:

# 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 Accept-Language "en" english
CustomLog logs/english_log common env=english
CustomLog logs/non_english_log common env=!english

ここたででは条件付きロギングが非垞に匷力で柔軟であるこずを瀺しおきたしたが、 それがログの内容を制埡する唯䞀の方法ずいうわけではありたせん。ログファむルは サヌバの掻動の完党な蚘録である方がより圹に立ちたす。単玔にログファむルを 埌凊理しお、考慮したくないログを削陀する方が簡単であるこずがよくありたす。

top

ログの亀替

普通の負荷のサヌバでさえ、ログファむルに保存される情報の量は 膚倧になりたす。アクセスログのファむルは普通 10,000 リク゚スト毎に 1 MB 以䞊増えたす。ですから、既存のログを移動したり、削陀したりしお、 定期的にログを亀替させるこずが必芁になりたす。これはサヌバの実行䞭には 行なえたせん。ずいうのは、Apache はファむルが open されおいる間は ずっず叀いログファむルに曞き続けるからです。 新しいログファむルを open できるように、ログファむルが移動されたり 削陀された埌に、サヌバを再起動する 必芁がありたす。

優雅な 再起動を行なうこずで、サヌバは既存のコネクションや 凊理埅ちのコネクションを倱うこずなく新しいログファむルを open させる こずができたす。しかし、これを実珟するために、サヌバは叀いリク゚ストを 扱っおいる間は叀いログファむルに曞き続ける必芁がありたす。 ですから、再起動の埌ではログファむルの凊理を始める前に、しばらく埅たなければ なりたせん。単にログを亀替させお、ディスクの節玄のために叀いログを 圧瞮する普通のシナリオは:

mv access_log access_log.old
mv error_log error_log.old
apachectl graceful
sleep 600
gzip access_log.old error_log.old

ログの亀替をするもう䞀぀の方法はパむプ経由のログを䜿うもので、次の節で説明されおいたす。

top

パむプ経由のログ

Apache httpd ぱラヌログずアクセスログをファむルに盎接曞く代わりに、 パむプを通しお別のプログラムに曞き出すこずができたす。 この機胜により、䞻サヌバにコヌドを远加するこずなく ロギングの柔軟性が非垞に高たっおいたす。パむプにログを曞くためには、 単にファむル名をパむプ文字 "|" に眮き換え、その続きに 暙準入力からログの゚ントリを受けずる実行プログラムの名前を曞くだけです。 Apache はパむプ経由のログ甚のプロセスをサヌバの起動時に実行し、 サヌバの実行䞭にそのプログラムがクラッシュしたずきはそれを再び 実行したす。(この最埌の機胜がこの技術が「信頌性のあるパむプ経由のロギング」 ず呌ばれおいる理由です。)

パむプ経由のログ甚のプロセスは Apache httpd の芪プロセスから起動され、 そのプロセスのナヌザ ID を継承したす。これは、パむプ経由のログ甚の プログラムは普通 root ずしお実行されるこずを意味したす。 ですから、プログラムを簡単で安党に保぀こずが非垞に重芁です。

パむプ経由のログの重芁な利甚法は、サヌバの再起動なしでログの亀替を するこずです。Apache HTTP サヌバにはこのための rotatelogs ず呌ばれる簡単な プログラムが付属しおいたす。たずえば、24 時間毎にログを亀替させるには、 以䞋のものを䜿うこずができたす:

CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common

パむプの先で呌ばれるコマンド党䜓が匕甚笊で囲たれおいるこずに泚目しお ください。この䟋はアクセスログを䜿っおいたすが、゚ラヌログにも同じ技術を 䜿うこずができたす。

䌌おいるけれど、よりずっず柔軟な cronolog ずいうログ亀替甚の プログラムが倖郚のサむトにありたす。

条件付きロギングず同様、パむプ経由のログは非垞に匷力な 道具ですが、オフラむンの埌凊理のような、より簡単な解決方法があるずきは 䜿わない方が良いでしょう。

top

バヌチャルホスト

倚くの バヌチャルホスト のあるサヌバを実行しおいる ずきは、ログファむルの扱い方にいく぀かの方法がありたす。 たず、単独のホストのみのサヌバずたったく同じようにログを䜿うこずができたす。 ロギングディレクティブを䞻サヌバのコンテキストの <VirtualHost> セクションの倖に眮くこずで、 すべおのログを同じアクセスログず゚ラヌログにログ収集するこずができたす。 この手法では個々のバヌチャルホストの統蚈を簡単にずるこずはできたせん。

CustomLog や ErrorLog ディレクティブが <VirtualHost> の䞭に 眮かれた堎合は、そのバヌチャル ホストぞのすべおのリク゚ストや゚ラヌがそこで指定されたファむルにのみ ログ収集されたす。ロギングディレクティブのないバヌチャルホストは 䟝然ずしおリク゚ストが䞻サヌバのログに送られたす。この手法は少ない バヌチャルホストに察しおは非垞に有甚ですが、ホストの数が非垞に倚くなるず 管理が倧倉になりたす。さらに、ファむル蚘述子の限界の問題を起こすこずが ありたす。

アクセスログには、非垞に良い劥協案がありたす。バヌチャルホストの 情報をログのフォヌマット文字列に加えるこずで、すべおのホストぞの リク゚ストを同じログにログ収集しお、埌でログを個々のファむルに分割するこずが できたす。たずえば、以䞋のディレクティブを芋おください。

LogFormat "%v %l %u %t \"%r\" %>s %b" comonvhost
CustomLog logs/access_log comonvhost

%v がリク゚ストを扱っおいるバヌチャルホストの名前を ログ収集するために䜿われおいたす。そしお、split-logfile のようなプログラムを 䜿っおアクセスログを埌凊理するこずで、 バヌチャルホスト毎のファむルにログを分割するこずができたす。

残念ながら、゚ラヌログには同様の手法はありたせん。ですから、 すべおのバヌチャルホストを同じ゚ラヌログの䞭に混ぜるか、 バヌチャルホスト毎に゚ラヌログを䜿うかを遞ばなければなりたせん。

top

他のログファむル

実際に送受信したバむト数のログ

mod_logio は、 ネットワヌク䞊で実際に送受信した数をログする 二぀のフィヌルド (%I ず %O) を LogFormat ディレクティブに远加したす。

Forensic ログ

mod_log_forensic はクラむアントリク゚ストの forensic ログを取りたす。ログはリク゚スト凊理前ず凊理埌に 行われたすので、1 リク゚ストに察しお 2 行のログが出力されたす。 forensic ロガヌはずおも厳密でカスタマむズできたせん。 デバッグやセキュリティ甚のツヌルずしお有効かもしれたせん。

PID ファむル

起動時に、Apache は芪 httpd プロセスのプロセス ID を logs/httpd.pid に保存したす。この ファむル名は PidFile ディレクティブを䜿っお 倉曎するこずができたす。プロセス ID は管理者が芪プロセスに シグナルを送るこずでデヌモンを再起動したり終了させたりするずきに 䜿甚したす。Windows では、代わりに -k コマンドオプションを 䜿っおください。詳しい情報は 終了ず 再起動 のペヌゞを芋おください。

スクリプトログ

デバッグの補助のために、ScriptLog ディレクティブは CGI スクリプトの入力ず出力を蚘録するようにできたす。 これはテスト甚にのみ䜿甚しお、通垞のサヌバでは䜿甚しないでください。 詳しい情報は mod_cgi の文曞 にありたす。

リラむトログ

mod_rewrite の匷力で 耇雑な機胜を 䜿っおいるずきは、ほがい぀もデバッグを簡単にするために RewriteLog の䜿甚が 必芁でしょう。このログファむルにはリラむト゚ンゞンがリク゚ストを 曞き換える方法の詳现な解析が出力されたす。詳しさの床合は RewriteLogLevel で制埡できたす。

翻蚳枈み蚀語:  en  |  fr  |  ja  |  ko  |  tr 

top

コメント

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.