ログパターン:迅速な調査のためにログを自動的にクラスター化する | Datadog

ログパターン:迅速な調査のためにログを自動的にクラスター化する

Author Renaud Boutet

Last updated: 11月 13, 2019

すべてのログを調査して必要なログを見つけるのは困難な場合があります。特にシステムが停止しているときは一刻を争うことになり、WARNERROR メッセージであふれかえる状況では、本当に必要なログを見つけるのは困難になります。 ログパターン は、大量のログから有用な情報をすばやく検出するために開発されました。この新しい画面はログを自動的にリアルタイムで分析し、共通のパターンに基づいてクラスター化します。これにより、ログを簡単に解釈でき、異常を示す箇所を特定し、その結果を元に調査を迅速に進めることができます。

問題の範囲を理解する

問題の調査は、干し草の山の中から針を探すことのように感じられるかもしれません。針が見つかるまで、その針がどんな形なのかさえわからないこともあります。ログパターンの画面では、干し草の山の中にあるすべてを表示できますので、完璧な検索クエリを作成しなくても、最も重要なパターンをすばやく認識できます。Log Explorer で、サービス名、ステータス、またはその他の属性に基づいて調査のログをフィルタリングして、[Patterns]ボタンをクリックするだけで、ログソースと中身に基づいてログの全リストが即座にグループにまとめられます。

ログをグループ化するときに、ログメッセージのどのスニペットがグループのすべてのメンバーに共通であるか(プレーンテキストで表示)、またどのスニペットがグループのメンバー間で異なるか(強調表示)をすぐに確認できます。クラスタリングアルゴリズムは、タイムスタンプや IP アドレスなどの一般的な種類のログフィールドも認識し、それらを強調表示された文字(IPアドレスの範囲を表す 192.168.0.XXX など)に置き換えます。

datadog log patterns show that error logs are limited to a single topic

上記の例では、何千もの Kafka エラーログが共通のフォーマットを共有しているため、単一のクラスタにまとめられています。パターンが共有されることで、問題の範囲がすぐに明らかになります。エラーログには複数の Kafka コンシューマーとパーティションが含まれていますが、それらはすべて単一の Kafka トピック(topic_cell2 )に関連しています。一方、影響を受けたパーティションとそのオフセットは強調表示され、これらのログに含まれる値の範囲を解釈しやすくするために数値範囲として表示されます。このエラーが Kafka クラスターの特定のトピックに影響を与えることがわかったので、その情報を使用して調査を正しい方向に進めることができます。

Unify your logs, metrics, and distributed traces with Datadog log management.

ログパターンをドリルダウンする

ログパターン画面を使用すると、詳細なアプリケーションログであふれかえる状況でも、全体像をすばやく確認できるだけでなく、ドリルダウンして詳細を迅速に表示できます。任意のクラスターをクリックすると、そのパターンを示す個々のログエントリを確認できます。

datadog log patterns show that error logs are limited to a single topic

ログパターン画面は、調査と検証の出発点であります。上部のロググループを確認し、任意のログエントリをクリックすると、その特定のエラーメッセージと生成したホストまたはサービスに関する詳細を表示できます。その後、[View in Context]をクリックすると、相関性のあるログから詳細情報を収集できます。

datadog log patterns click on view in context

このボタンをクリックすると、対象の期間内で同じホストとサービスから収集されたすべてのログが Log Explorer 画面で表示されます。簡単に参照できるように、元のログも強調表示されます。

datadog log patterns view in context

問題に関連するコンテキストの詳細を確認するには、ログから APMhost-level metricsのメトリクスなど、他の関連するデータソースへ、直接切り替えることができます。

正常なパターンと異常なパターンを分析して全体像を把握する

ログパターン画面では、システムが正常な状態であるか、異常な状況が発生しているかにかかわらず、システム環境の現在の状態の概要を把握できます。Kafka クラスターが正常な場合、この画面には通常の運用(新しいログセグメントのロールアウトや古いログセグメントの削除など)が表示されます。

datadog log patterns normal kafka cluster operations

クラスター全体で問題が発生するとエラーログが出力されます。ログパターンを使用すると、何が変更されたのかをすばやく把握できます。以下の例は、INFO ログをフィルタリングし、そのログのサブセットのパターンを計算して、インシデントの原因と影響を再確認しています。

datadog log patterns view in context

これらのパターンから、ログにいくつかの問題が記録されていることがわかります。そして、どのイベントが一連の問題の原因となったのか仮説を立てることができます。上記の例では、 Kafka ブローカーに致命的なエラーが生じ、何度か再起動しています。これにより、クラスター内で新しいリーダーが選出され、破損したインデックスに関する警告が表示されています(ブローカーが強制シャットダウンされた後に、再起動したことを示す別の兆候)。リーダーの交代をクラスターに正しく通知する前に、古いリーダーへメッセージを送信しようとしたためにエラーが発生しました。

ログパターン画面では、1 つの画面で分散システム全体における複雑な一連のイベントがわかりやすく表示されますので、論理的に調査を開始できます。この場合には、致命的なエラーが発生したブローカーの状態を確認し、ブローカーを置換する必要があります。

ログ管理設定を調整する

ログパターン画面では、大量のログから重要な情報を取り出して表示できるだけでなく、重要度の低いログを識別することで、必要なすべてのデータへ確実にアクセスできるようにしながら、Datadog を使用してインデックスを作成して監視するログの数を減らすこともできます。

クラスターは発生頻度でソートされるため、最も多いログを生成しているサービスを確認できます。高頻度で発生するログパターンのうち、有用な情報でないと判断した場合、除外フィルタを追加して、これらのログのインデックスを作成しないようにできます。

ログパターン画面では、一般的に生成されるログの構造を確認できます。このためには、監視するデータを取得するようにパイプラインが正しく構成されていることを確認します。以下の例は、Tornado のアクセスログパターンの 1 つを調べています。強調表示されているフィールド(URL パスおよび要求処理時間)は、このパターンを示すアクセスログ間で異なるデータを表示します。この変化を使用して経時的な傾向を視覚化するために、(例:特定の URL パスへのリクエストの処理時間が増減したかどうかを確認する)これら 2 つのフィールドを属性として解析し処理する必要があります。

datadog log patterns view in context

このクラスターでこれらのログのいずれかを調べると、まだ属性を解析していないことがわかります。

datadog log patterns inspect tornado access log for missing attributes

これらのログから情報の取得を開始するには、パーサーを追加または変更してログ処理パイプラインを更新します。これらのフィールドが正しく解析されて属性に変換されると、ダッシュボードやアラートで使用できるようになります。

ログパターンの活用

Datadog を使用してすべてのログを収集、処理、およびアーカイブしている場合は、ログパターン画面を活用することで、システムに関する有用な情報をすばやく取得できます。Datadog のログ管理を試したことがない場合は、アカウントの Log タブに移動してご使用ください。まだ Datadog を使用していない場合は、14 日間の無料トライアルにサインアップしてログパターン画面でログデータをすばやく把握し、問題を効果的に調査する方法をぜひご確認ください。