skillup

技術ブログ

プログラミング全般 プロジェクト管理

ログ対策(どのように情報を抽出するか)

投稿日:

現在、現場でテストをやってるんですが、やることは昔と変わらずテストデータ作り、ログ、エラーハンドリングになります。

3年近くまえに↓のような記事をかいてました。

ログの設計指針について

テストデータ(再現手法)、ログ、エラーハンドリングが大事って書いてあるんですが、やっぱり変わってないですねー。

ただ本質的なことは変わっていないのですが、ログの抽出方法については直近で大規模な現場を経験したこともあり、結構変わってきました。

色々経験したので、メリデメをまとめておこうと思います。

ログをどのように抽出するか?

生ログ

比較的小規模〜中規模だったり、レガシーな現場ではいまだに生ログを出力しているというプロジェクトが多いのではないでしょうか。

ただそのまま出しているだけあっていろいろなカスタマイズが可能だったりします。

メリット

  • 後述するような設計スキルやエラーレポーティングサービスへの知見が特にいらない
  • 全ての情報を自由自在に出力することができる

デメリット

  • レベルにもよるが、膨大なサイズになり、ログの検索が大変
  • 上記のサイズ制限などにより、保存や管理がしにくい
  • レベル分けや入れる情報を精査しないと検索ができない(ログの設計能力がいる)

ログサービス(cloudwatch、application Insightsなど)

生ログをそのまま出す現場はへってきており、中規模以上の現場ではAWSやAzureでシステムを構築している現場が多いと思いますので、これらに付随するログサービスを使っている現場が多いかと思います。

メリット

  • さまざまな検索クエリなどをつかうことができ、生ログよりも目的の情報を探しやすい
  • 実ログを吐き出しているだけなので、カスタマイズがしやすい

デメリット

  • サービスの学習コスト、慣れや検索クエリを覚える手間が若干必要
  • 生ログをはいているだけなので、ログ設計指針をしっかりしておかないと検索が大変

レポーティングサービス(Sentryなど)

一般的にログを見なくてはいけないケースは圧倒的にエラーの場合だと思います。その場合、エラーが発生した時のみ、アラートをあげてレポートなどが送られてくる仕組みが便利で、そのためにSentryなどのレポーティングサービスがあると便利でしょう。

現在の現場ではSentryが上がったら、Slackにながれるようになっています。

メリット

  • エラーの場合のみ、レポートが送られてくるので、ログよりは見る情報が必然的に少なくて済む
  • 情報が細かくカテゴライズされており、検索や抽出が容易

デメリット

  • エラーが吐かれない異常の場合、動きを追えない
  • 構築の段階でどのエラーハンドリングをもれなくサービスに連携させる設計が必要
  • 全ての情報が見れるわけではないので、ある程度推測が必要な部分がでてくる

個人的にはレポーティングサービスでエラーを追いつつ、もしものために通常ログをみれるようにcloudwatchを使うなどの2段構えでログ対策を取るのがいいと思います。

-プログラミング全般, プロジェクト管理
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

ログインしたままにするの挙動に関して(ステートフル認証の基本的な仕組みの復習もかねて)

基礎の基礎ですが、ログイン処理に関しての動きに関して。 Contents1 通常のログイン処理に関して2 ログインしたままにする 通常のログイン処理に関して 通常のログイン処理では、まず以下のような手 …

no image

OSコマンドインジェクション

Contents1 OSコマンドインジェクションとは?2 被害3 対策4 参考リンク OSコマンドインジェクションとは? OSに対する命令文を不正に紛れ込ませて攻撃させる手法。 被害 サーバー内のファ …

no image

トランザクショントークンについて

フォーム画面で入力を行うときにはPOSTでデータを受け取ってエラーチェックしたり、データベースに入力をしたりします。 ただその時に何も考えずに安易に送信→受信の際に以下のようなトラブルがあり得ます。 …

no image

バッチスクリプトで気をつけたい点

実務でバッチ処理を作る際に気をつけるべきと思ったこと。 基本的にエラーをいかに捉えていかにログに吐くかを最初に考える。まずはエラーありき。失敗するもの、想定した値がこない、あるいは値がないを前提として …

no image

調査スキルについて

本日は実務でとても大切な不具合の発見方法について 通常のプログラマとして仕事をしておりますと、通常の実装よりは不具合時の調査のほうが難しいことが多々あります。 もちろんものによるんですが、経験のある人 …

アーカイブ