ビルの受付には来訪者の記録簿があります。何時に誰が来て、どの部屋へ向かい、何時に帰ったか。あとで何かあったとき、記録をめくれば、いつ頃から様子がおかしかったかが分かります。
ログは、サーバーやアプリで起きた出来事を時系列で書き残した記録です。エラーが出た時刻、アクセスしてきた相手、どの処理で止まったか。システムが勝手に書き足していくこの記録が、障害の原因を調べるときの最初の手がかりになります。サイトにエラーが出たとき、不正アクセスがなかったか確かめたいとき、処理が遅くなった場所を探したいとき、夜中にcronの処理がちゃんと動いたか知りたいとき、最初に開くのがログです。
調べようとしたら、もう消えていた
ログは毎日どんどん増えていくので、古いものは自動で消す(ローテーション)設定にするのが普通です。ここに落とし穴があります。
これでは、記録簿があっても肝心のページが破り捨てられています。
「いつまで残すか」は、何かが起きてから決めても間に合いません。調べる可能性がある期間を考えて、先に決めて設定しておきます。ログそのものをバックアップの対象に含めるかどうかも、運用の方針として決めておきましょう。
書き残す中身も先に決めておく
記録があるだけでは、原因は分かりません。何を書き残すかで、調べやすさが大きく変わります。
情報、警告、エラーといった重要度(レベル)を分けて記録しておくと、大量のログの中から問題の行を探すのが速くなります。一方で、書いてはいけないものもある。個人情報やパスワードがログに出力されると、ログそのものが漏えいの原因になります。何を記録し、何を記録しないかは、作る段階で決めておきます。
ログは記録で、それを見張って異常を知らせるのは監視の役目です。