Splunk Log Observer

20 分
ペルソナ

引き続き バックエンド開発者 の役割で、アプリケーションのログを調査して問題の原因を特定する必要があります。

APM トレースに関連するコンテンツ(ログ)を使用して、Splunk Log Observer を使用して問題を正確に理解するために、深掘りをしていきます。

Related Content は、1つのコンポーネントから別のコンポーネントにジャンプするための強力な機能で、メトリクストレース、および ログ に対して利用できます。

Last Modified 2024/02/15

Splunk Log Observerのサブセクション

1. Log Filtering

Log Observer (LO) は複数の方法で使用できます。クイックツアーでは、LO ノーコードインターフェース を使用してログの特定のエントリを検索しました。ただし、このセクションでは、APM のトレースから LO に移動したと想定しています。

RUM と APM の間のリンクと同じように、前のアクションのコンテキストを引き継いでログを調査することができるのは一つの利点です。今回の場合、時間枠(1)を見てみると、これはトレースが取得された時間帯と一致しています。また、Filter(2)にも、trace_id の情報が既に設定されています。

Trace Logs Trace Logs

このビューには、オンラインブティックでエンドユーザーが実施した操作によって実行されたバックエンドのトランザクションに関わる すべての アプリケーションまたはサービスの すべての ログ行が含まれます。

オンラインブティックのような小さなアプリケーションでも、膨大な量のログが検出され、調査対象となる実際のインシデントに関わる特定のログを見つけ出すのが難しくなる場合があります。

Exercise

ログに含まれるエラーメッセージだけにフォーカスする必要があります。

  • Group By ドロップダウンボックスをクリックして、Severity を検索します。
  • 選択したら、Apply ボタンをクリックします(チャートの凡例が、debug、error、info に変化します)。 legend legend
  • エラーログだけを選択するには、凡例の中の error(1)をクリックして、Add to filter を選択します。
  • 複数のサービスに対するエラーログがある場合は、フィルタにサービス名 sf_service=paymentservice を追加することもできます。今回の場合は不要です。 Error Logs Error Logs

次に、詳細なログエントリを見ていきましょう。

Last Modified 2024/04/05

2. ログエントリの参照

特定のログ行を見る前に、これまでに何を行ってきたかと、オブザーバビリティの3本柱に基づいて、なぜここに辿り着いたのかを簡単に振り返りましょう。

MetricsTracesLogs
問題があるか?問題はどこにあるか?問題は何か?
  • メトリクスを使用して、アプリケーションに問題があることが判明しました。これは、サービスダッシュボードのエラーレートが本来の状態よりも高かったことから明らかです。
  • トレースとスパンタグを使用して、問題がどこにあるかを見つけました。 paymentservicev350.9v350.10 の2つのバージョンで構成されており、 v350.10 に対するエラーレートは 100% でした。
  • バージョン v350.10paymentservice から生成されるエラーがオンラインブティックのチェックアウト処理の応答において、複数回の再試行と長時間の遅延を引き起こしていたことを確認しました。
  • トレースから Related Content の強力な機能を使用して、失敗した paymentservice バージョンのログエントリに到達しました。これにより、問題が 何であるか を特定できるようになりました。
Exercise
  • Logs tables のエラーエントリをクリックします(異なるサービスからのまれなエラーがある場合は、エントリに hostname: "paymentservice-xxxx" と表示されていることを確認してください)。

メッセージを踏まえ、問題を解決するためには開発チームに何を伝える必要がありますか?

開発チームは、有効なAPIトークンを使用してコンテナを再構築およびデプロイするか、 v350.9 にロールバックする必要があります。

Log Message Log Message

  • ログメッセージペインの X をクリックして閉じます。
おめでとうございます

Splunk Observability Cloud を使用することで、オンラインブティックでのショッピング中にユーザーエクスペリエンスが悪かった原因を理解することができました。オブザーバビリティの3本柱である メトリクストレースログ に基づいて、RUM、APM、およびログを利用することで、サービス全体で何が起こっており、その後、その根底にある原因を見つけることができました。

また、Splunkが提供する、アプリケーションの振る舞いのパターンを検出する Tag Spotlight によるインテリジェントなタグ付けと分析の機能や、問題のコンテキストを維持しながら異なるコンポーネント間を素早く移動する Related Contents によりスタック全体を相関させる機能についても、その使い方を理解したはずです。

ワークショップの次のパートでは、問題の特定から緩和予防、およびプロセスの改善に進んでいきます。

