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

このドキュメントでは、カスタム ダッシュボードにログデータとエラーデータを表示する方法について説明します。

ログデータを表示するには、次のウィジェットをダッシュボードに追加します。

  • 現在の Google Cloud プロジェクトの最新のログエントリを表示するには、ログパネル ウィジェットを追加します。現在の指標スコープでアクセス可能な Google Cloud プロジェクトに格納されているログエントリを表示するようにログパネルを構成することもできます。

  • ログデータのパターンと傾向を確認するには、SQL クエリの結果を表示するログ分析グラフ ウィジェットを追加します。

エラーグループを表示するには、Error Reporting パネルを追加します。Error Reporting パネルには、1 つの Google Cloud プロジェクトの最新のエラーグループが表示されます。

カスタム ダッシュボードにログパネルと Error Reporting パネルを追加すると、指標と同じコンテキストでログとエラーを表示できます。ログパネルを使用するとログエントリをフィルタリングできるため、関心のあるログエントリのみを表示するように構成できます。同様に、Error Reporting パネルを使用してエラーを特定し、エラーの原因をトラブルシューティングできます。

ログ エクスプローラとログパネル

ログ エクスプローラは、ログを調査するための標準的な方法です。ログパネルはログ エクスプローラに代わるものではなく、指標と同じコンテキストでログエントリを表示する方法を提供します。

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

ログパネルの 2 つのログエントリの画像。

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

ログパネルは、現在の Google Cloud プロジェクトに保存されているログエントリを表示するように事前構成されています。ただし、現在の指標スコープの任意のプロジェクトに保存されているログエントリを表示するようにログパネルを構成できます。

ログパネルは、ログ エクスプローラと同じクエリ言語をサポートしています。

ログパネルはストレージ ビューをサポートしていません。ストレージ ビューからのみログにアクセスできる場合は、ログ エクスプローラを使用します。ストレージ ビューの詳細については、範囲を絞り込むをご覧ください。

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

準備

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

    • モニタリング編集者roles/monitoring.editor
    • ログエントリを表示する各プロジェクトに対する、ロギング閲覧者(roles/logging.viewer)。ダッシュボードには、ログを表示する権限がないプロジェクトのログエントリは表示されません。ログエントリを表示するために必要なロールの詳細については、IAM を使用した Cloud Logging アクセス制御をご覧ください。

    ロールの付与の詳細については、アクセスの管理をご覧ください。

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

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

[Add and configure logs] パネル

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

ログパネルを追加する

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

  1. Google Cloud コンソールのナビゲーション パネルで、[Monitoring] を選択してから、 [ダッシュボード] を選択します。

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

  2. ダッシュボードを選択するか、[ダッシュボードを作成] をクリックします。
  3. ツールバーで [ウィジェットを追加] をクリックします。
  4. [ウィジェットを追加] ダイアログで、 [ログ] を選択します。
  5. 省略可: デフォルト構成を更新します。

    1. タイトルを追加します。

    2. 複数の Google Cloud プロジェクトのログを表示するには、現在のプロジェクトのみではなく、 [プロジェクト] をクリックして選択します。

    3. ログパネルに表示するログを制限するには、[クエリエディタ] フィールドにクエリを入力します。

    前の手順の詳細については、ログパネルを構成するをご覧ください。

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

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

デフォルトでは、ログパネルにログエントリのテーブルが表示されます。[重大度] メニューとフィルタバー設定を使用して、表示するログを一時的に変更できます。ポインタを使用してログパネルのサイズと位置を変更することもできます。

ログパネルを構成する

ログパネルは、現在の Google Cloud プロジェクトに保存されているすべてのログエントリを表示するように事前構成されています。ただし、一部のエラー条件タイプを示すログエントリのみを対象とする場合や、複数のプロジェクトのログを表示する場合があります。このセクションでは、ログパネルのデフォルト構成を変更する方法について説明します。

