効果的なアプリケーションログ戦略の設計が重要なのはなぜですか?

効果的なアプリケーションログ戦略の設計が重要なのはなぜですか?

可観測性 メトリック、ログ、およびトレースで構成されています。 これらの柱は、通常の実行下でのアプリケーションの動作を理解するのに役立ちます。これにより、アプリケーションの障害や通常の実行からの逸脱が発生した場合の異常の特定がさらに加速されます。

ロギングとは、すべての操作を追跡することではなく、アプリケーションの動作を明らかにする、賢明で一貫性のある、機械可読なログメッセージに関するものです。 各機能をログに記録すると、機能フローに関する洞察が得られますが、アプリケーションの管理とトランザクションのトレースには莫大なコストがかかります。 

監視システムが正常な動作と正常な動作からの逸脱を識別できる、正しい意図と最終目標を念頭に置いてログを記録すると、異常を正確に検出するのに役立ちます。 

このブログでは、以下について説明します。

  • アプリケーションの動作を理解する上でのロギングの重要性
  • ロギングを改善するためのパターンを見つけ始める方法 
  • 高いROIにつながるロギングを改善するためのシンプルなロギング戦略 
  • ログとメトリックをまとめる

アプリケーションの動作を理解するためのログインの重要性

皮肉なことに、ロギングが正しく行われていない場合、ロギングはアプリケーションの動作を模倣しません。 開発者は、アプリケーションの開発中にさまざまなログメッセージを追加できますが、ログに一貫性がない場合、アプリケーションの動作は正しくキャプチャされません。

過剰で意図しないロギングは、アプリケーションのトラブルシューティングを困難にし、さらに、一貫性のない大量のログからコンテキストを検索およびマイニングすると、トラブルシューティング時間が長くなります。

アプリケーションの動作を理解することを目的としたロギングは、ロギングによって提供される明確なコンテキストにより、問題の検索スペースを削減します。 生成された機械学習モデルはより正確であるため、機械学習アルゴリズムは異常を事前に識別します。

アプリケーションの可観測性は、効果的なロギングから始まります。 エンジニアリングは、アプリケーションが本番環境での正常な動作であることを示すためにログに記録する内容に関して、最終目標を念頭に置いて開始する必要があります。 正常なアプリケーションログは分析と異常の検出に必要なシグニチャになるため、可観測性のログはトラブルシューティングのログとは異なります。 ログからマイニングされたコンテキストにより、アラートと異常の関連付けが容易になります。

ログの異常が検出され、表示されます。

ロギングパターンを理解する  

単純なgrepコマンドから、ログの管理と分析のための高度なツールまで、ログ分析の機能を提供するさまざまな方法があります。 ロギングは「事実の前」と「事実の後」の動作をキャプチャし、これらのメッセージには隠されたパターンがあります。

分析中にロギングパターンを見つけるには、次の質問を自問する必要があります。

  • どのログ行が最も多く生成されますか?
  • 一意のログ行の頻度はどれくらいですか?
  • ログラインには十分なコンテキストがありますか?
  • ロギングはメトリックの反映ですか?
  • ログメッセージは構造化され、機械で読み取り可能ですか?

特定の問題が発生したときにログメッセージに表示する必要のあるシグニチャを事前に決定できます。 これらのツールは、署名の有無に関係なく機能します。

正しいロギング戦略を特定するときは、パターンとアンチパターンの両方を理解することが重要です。これにより、コストを管理し、アプリケーションを監視できます。 実行時のコードトレースだけでログメッセージをダンプすると、ログのフットプリントが増加し、アプリケーションが見にくくなります。

単純なロギング戦略がコンテキスト分析に役立ちます

ログが多すぎたり少なすぎたりすると、重要なアプリケーションの動作が抑制され、誤検知の異常が発生します。 「アプリケーションで起こっていること」は可観測性であり、「なぜ起こっているのか」はトラブルシューティングであることを理解することが重要です。

アプリケーションはガイドラインに従って、アプリケーションロギングを費用効果の高いものにし、ログを介してアプリケーションの動作を公開できます。 

ロギングのさまざまな戦略を見てみましょう。

  1. 各メッセージを コンテキスト
  2. 意図したものを明確に追加する log level 
  3. 一貫した使用 標準のタイムスタンプ
  4. ログメッセージの長さ 特定のサイズに制限する必要があります
  5. 各ログメッセージには、 「key = value」構造
  6. 変換 メトリックにログインします 深い洞察のために 
  7. ログメッセージは、 ログカテゴリ 
  8. 繰り返しログメッセージを制御する スロットリング
  9. 使用を検討する JSONフォーマット

アプリケーションの動作を公開するという考え方でコーディングされたアプリケーションは、問題の特定にかかる時間を短縮します。 開発者は、アプリケーションに意味のある動作を公開するために、前述のように効果的なロギング戦略を採用する必要があります。 そうすることで、コストを管理しやすくし、異常検出を加速します。

時間の経過に伴う異常の急増を示すイベントをログに記録します。

効果的なアプリケーションロギングの利点 

効果的なロギングにより、監視ツールの「ガベージイン、ガベージアウト」の現象が減少します。 あなたはできる MTTRを減らす 運用上の問題を早期に特定するために、メトリックとログをまとめることによって。 さらに、ログメッセージの保存と処理のコストは、必要なコンテキストログのために管理されています。 

ログメッセージを使用した異常検出は、複雑で興味深い分野です。 LogicMonitorは、LMログを使用して、すでに監視されているインフラストラクチャにビジネス価値を追加する準備をしています。 LMログプラットフォームの詳細については、こちらをご覧ください

Sudhir Sangra

シニアソフトウェアアーキテクト

SudhirSangraはLogicMonitorの従業員です。

LogicBlogを購読して、LogicMonitorの最新の開発に関する最新情報を入手し、ITエキスパートとエンジニアのワールドクラスのチーム、およびITプロフェッショナルが愛する製品。

LogicBlogの他の記事

アンペアロボット 影

お店の話をしましょう。

STARTED GET