次に、カスタムダッシュボードでログチャートを作成します。

Last Modified 2024/04/05

3. Log Timeline Chart

Log Observer である固定のビューを持っておくと、ダッシュボードの中でそのビューを活用し、将来的に問題の検出と解決にかかる時間を削減することができるでしょう。ワークショップの一環として、これらのチャートを使用するカスタムダッシュボードの例を作成します。

まず、Log Timeline チャートの作成を見てみましょう。Log Timeline チャートは、時間の経過とともにログメッセージを表示するために使用されます。これはログメッセージの頻度を確認し、パターンを識別するのに適した表現方法です。また、環境全体でのログメッセージの出力傾向を確認するのにも適しています。これらのチャートはカスタムダッシュボードに保存できます。

Exercise

まず、表示するログの列を必要なものに絞り込みます。

  • Logs table 上の Configure Table アイコンをクリックして Table Settings を開きます。 _raw のチェックを外し、k8s.pod_name, message, version のフィールドが選択されていることを確認します。 Log Table Settings Log Table Settings
  • 固定の時間が入っている時間枠の設定を外し、 Last 15 minutes を設定します。
  • すべてのトレースに対してログ参照ができるように、フィルタ設定から trace_id を削除し、 sf_service=paymentservice および sf_environment=[WORKSHOPNAME] フィールドを追加します。
  • Save をクリックし、Save to Dashboard を選択します。 save it save it
  • チャート作成に関するダイアログが表示されます。Chart nameLog Timeline を入力します。
  • 次に、Select Dashboard をクリックします。ダッシュボード選択のダイアログでは New dashboard をクリックします。
  • New dashboard ダイアログで、新しいダッシュボードの名前を入力します(Description 欄は入力不要です)。名前には以下を使用します: <受講者のイニシャル> - Service Health Dashboard と入力し、 Save をクリックします。
  • 新しいダッシュボードがリストでハイライト表示されていることを確認し(1)、 OK をクリックします(2)。 Save dashboard Save dashboard
  • Chart Type として Log Timeline が選択されていることを確認します。 log timeline log timeline
  • 最後に Save ボタンをクリックします(この時点で Save and goto dashboard をクリックしないでください)。

次に、Log View チャートを作成します。

Last Modified 2024/04/05

4. Log View Chart

次に、ログに関するチャートタイプである Log View チャートタイプを見ていきます。このチャートを使用すると、事前に定義しておいたフィルタに基づいてログメッセージを表示できます。

前の Log Timeline チャートと同様に、Log View のチャートを Customer Health Service Dashboard に追加します。

Exercise
  • 前の演習完了後、Log Observer 画面が表示されていることを確認してください。
  • フィルタ設定は前の演習と同じです。表示する時間枠を Last 15 minutes に設定し、severity=errorsf_service=paymentservice および sf_environment=[WORKSHOPNAME] でフィルタリングしているはずです。
  • Log Views のヘッダーについても、前の演習で設定したフィールドのみが選択されていることを確認してください。
  • 再び Save をクリックしてから Save to Dashboard をクリックします。
  • これにより、改めて、チャート作成ダイアログが提供されます。
  • Chart nameLog View を入力します。
  • 今回は Select Dashboard をクリックし、前回の演習で作成したダッシュボードを検索します。検索ボックスにご自身のイニシャルを入力することで見つけることができるでしょう。(1)。 search dashboard search dashboard
  • ダッシュボード名をクリックしてハイライト表示し(2)、 OK をクリックします(3)。
  • これで、チャート作成ダイアログに戻ります。
  • Chart Type として Log View が選択されていることを確認してください。 log view log view
  • 次に、Save and go to dashboard をクリックしてダッシュボードを表示します。
  • 結果的に、以下のようなダッシュボードが表示されるはずです。 Custom Dashboard Custom Dashboard
  • この演習の最後のステップとして、ダッシュボードをワークショップのチームページに追加しましょう。ワークショップ中に後からダッシュボードを探すのが簡単になるはずです。
  • ページの上部で、ダッシュボード名の左にある をクリックします(1)。 linking linking
  • ドロップダウンから Link to teams を選択します(2)。
  • 次に表示される Link to teams ダイアログで、インストラクターが提供したワークショップのチームを見つけ、 Done をクリックします。

次のセッションでは、Splunk Synthetics を見て、Web ベースのアプリケーションのテストを自動化する方法を見ていきます。