例えばブログでアクセスカウンターも、どの検索エンジンからどんなキーワードでいつ到達したかの情報も、どうやっているかというと、とどのつまり「ログを確保しているから」表示できるのだ。
既存のシステムを見ると、ログはデバッグのためのものばかりであり、中堅のエンジニアの意識もデバッグ目的でしかなかった。内部のシステムのログは不要だと考えているエンジニアものもいた。
ブログなどのWebシステムではログが活用されているのに、内部処理のログには関心がないようなのだ。
昔、汎用機のバッチ処理を開発していた頃。バッチプログラムの処理順序をJCLに書いて実行させると、ジョブ*1 の開始終了もジョブステップ*2 の開始終了も記録されていた。プログラム側では処理した入出力件数を記録していた。
今になって思うのだが、正常系のログであっても
・処理能力の計測やボトルネックの発見
・処理件数の確認
・実際に動いた、という証拠
など、役立つ情報が結構記録されているのだ。例えば処理が遅い、と言う場合でも、単に遅いという定性的な情報ではなく、どこでどんなくらいの時間が掛かっているのかという定量的な情報を確保することができるのだ。こういう記録をしないで運用改善を行うのは困難ではないだろうか?
ただ、どういうログを確保すればいいのか、情報としてまとまっているものはない。システム監査においてもログから情報を取るのだが、どのような情報が有効で、こういうログは取りなさい、という指針や具体例は見つけられなかった。
ログについても何か指針を作ってみようかと思う。が、いつになるうやら・・。
<ざっくり解説>
*1 ジョブ: JCLで書いたファイル1つか1ジョブである。
*2 ジョブステップ: JCL内で実行するプログラムの数。例えばプログラムを5つ動かすならジョブステップ数は5となる。