カスタム ダッシュボードにログとエラーを表示する

このドキュメントでは、カスタム ダッシュボードに追加して、指標データと同じコンテキストでログデータとエラーデータを表示できるウィジェットについて説明します。ログパネル ウィジェットにはログエントリが表示されます。Error Reporting パネル ウィジェットには、最新のエラーグループが表示されます。どちらのウィジェットも、トラブルシューティングに役立つ情報を提供します。 SQL クエリの結果を表示する ログ分析グラフ ウィジェットを使用すると、ログデータの傾向を特定できます。

ログ エクスプローラとログパネル ウィジェット

ログ エクスプローラは、ログを調査するための標準的な方法です。ダッシュボードにログパネル ウィジェットを追加しても、ログ エクスプローラの使用方法は変わりません。ログパネル ウィジェットはカスタム ダッシュボードに追加できるため、指標と同じコンテキストでログエントリを表示できます。

ログ エクスプローラとログパネル ウィジェットは同じクエリ言語をサポートしており、どちらも表示権限のあるログエントリのみを表示します。保存されているログエントリを表示できるかどうかは、ログエントリを保存するリソースに対する Identity and Access Management(IAM)ロールによって決まります。

ログ エクスプローラとログパネル ウィジェットはどちらも、デフォルトのログスコープにリストされているリソースでログエントリを検索するように事前構成されています。そのスコープにアクセスできない場合は、選択したプロジェクトに由来するログエントリを検索します。プロジェクトを選択すると、検索結果には、別のプロジェクトのシンクによってプロジェクトに転送され、その後ログバケットに保存されるログエントリが含まれます。ログエントリが検索されるリソースを構成できます。たとえば、ログビューでログエントリを検索できます。

ログパネル ウィジェットには、重大度、タイムスタンプ、ログエントリの概要の列を含む行にログエントリが 1 つ表示されます。ログエントリの JSON 形式表現を表示するには、[ログの詳細を表示] ボタンをクリックします。各エントリ概要の構造は、ログタイプによって異なります。たとえば、次の例では 2 つのログエントリを示します。

ログパネル ウィジェットでの 2 つのログエントリの画像。

上図では、最初のログエントリにサービス リクエストに関する情報が表示されています。概要には、サービス、メールアドレス、エントリの JSON 構造の文字列形式のバージョンに関する情報が表示されます。2 番目のエントリには、リクエストの結果が表示され、発生したアクションの概要が 1 文だけで表示されます。

Cloud Logging の一般的な情報については、次のリソースをご覧ください。

始める前に

Google Cloud コンソールを使用してカスタム ダッシュボードにログパネル ウィジェットを追加するために必要な権限を取得し、プロジェクトまたはログビューでログエントリを表示するように構成するには、次の IAM ロールを付与するよう管理者に依頼してください。

  • プロジェクトに対するモニタリング編集者roles/monitoring.editor)。
  • ログエントリを表示する各プロジェクトに対するロギング閲覧者roles/logging.viewer)。このロールによってすべてのログエントリに対するアクセス権が付与されるわけではありません。ロールの詳細については、IAM を使用した Cloud Logging アクセス制御をご覧ください。
  • アクセスするログビューのログバケットを保存する各プロジェクトに対するログ表示アクセス者roles/logging.viewAccessor)。ログ表示アクセス者のロールは、プロジェクトによって保存されたすべてのログビューへのアクセス権を付与します。特定のログビューへのアクセス権を付与する方法については、ログビューへのアクセスを制御するをご覧ください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

ダッシュボードにログエントリを表示する

このセクションでは、Google Cloud コンソールを使用してログパネル ウィジェットを追加して構成する方法について説明します。Cloud Monitoring API の使用方法については、LogsPanel ウィジェットを含むダッシュボードをご覧ください。

ダッシュボードには最大で 40 のウィジェットを配置できます。

