WEBサイトを運用していると避けては通れないのが、障害です。
「サイトが見れなくなったんだけど・・・」や「動作がおかしい」などのお問い合わせを頂くたびに、
生きた心地がしないエンジニアの方も多いのではないでしょうか?(少なくても私は生きた心地がしません)
そんな緊張状態からエンジニアを救ってくれるのが、ログです。
今回はそんなエンジニアの救世主であるログについて、知ってたら少しだけ役に立つ情報を交えながら、 お伝えできたらと思います。
ログはサーバーで起きた出来事を記録している
まず、今回お話するログはとは何なのかを説明します。
ログは履歴や情報を記録したものを指しており、元々は航海日誌の事だったそうです。
ブログ(web log)や、vlog(video log)などもログの一種になります。
今回お話するサーバー上のログは、 「サーバーで起きた出来事を記録しているテキストファイル」の事を指しています。
エンジニアが障害時にログを確認しているのは、 障害が発生した時のログに解決の糸口が残されている可能性が高いからです。
サーバーのログには色々な種類がある
サーバーで記録されているログは一つではなく、色々な種類があります。
サーバーにはOSの他に、色々なサービスに提供するために多くのアプリケーションがインストールされており、
各サービスはそれぞれでログを記録しています。
Webサイトが運営するときに出てくる代表的なサービスを、以下にあげます。
- ・Webサイトを閲覧出来る出来るようにするサービス:Apache(アパッチ)
- ・顧客情報や商品情報を保存するためのデーターベースを使えるようにするサービス:mysql(マイエスキューエル)
- ・メールを送受信するためのサービス:sendmail(センドメール)
これらのサービスは呼び出される時やエラーが発生した時に、ログに記録を行っています。 ログが別々に用意されていることで、どのサービスで障害が発生しているか特定しやすくなっています。
Webサーバーのログを見れば個人を特定出来るのか?
上記でご説明した通り、Webサイトにアクセスがあった時には、Apacheというサービスのログが記録されています。
このログには以下のような情報が記録されています。
- ・アクセスしてきたユーザーのIPアドレス
- ・アクセスしてきた日時
- ・アクセスしたURL
- ・アクセスしてきたユーザーが利用しているブラウザ
※Apacheログの例
これらの情報から障害発生時に、ユーザーがどのような行動をとっていたか追跡することができます。
ただ、ユーザーを特定する情報はIPアドレスだけとなりますので、 このログを見ただけでは、基本的にはどこの誰がアクセスしているかまではわかりません。
ですが、このIPアドレスを提供している携帯会社やインターネットサービスプロバイダーに、 開示請求を行うことで、契約者の氏名や住所を特定する事が出来たりします。
そのため、匿名だからといって特定の個人を攻撃したり、Webサービスを不正利用などを行っていると、 開示請求をされて個人を特定される可能性がある事は認識しておいたほうが良いと思われます。
まとめ
今回はサーバーのログについてまとめてみました。
障害が起きた時、直ぐに原因究明と復旧が出来るかは、ログに必要が情報が記録されているかが重要になってきます。
アプリケーションを作る時は、ログに必要な情報を記録することも大切な事だと常々考えております。