【Apache】アクセスログの見方をやさしく解説!※ 2024年更新
こんにちは!
株式会社ビヨンド四国オフィスのペルシャ猫、いのうえです。
カッコよく言えば MSP の私が日々障害対応していくなかで、頻繁に見ることがあるアクセスログ。
今回は、MSP 必須!!Apacheのアクセスログの見方をやさしく解説していこうと思います。
アクセスログってなんだ?
アクセスログとは、サーバーへ接続した履歴です。日付や時間、アクセス元のIPアドレスやリクエストされたページ、使用されたブラウザやデバイスなどの情報が記録されています。
私たち MSP がアクセスログを利用している一例として、アラート対応が挙げられます。
アラートが出ているサーバーのアクセスログを見て、平常時と比べてアクセス数が増減しているかを確認します。アクセス数が急増していればサーバーに大きな負荷がかかっていることになります。
またアクセスされているページを確認して、本当にがページ存在しているかを確認することもあります。
Apache のアクセスログを見てみよう!
[root@test-aws-harukainoue httpd]# tail access_log xxx.xx.xx.xxx - - [11/Dec/2019:12:01:22 +0000] "GET / HTTP/1.0" 200 35 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3602.2 Safari/537.36"
※ 実行結果から一部抜粋しております。
なんだか、よくわからない英数字や記号がズラズラと並んでいます。
アクセスログを解析しよう!
Apache の設定ファイルは、デフォルトだと「/etc/httpd/conf/httpd.conf」に書かれています。
「/etc/httpd/conf/httpd.conf」ファイルの中を見ると
LogFormat "%h %l %u %t \"%r\" %t %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog "logs/access_log" combined
と書かれており、combined というフォーマットがデフォルト設定されていることが分かります。
ログは、このフォーマットに添って表示される仕組みになっています。
フォーマット文字列 | フォーマットの意味 | アクセスログの値 | 備考 |
%h | リモートホストのIPアドレス | xxx.xx.xx.xxx | |
%l | 接続元のユーザー名 | ‐(未設定) | ここは、だいたいの場合 - になっていることが多いですが mod_ident がサーバに存在して、 IdentityCheck ディレクティブが On に設定されていると値が出力されます。 |
%u | リモートユーザー | ‐(未設定) | |
%t | アクセスされた日時 | 2019/11/11 12:01 | |
\"%r\" | アクセスされたファイル | ・アクション = GET
・HTTP = プロトコル ・リソース = 1.0 |
※ バックスラッシュは、「\」で表示されています。 |
%>s | ステータスコード | 200(正常) | |
%b | リソースに対する点送量 | 35バイト | |
\"%{Referer}i\" | アクセス元のURL | ‐(未設定) | どこかのサイトを経由して来たのか、 URL から直接アクセスしたのかが出力されます。 |
\"%{User-Agent}i\" | なんの OS でどのブラウザからアクセスしてきたか | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3602.2 Safari/537.36 | ・OS = Linux
・ブラウザ = Chrome |
ステータスコードの意味についてちょっと知ってみる
ステータスコードとは、WebサーバーとWebブラウザが、お互いの状態をやり取りするために数字(コード)で表したもの
・200 = リクエスト成功
・301 = リクエストしたページが別のぺーじに移動している
・302 = 一時的に別のページに移動中
・403 = リクエストしたページを表示する権限なし
・404 = リクエストしたページが存在しない
・500 = サーバ側でエラー発生
まとめ
アクセスログを見ることができたら、MSP 力はグンと上がるはず!
日々、アラート対応していく中で、Webサーバーで急激に負荷が上がった際は、必ずアクセスログを見ます。
攻撃的なアクセスがあったかどうかも、アクセスログを確認するとわかります。
私も、目を血眼にしてアクセスログを見ています!(`・ω・´)
今回ブログに記したことで、私の理解度も深まりました。
今後もトライアンドエラーとやらを繰り返し、
お気に入りのコマンドや、個人的にもっと理解を深めたいことに関してブログを書いていきます。
また、今回は Apache のアクセスログの見方を解説しましたが、メンバーが nginx のアクセスログの見方についてもブログを書いてくれたので、こちらも併せてご覧ください!
日々成長、日々前進。
毎日、私自身をアップデートしていかなければ!!!
最後まで読んでくださって、ありがとうございます。
▼ クラウド / サーバー運用監視サービス(24時間365日)はコチラ ▼