コンソールを使用してダッシュボードにログパネル ウィジェットを追加するには、次の操作を行います。

  1. Google Cloud コンソールで [ダッシュボード] ページに移動します。

    [ダッシュボード] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. ダッシュボードを選択するか、[ダッシュボードを作成] をクリックします。
  3. ツールバーで [ウィジェットを追加] をクリックします。
  4. [ウィジェットを追加] ダイアログで、 [ログ] を選択します。
  5. 省略可: タイトルを更新するには、[ウィジェットのタイトル] フィールドに新しいタイトルを入力します。
  6. ログエントリの検索対象となるリソースを構成します。

    • プロジェクトで検索するには、[スコープ条件] エントリを [プロジェクト] に設定し、[プロジェクト] エントリを展開してダイアログを完了します。

      [プロジェクト] メニューには、現在の指標スコープ内のすべての Google Cloud プロジェクトが一覧表示されます。メニューのエントリに「このプロジェクトのログを表示するプロジェクト レベルの権限がありません」というテキストが含まれている場合、その Google Cloud プロジェクトで利用できるログエントリを表示するために必要な権限がありません。

      表示されるログエントリには、Google Cloud プロジェクトに由来するログエントリと、別のプロジェクトのシンクによって Google Cloud プロジェクトにルーティングされたエントリが含まれます。

    • ログバケットのログビューを使用してログエントリを検索するには、[スコープ] エントリを [ストレージ] に設定して、[ストレージ ビュー] エントリを展開し、ダイアログに入力します。

      [ストレージ ビュー] メニューには、選択した Google Cloud プロジェクトのログバケットのログビューが一覧表示されます。

      他の Google Cloud プロジェクトのログバケットのログビューを選択するには、メニューで [プロジェクトをインポート] をクリックし、プロジェクトを選択してから 1 つまたは複数のログビューを選択します。 インポートできるのは、現在の指標スコープに含まれているプロジェクトのみです。

    • ログスコープ(プロジェクトやログビューを含む)に含まれるリソースを検索するには、[スコープ条件] エントリを [ログスコープ] に設定し、[ログスコープ] エントリを展開して、ログスコープを選択します。

      ログスコープは公開プレビュー版です。

  7. 省略可: ログパネル ウィジェットに表示するログを制限するには、[クエリエディタ] フィールドを使用します。クエリの自動実行を無効にしている場合は、[クエリを実行] をクリックします。クエリの概要については、クエリの例をご覧ください。

  8. 省略可: ログパネル ウィジェットに変数を適用します。変数は、特定のウィジェットにのみ適用されるダッシュボード レベルのフィルタです。詳細については、ウィジェットに変数を適用するをご覧ください。

  9. 変更をダッシュボードに適用するには、ツールバーで [適用] をクリックします。変更を破棄するには、[キャンセル] をクリックします。

  10. 変更したダッシュボードを保存するには、ツールバーで [保存] をクリックします。

    ログパネル ウィジェットには、ログエントリのテーブルが表示されます。ウィジェットのフィルタバーを使用して、ウィジェットに表示されるログエントリを一時的に変更することもできます。 詳細については、ログエントリをフィルタリングするをご覧ください。

クエリの例

[Query Editor] フィールドに入力するには、フィールドにテキストを入力するか、メニューから選択します。[Query Editor] フィールドでは、ログ エクスプローラと同じクエリ言語を使用します。トラブルシューティング情報については、構文の問題をご覧ください。

[重大度] メニューと [ログ名] メニューでは、複数のオプションを選択できます。複数の重大度レベルと一致するクエリ ステートメントの例を次に示します。

severity=(WARNING OR ERROR OR CRITICAL OR ALERT OR EMERGENCY)

[リソース] メニューでは、リソースでフィルタできます。リソースタイプ([Audited Resource] など)を選択するか、ウィンドウを移動して特定のメソッドを選択できます。

たとえば、監査対象リソースのクエリを追加するには、次の操作を行います。

  1. [リソース] メニューを開きます。
  2. [Audited Resource] を検索して選択します。
  3. [適用] をクリックします。

    この手順では、[クエリエディタ] フィールドに次の句を追加します。

    resource.type="audited_resource"
    

同様に、Cloud Run functions の監査ログのクエリを追加するには、次の操作を行います。

  1. [リソース] メニューを開きます。
  2. [Audited Resource] を検索して選択します。
  3. サービス メニューで [Cloud Functions] を選択します。
  4. [適用] をクリックします。

    この手順では、[クエリエディタ] フィールドに次の句を追加します。

    resource.type="audited_resource" resource.labels.service="cloudfunctions.googleapis.com"
    

ログエントリをフィルタリングする