タイトル、ログが表示されるプロジェクトのリストの構成、またはクエリの入力は、次の手順で行います。

  1. ログパネルの上にポインタを置いてツールバーを有効にし、 [ウィジェットを編集] を選択します。

    次のスクリーンショットは、構成ペインの例です。

    ログパネルの構成ペインの例。

  2. 省略可: ログパネルに表示されるタイトルを追加します。

  3. 省略可: 複数の Google Cloud プロジェクトのログを表示するには、 [プロジェクト] をクリックして選択します。

    デフォルトでは、現在の Google Cloud プロジェクトのログエントリのみが表示されます。ただし、ログパネルには、現在の指標スコープを通じてアクセス可能な Google Cloud プロジェクトのログを表示できます。

    Google Cloud プロジェクトのログを表示する権限がない場合、[プロジェクト] メニューに「このプロジェクトのログを表示する権限がありません。」と表示されます。権限エラーを解決するには、システム管理者に連絡して、プロジェクトに対するログ閲覧者roles/logging.viewer)のロールを付与するよう依頼してください。

  4. 省略可: ログパネルに表示するログを制限するには、[Query Editor] フィールドにクエリを入力します。

    クエリの自動実行を無効にした場合は、クエリを入力した後、[クエリを実行] をクリックします。

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

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

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

    個々のリソースを選択すると、[リソース] メニューで追加のメニューと [追加] ボタンが有効になります。このメニューでは、リソースタイプ、特定のリソースタイプのサービス、リソースタイプのサービスのメソッドを選択できます。たとえば、監査対象リソースタイプに句を追加するには、[監査対象リソース] を選択し、[追加] を選択します。この手順では、[Query Editor] フィールドに次の句を追加します。

     resource.type="audited_resource"
    

    同様に、監査対象の特定のサービスの句を追加するには、[監査対象リソース] を選択し、[すべてのサービス] メニューからサービスを選択して、[追加] を選択します。このアプローチを使用して作成される句の例を次に示します。

     resource.type="audited_resource" resource.labels.service="bigquery.googleapis.com"
    
  5. 省略可: ログパネルにテンプレート変数を適用します。詳細については、カスタム ダッシュボードに一時フィルタを追加するウィジェットに永続フィルタを適用するをご覧ください。

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

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

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

ログパネルに表示されるログエントリを変更するには、次のフィールドまたはメニューの値を変更します。

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

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

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

  • ログパネルで指定されたクエリ: クエリ フィールドによって、取得するログが決まります。クエリを指定しない場合、選択した時間間隔内のすべてのログが取得されます。クエリを指定すると、ログパネルにクエリを表示アイコンが表示され、現在のクエリがツールチップとして表示されます。

    クエリを変更するには、次のいずれかを行います。

    • クエリを永続的に変更するには、ログパネルを編集します。
    • クエリを一時的に変更するには、ダッシュボードのツールバーを使用してリソースラベルにフィルタを追加します。たとえば、ダッシュボード全体のフィルタ cluster_name: myclusterを追加すると、クエリが更新され resource.labels."cluster_name"="mycluster" が含まれます。詳細については、一時フィルタの追加永続フィルタの追加をご覧ください。
  • ログパネルで指定された Google Cloud プロジェクト: この設定を変更するには、ログパネルを編集します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

構成例

次のような構成例があります。

  • 最新のログを表示するには、ダッシュボードのツールバーを [1 時間] に設定し、[クエリエディタ] フィールドは空のままにして、[ログパネル] フィールドはデフォルト値のままにします。

  • 重大度レベルが少なくとも「警告」のログのみを表示するには、ログパネルの [重大度] メニューで [警告] を選択します。

    ページを更新するかダッシュボードを離れると、ログパネルの [重大度] メニューの値が [デフォルト] にリセットされます。

  • 重大度が「Warning」のログのみを表示するようにログパネルを構成するには、[Query Editor] フィールドに句 severity=WARNING を追加します。

    [Query Editor] フィールドに保存されたクエリが保存されます。ページを更新したりダッシュボードを再読み込みしたりしても、ログパネルには指定した警告レベルに一致するログのみが表示されます。

  • Compute Engine インスタンスのログのみを表示するようにログパネルを構成するには、[Query Editor] フィールドに resource.type="gce_instance" 句を追加します。

現在の設定に一致するログエントリがない場合、「現在のエントリと一致するエントリは見つかりませんでした。」というメッセージが表示されます。[Query Editor] フィールドでクエリを構成し、ログパネル フィルタも設定すると、設定が競合する可能性があります。詳しくは、ログパネルに「エントリが見つかりません」というメッセージが表示されるをご覧ください。

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

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

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

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

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

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

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

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

  1. Google Cloud コンソールのナビゲーション パネルで、[Monitoring] を選択してから、 [ダッシュボード] を選択します。

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

  2. ダッシュボードを選択するか、[ダッシュボードを作成] をクリックします。
  3. ツールバーで [ウィジェットを追加] をクリックします。
  4. [ウィジェットを追加] ダイアログで、[データ] セクションに移動して [ログ分析] を選択します。
  5. [ウィジェットを構成] パネルで SQL を使用してクエリを作成し、グラフに表示するデータを構成して [クエリを実行] をクリックします。
  6. 省略可: [結果] タブで、[ディスプレイ] パネルを使用してグラフ構成をカスタマイズします。

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

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

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

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

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

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

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

Error Reporting パネルを追加する

このセクションでは、Google Cloud コンソールを使用して Error Reporting パネルを追加して構成する方法について説明します。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. 変更したダッシュボードを保存するには、ツールバーで [保存] をクリックします。

トラブルシューティング

次のステップ