Webサーバーのログ設定の内容を確認する

前回コラムで解説したログ設定に引き続き、今回は実際にログに記載されている内容について解説します。【連載コラム:Linuxを学ぼう(26)】

最終更新日:2023年12月14日

前回のコラムではWebサーバーのログ設定について確認しました。今回は実際にログに記録されている内容について確認します。


ログの保存場所を確認する

Webサーバーのログは/etc/httpd/logディレクトリに保管されています。確認してみましょう。

[root@localhost ~]# ls -l /etc/httpd/logs/
total 4
-rw-r--r--. 1 root root   0 Oct 26 04:29 access_log
-rw-r--r--. 1 root root 855 Oct 26 04:29 error_log

現在はWebサーバーを起動しただけの状態なので、特別何も記録されていません。エラーログに少し情報が入っていますが、起動時の情報が記録されています。

[root@localhost ~]# cat /etc/httpd/logs/error_log
[Thu Oct 26 04:29:44.045656 2023] [core:notice] [pid 2539:tid 2539] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Thu Oct 26 04:29:44.046554 2023] [suexec:notice] [pid 2539:tid 2539] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
[Thu Oct 26 04:29:44.056663 2023] [lbmethod_heartbeat:notice] [pid 2539:tid 2539] AH02282: No slotmem from mod_heartmonitor
[Thu Oct 26 04:29:44.058655 2023] [mpm_event:notice] [pid 2539:tid 2539] AH00489: Apache/2.4.53 (AlmaLinux) configured -- resuming normal operations
[Thu Oct 26 04:29:44.058673 2023] [core:notice] [pid 2539:tid 2539] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

アクセスログを確認する

それではアクセスログへの記録を確認してみましょう。まずcurlでlocalhostにアクセスしてみます。

[root@localhost ~]# curl localhost
Hello,LinuC

アクセスログへの記録を確認してみます。

[root@localhost ~]# cat /etc/httpd/logs/access_log
::1 - - [26/Oct/2023:04:32:17 +0900] "GET / HTTP/1.1" 200 12 "-" "curl/7.76.1"

記録されていない項目もありますが、IPv6でローカルループバックアドレスに接続していること、curlコマンドでアクセスしていることなどが読み取れます。

アクセスエラーが起きた場合には?

それでは次に存在しないファイルにアクセスして、エラーを発生させます。

[root@localhost ~]# curl localhost/error.html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
</body></html>

「404 Not Found」というエラー表示が返ってきています。アクセスログを見てみましょう。

[root@localhost ~]# cat /etc/httpd/logs/error_log
(略)
::1 - - [26/Oct/2023:04:53:38 +0900] "GET /error.html HTTP/1.1" 404 196 "-" "curl/7.76.1"

アクセスログにエラーコード404が記録されているのが分かります。HTTPには様々なエラーコードがありますので、正常にアクセスできなかった場合にはどのようなエラーが起きたのかエラーコードで判別することになります。

ちなみに、このようなアクセスに関わるエラーはエラーログには記録されません。

[root@localhost ~]# cat /etc/httpd/logs/error_log
(起動時と同じログ)

エラーログには、サーバー自身のエラーに関わるものが記録されます。

このように、Webサーバーへのアクセスは逐一ログに記録されます。アクセス量が多いサーバーの場合、大量にログが記録されるので保存場所は容量を確保したり、高速な書き込み要求に耐えられる性能を備えさせるなどの対応が必要になることも覚えておくとよいでしょう。


筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。

バックナンバー

第25回:Webサーバーのログ設定を確認する

第24回:Webサーバーのユーザーディレクトリを利用する

第23回:WebサーバーでPHPを動かす

第22回:WEBサーバーにコンテンツを配置する

第21回:外部からWebサーバーにアクセスする

第20回:Webサーバーを動かす

ページトップへ