ログパネル ウィジェットに表示するログエントリは、次のフィールドまたはメニューの値を変更することで変更できます。

  • ダッシュボード タイムセレクタ: ログパネル ウィジェットでは、このフィールドで指定されたインターバルで書き込まれたログエントリのみが取得されます。

  • ログパネル ウィジェットの [フィルタ] フィールド: 指定したフィルタは、クエリの実行後に適用されます。このフィールドの値は、現在のセッションでのみ保持されます。

  • ログパネル ウィジェットの [重大度] メニュー: 重大度によるフィルタは、クエリの実行後に適用されます。このフィールドの値は、現在のセッションでのみ保持されます。

  • ログパネル ウィジェットでのクエリ: ログパネル ウィジェットには、クエリに一致するログエントリのみが表示されます。 クエリを指定しない場合、選択した期間内のすべてのログが表示されます。クエリを指定すると、ログパネル ウィジェットに [クエリを表示] アイコンが表示され、現在のクエリがツールチップとして表示されます。

    クエリを変更するには、ログパネルのウィジェットを編集します。

  • ログパネル ウィジェットの Google Cloud プロジェクト: この設定を変更するには、ログパネル ウィジェットを編集します。

  • ダッシュボード フィルタ: ダッシュボード フィルタが存在する場合、フィルタ設定はログパネル ウィジェットのクエリに適用されます。 たとえば、ダッシュボードのフィルタ cluster_name: mycluster を追加すると、resource.labels."cluster_name"="mycluster" を含むようにクエリが更新されます。ダッシュボード フィルタの詳細については、一時的なフィルタを追加する永続的なフィルタを追加するをご覧ください。

このセクションの残りの部分では、ログエントリをフィルタする方法について説明します。

例: ログエントリを日付でフィルタする

ログパネル ウィジェットに最新のログを表示するには、ダッシュボード ツールバーの時間フィールドを使用します。 たとえば、[1H] を選択します。カスタムの期間を指定しない場合、選択した時間枠より古い場合でも、ウィジェットには最新のログが表示されます。

インシデントを調査する際には、ログエントリを特定の期間内のエントリに限定することをおすすめします。ログエントリを一定期間内のログを表示するように構成するには、次のいずれかまたは両方を行います。

  • 期間セレクタを使用して期間を選択します。
  • 構成ペインの [クエリエディタ] フィールドに timestamp 句を入力し、[フィルタを適用] を選択します。

期間を指定しても、ログパネル ウィジェットは自動更新されません。

例: ログエントリを重大度でフィルタリングする

失敗状況のデバッグのモニタリング中は、エラー メッセージだけを表示し、他のログエントリは表示しないようにすることをおすすめします。特定の重大度レベルを満たすログエントリのみを表示するようにログパネル ウィジェットを構成するには、次のいずれかまたは両方を行います。

  • 一時的なフィルタを適用するには、ログパネル ウィジェットの [重大度] メニューの値を選択します。このメニューでは、最小の重大度レベルを指定します。たとえば、値が「Warning」の場合、重大度が「Error」のログエントリが取得されますが、重大度が「Notice」のログエントリは取得されません。デフォルトでは、このフィールドの値は Default に設定され、すべてのログエントリが含まれます。

    [重大度] メニューの設定は、ダッシュボードから移動すると破棄されます。

  • 永続フィルタを適用するには、構成ペインの [クエリエディタ] フィールドに severity 句を入力し、[フィルタを適用] を選択します。

ログエントリを文字列またはフレーズでフィルタリングする

特定の文字列やフレーズでログエントリをフィルタリングすると、関心のないログエントリは表示されなくなります。たとえば、特定のメールアドレスを含むログエントリを表示するには、そのアドレスでフィルタできます。

  • 一時フィルタを適用して特定の単語やフレーズを含むログエントリのみを表示するには、 [フィルタ] フィールドを使用します。contains-test では大文字と小文字が区別されません。

    複数のフィルタを追加すると、暗黙的な AND が隣接するフィルタの間に挿入されるため、すべてのフィルタに一致するログのみが表示されます。ただし、OR 演算子は明示的に挿入できます。

    • たとえば、フィルタ GetCompute を追加すると、両方の単語を含むログエントリが表示されます。

    • たとえば、フィルタ GetORCompute を追加すると、Get または Compute を含むログエントリが表示されます。

    [フィルタ] フィールドの値は永続的ではありません。

  • 永続フィルタを適用するには、[クエリエディタ] フィールドに保存されたクエリを変更して、[フィルタを適用] を選択します。クエリ構文の詳細については、Logging のクエリ言語をご覧ください。

    たとえば、MESSAGE フィールドに文字列「lamp」が含まれるログエントリだけを表示するには、クエリエディタjsonPayload.MESSAGE:"lamp" 句を追加します。

ログ エクスプローラのログ エントリを表示する

ログパネル ウィジェットにはログエントリの重要なフィールドが表示されますが、完全なログエントリは表示されません。ログエントリのすべてのフィールドを確認するには、次の操作を行います。

  1. ログパネル ウィジェットで、[ログ エクスプローラで表示] を選択します。
  2. ダイアログで、ログ エクスプローラを開く Google Cloud プロジェクトを選択します。

    新しいブラウザタブでログ エクスプローラが開き、ログパネル ウィジェットで選択したフィルタが自動的に適用されます。

  3. 表示するログエントリを選択します。

