【Apache】アクセスログの見方をやさしく解説
こんにちは!
株式会社ビヨンド四国オフィスのペルシャ猫、いのうえです。
かっこよく言えばMSPの私が日々障害対応していくなかで頻繁に見ることがあるアクセスログ。
今回は、MSP必須!!アクセスログの見方をやさしく解説していこうと思います。
アクセスログとは、サーバへ接続した履歴です。
Apacheのアクセスログを見てみよう!
[[email protected] 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サーバで急激に負荷が上がった際は、必ずアクセスログを見ます。
攻撃的なアクセスがあったかどうかも、アクセスログを確認するとわかります。
私も、目を血眼にしてアクセスログを見ています!(`・ω・´)
今回ブログに記したことで、私の理解度も深まりました。
今後もトライアンドエラーとやらを繰り返し、
お気に入りのコマンドや、個人的にもっと理解を深めたいことに関してブログを書いていきます。
日々成長、日々前進。
毎日、私自身をアップデートしていかなければ!!!
最後まで読んでくださって、ありがとうございます。