
どうも、こんばんは。たこやきです。
今回はIT系の記事は、システム開発におけるログ設計指針に関する記事です。前回までのサイバー攻撃に少しだけ関連があるかもしれないので、関連記事を貼っておきます。

記事を書く背景としては、業務でログに関する作業をすることになったためです!!あとは、休日でつくっている掲示板アプリでもログを導入したいので、この機にログについてインプットしようと思いました!!

地味だけど大切なやつです。
派手な機能ではないですが、ログを出さないシステムというのはないので勉強して損はないと思いました(^^)/
・これから初めてログの設計をする人
・ログの指針について知りたい人
参考までに僕の今までの経歴を簡単に書いておきます。
2017/3:大学(農学部)を卒業
2017/4:IT未経験で独立系のSIerに就職
2021/7:独立系のSIerを退職
2021/8:未経験でコンサル会社に就職 ← イマココ
よく読まれている記事はこちらなのでもし興味があれば見ていただけますと幸いです!
目次
ログとは

↓実物としてはこういうやつですよね!!
今やシステムやコンピューターであれば「○○.log」といった形式のログが必ず出力されますよね。出力してもしなくてもシステムの動作には影響がありませんが、必須機能といえます。
ログの目的
では、システムにはなぜログを出力する必要があるのでしょうか。大きく分類して目的が2つ+最近ではもう1つあると思います。
- 障害やエラー発生時にログから原因を特定するため
- 不正アクセスや情報流出などを検知するため
- (最近)ビッグデータとして新たなビジネス価値創出のため
上記2つが基本的な従来のログの目的だと思っています。障害対応とセキュリティ対応の側面がログにはあり、ビジネスという観点でいえば守りの用途で使われている機能のイメージです。
ただ、最近ではIoTやビッグデータという技術もあり、大量のログを取得して分析することで新しいニーズの発見や顧客の傾向分析にも使えるため、攻めの用途もあります。
いずれにしても目的を考えるとログは必要不可欠な機能ですね。最近ではサイバー攻撃や内部統制といったセキュリティ意識の高まりもあるので、ログに関する知見は持っていて損はないと思います。
ログの一般的な設計指針

では、ログの一般的な設計指針についてみていきたいと思います。
Qiitaで「ログ 設計」で検索して、ログを考える際に必要になりそうな項目はざっくりと以下です。
- ログを出すツール
→基本的には言語やフレームワークで頻繁に使われている既存コンポーネントを使うのが推奨。(例えばjavaであればlog4j、pythonであればloggingパッケージなど) - ログに出す出力項目
→ログを分析、調査に活用するために必要な項目は何か洗い出して検討する。日時や操作ユーザー、あたりは必須項目といえる。 - ログの出力先
→コンソールに出すのか、サーバー上のディレクトリにファイルで出すのか、DBに出力するのか、クラウドに保存するのかといった検討。 - ログの出力タイミング
→エラー時、ログイン時、ページアクセス時などどんなタイミングでログを取得する必要があるのか検討。 - ログの保存期間
→ログもデータなので無限に保管していれば、ディスク容量を消費するため、保存期間やローテーションタイミングを決定する。 - ログの出力レベル
→ログの役割、重要性でレベル(INFO、ERROR、DEBUGなど)を設定し、より活用しやすくする。
上記のログ設計をしたら、監視対象のログメッセージ内容や監査対象のログを決定し、それぞれ設定していくといった流れになります。

ざっくりですが、外せない内容は記載できたかと
ログの設計をしてみる
今ちょうど勉強のために作っている掲示板サイトがあるので、このサイトにログを盛り込みたいと思います。テストかつ無料でやっているので使えるディスク容量は最低限です。。( ;∀;)

3ちゃんねるという安易な名前ですみません。(多分他にもありますよねw)
- ログを出すツール:logging(Python)
- ログに出す出力項目:日時、ユーザーID、ログレベル、メッセージ(処理概要)
- ログの出力先:とりあえずコンソール…
- ログの出力タイミング:処理開始時、SQL実行時、判定実行時、エラー時、処理終了時
- ログの保存期間:herokuの上限
- ログの出力レベル:FATAL、ERROR、WARN、INFO、DEBUG
とりあえずこんな感じにしてみましたが、本当にとりあえずで考えたので検討不足感しかないです。。。w
まとめ
今回はログについてみてきました。
- ログは、コンピュータの利用状況やデータ通信など履歴や情報の記録を取る事、またその記録
- ログ取得の目的は障害対応とセキュリティ対応+ビッグデータとしての活用
- 一般的なログ設計指針(ツール、出力項目、出力先など)
地味ではありますがとても大切な機能なので、少しでも調べることができ、自分なりにまとめられてよかったです。近日受験予定の情報処理安全確保支援士試験にもログに関する章があるので役に立つと嬉しいです!!

では、また!!
※本記事では解釈を間違えている場合もありますがそこはご了承ください。
可能であればコメントにてご指摘いただけますと幸いです。
コメント