ログ分析クエリから生成されたグラフを表示する

このセクションでは、ログ分析クエリから生成されたグラフを構成して、カスタム ダッシュボードに保存する方法について説明します。ログ分析では、SQL クエリを使用してログの検索と集計を行い、有用な分析情報を生成できます。

[ログ分析] ページを使用してグラフを構成してダッシュボードに保存するだけでなく、次の操作を行ってログ分析グラフを [Monitoring] に直接保存できます。

  1. Google Cloud コンソールで [ダッシュボード] ページに移動します。

    [ダッシュボード] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. ダッシュボードを選択するか、[ダッシュボードを作成] をクリックします。
  3. ツールバーで [ウィジェットを追加] をクリックします。
  4. [ウィジェットを追加] ダイアログで、[データ] セクションに移動して [ログ分析] を選択します。
  5. [ウィジェットを構成] パネルで表示するデータを構成し、[クエリを実行] をクリックします。

    表示するデータを選択するには、SQL クエリを作成するか、保存済みまたは最近のクエリを選択します。

  6. 省略可: [結果] タブで、[表示] パネルを使用してグラフの構成をカスタマイズします。

    [ディスプレイ] パネルでは、ディメンション、メジャー、内訳を変更してグラフの種類を変更し、グラフ化する行と列をカスタマイズできます。

    • ディメンション: ディメンションは、タイムスタンプ、数値、または文字列の列である必要があります。デフォルトでは、ディメンションはスキーマ内の最初のタイムスタンプ ベース列に設定されます。クエリにタイムスタンプが含まれていない場合は、最初の文字列の列がディメンションとして選択されます。ディメンションは、[グラフ表示] パネルでカスタマイズすることもできます。ディメンションとしてタイムスタンプ列を選択すると、時間の経過とともにデータがどのように変化するかがグラフに示されます。

    • メジャー: [グラフ表示] パネルで複数のメジャーを選択できます。メジャーを選択する場合は、グループ化された値(countsumaveragepercentile-99、など)に実行する集計関数も選択する必要があります。たとえば、count-distinct は所与の列内の一意の値の数を返します。

    • 内訳: 1 つのデータ系列を別の列に基づいて複数のデータ系列に分割するには、内訳を追加します。

    グラフ構成のカスタマイズの詳細については、グラフ構成をカスタマイズするをご覧ください。

  7. 変更したダッシュボードを保存するには、ツールバーで [保存] をクリックします。

ログ分析のグラフは、ダッシュボードに保存した後で編集することもできます。詳細については、ウィジェットの構成を変更するをご覧ください。

ダッシュボードにエラーを表示する

このセクションでは、Google Cloud コンソールを使用してエラー レポート パネルを追加して構成する方法について説明します。Cloud Monitoring API を使用して Error Reporting パネルをダッシュボードに追加する方法については、ErrorReportingPanel ウィジェットを含むダッシュボードをご覧ください。

コンソールを使用してダッシュボードに Error Reporting パネルを追加する手順は次のとおりです。

  1. Google Cloud コンソールで [ダッシュボード] ページに移動します。

    [ダッシュボード] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. ダッシュボードを選択するか、[ダッシュボードを作成] をクリックします。
  3. ツールバーで [ウィジェットを追加] をクリックします。
  4. [ウィジェットを追加] ダイアログで、[可視化] セクションに移動し、[Error Reporting] パネルを選択します。
  5. エラーグループが表示されているプロジェクトを選択し、 [プロジェクト] を展開してから、選択を行います。
  6. 省略可: タイトルを更新します。
  7. 省略可: エラーが表示されるリソースを制限するには、次の操作を行います。

    1. [すべてのリソース] を展開し、リソースを選択します。
    2. リソースを選択したら、[適用] を選択するか、追加のメニューを使用してフィルタ条件を絞り込むことができます。

      • App Engine リソースのエラーを表示するには、[GAE サービス] を選択し、[適用] をクリックします。

      • 特定の App Engine サービスのエラーを表示するには、[GAE サービス] を選択し、サービスを選択して [適用] をクリックします。

  8. 変更をダッシュボードに適用するには、ツールバーで [適用] をクリックします。変更を破棄するには、[キャンセル] をクリックします。

    次の例は、Error Reporting パネルを示しています。

    Error Reporting パネルの構成ペインの例。

  9. 変更したダッシュボードを保存するには、ツールバーで [保存] をクリックします。

トラブルシューティング

次のステップ