※この記事は新入社員の問いにあることないことないことないこと話した備忘録です。
本日の困りごと
ログって最終的に消してますけど、何で取ってるんですか?
というか、ログっていつ見るものなんですか?
…と聞かれた。平和なプロジェクトだなぁ
経緯
ログが重くて見れない件を根本解決していなかったので、平和なうちに「どうにかしてー」と頼んだら返ってきた言葉。
今回の解決方法
うーん。なんか最近説明してばっかだな。。
そもそもログってなんやねん
ログというものの役割がわかれば疑問は解決すると思う。
「このサーバでどのような処理がされたか?」
「誰がアクセスしたか?」
「どこの処理が上手く動かなかったか?」
などの情報を記録しているものだ。
役割によって記録するものは様々で、何か起きた時に確認するものだ。
何も起きていなくても、運用者がシステムの持ち主と異なる場合などは「ホントに何も起きてないよ」を証明するために提出することもある。
…厳密に言うとちょっとニュアンスが異なる気がするのだが、上手く言えないので参考サイトでも。
監査証跡とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
参考サイトを間違ったような気がしなくもない。
「何か起きた時に確認」と言っているように、何も起きていない時には確認することはあまりない。
そして基本的にシステムやサービスが動いている限り出力され続けるものなので、サーバの容量を圧迫する要因ともなっている。
なので、
- 定期的にローテートをする(バックアップをとる)
- 定期的に削除する
といった処理をすることが多い。
今回、私が依頼した「どうにかして」とはこういった処理を作ることだ。
「ローテートってなんやねん」と思われていたらいけないので説明しておく。
ログは何らかの設定がされない限り1つのファイルに出力を続けることが多い。
「XXXX.logというファイルにログを吐く」と設定すると
これにずっとログがたまることで1GB以上のテキストファイル(.logはテキスト形式のファイル)が出来上がってしまう。
1つのファイル容量が大きくなるとテキストエディタでは開けなくなってしまい「何かあった時」に素早く確認ができなくなってしまう。
そのため、日毎や容量毎にファイルをバックアップし、出力ファイルを切り替えることを「ログローテート」という。
ログって消していいものなの?
消して良いか、悪いか…というのは、システムがどのような制約を受けているか?によるものだと思う。
この制約の一つが、「契約」だろう。
例えば、クライアントの命によってシステムの構築や運用保守を行っているとする。
そうすると、先ほど出てきた監査証跡の提出を求められることがあるだろう。
「1年に1回決まった時期に提出」だったり、「求められたら提出できるよう○年保管」だったり、契約の内容によって様々だ。
監査用以外のログファイルも保管年数や保管世代が設定されていることもあったりするので、それぞれのプロジェクトの規約に則ってもらえればいい。
ログ設計はまた別のお話かなって思う。