SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2024 セッションレポート(AD)

データドリブン開発のためこれだけは理解しておきたい! ログ活用のポイントとは

【16-B-3】ログと徹底的に向き合うデータドリブンなサービス運用

  • X ポスト
  • このエントリーをはてなブックマークに追加

ログ設計で明確にすべき4つのポイント

 サービス運用にログを活用するには、まずログ設計が重要になる。

 「ざっくりログ設計といっても曖昧になるので、今回は次のポイントにしぼってお話します。ログの利用目的、ログの重要度、ログの出力形式、ログの保管先の4つです」

 ログの利用目的は、このログを利用して何を実現したいかだ。Webサービスの場合は、安定的なサービス運用となるだろう。これを手に入れるために、ログを活用するのだ。

 ログの重要度は対象システムやレイヤーによって異なるが、アプリケーション開発を例にすると次のようになる。例えば、FATALはサービスを継続できないような致命的なエラーをあらわし、WARNは動作には影響しないが気を付けたほうがよい動作の警告をあらわし、INFOが正常動作の出力情報をあらわすという具合だ。

アプリケーション開発におけるログのレベル
アプリケーション開発におけるログのレベル

 「これらの情報をうまく使い分けることによって重要度を決めていきます。本来はWARNとして出力されなきゃいけない情報がERRORとして出力されたり、その逆もあったりすると運用上の妨げになることがあるので、ここはきちっと意識をしないといけないと思います」

 ログの出力形式は、どのようなフォーマットで出力するかである。Webアプリケーションであれば、タイムスタンプや出力元の情報、ログの重要度をあらわすログレベルなどある程度の内容は決まっているだろう。

ログの出力形式の例
ログの出力形式の例

 「通常は、スライドの青文字の部分で確認することが多いです。メソッドとURLでどういった処理が行われたかを確認して、レスポンスコードでその処理結果がどうだったかを確認します。異常が起こった場合には赤文字の部分を追加で確認します。どこからという情報は、IPやリファラーで確認し、何が起きたかを詳細にて確認します。詳細部分にはスタックトレースをそのまま出力することが多いです」

 ログの保管先とは、単純にログファイルが出力される場所である。田中氏が運用するNJSSではECSを使用しているため、基本的にCloudWatchに出力される。またAWSのサービスから出力されるログに関してはS3に出力している。さらに、リクエストログの一部は、CloudWatchではなくBigQueryに出力するようにしてある。このBigQueryをデータウェアハウスとして使っていて、Google Analyticsの情報も出力している。最後に、アプリケーションで発生したログやリクエストログの一部はDatadogなどのイベントトラッキングサービスに連携している。

 もう一つ大事なのが、出力するタイミングである。特にサービス運用として考えた場合にはエラーが重要になる。アプリケーションの不具合の可能性があるので、早急に対応が必要になるからだ。エラーではないが特定の条件に合致した場合も注目する必要がある。たとえば、バリデーションエラーやログイン認証の失敗、規約上の上限といった具合だ。また想定通りの挙動だがユーザーとしてうまく利用できてない状況を記録していく。こうした状況の発生頻度が多いようであれば、何かしら改善の余地がある可能性がある。

ログの出力先とタイミング
ログの出力先とタイミング

次のページ
NJSSにおけるログ活用の実際

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2024 セッションレポート連載記事一覧

もっと読む

この記事の著者

可知 豊(カチ ユタカ)

フリーランスのテクニカルライター 興味の対象はオープンソースの日常利用、ライセンス、プログラミング学習など。 著書「知る、読む、使う! オープンソースライセンス」。https://www.catch.jp

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

丸毛 透(マルモ トオル)

インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:株式会社うるる

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19211 2024/04/05 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング