基本ログフィルタ

このガイドでは、ログビューアの基本的な表示インターフェースを使用して、ラベルまたはテキスト検索でログエントリをフィルタリングする方法を説明します。

より高度な表示とフィルタリング オプションについては、高度なログフィルタをご覧ください。

ログエントリをエクスポートする方法については、ログのエクスポートをご覧ください。API を使用してログエントリを読み取る方法については、entries.list をご覧ください。SDK を使用してログエントリを読み取る方法については、ログエントリの読み取りをご覧ください。

基本フィルタの使い方

  1. GCP Console で [Stackdriver] > [ロギング] ページの順に移動します。

    ログビューア ページに移動

  2. ページの先頭にある既存の GCP プロジェクトを選択するか、新しいプロジェクトを作成します。

  3. プルダウン メニューを使用して、ログを表示するリソースを選択します。

以下のスクリーンショットは、ログビューアの基本インターフェースです。Compute Engine VM インスタンスの 4 つのログエントリが表示されています。展開矢印(▸)がクリックされ、3 番目のエントリが展開されています。

ログビューア

基本インターフェースの主な構成要素は次のとおりです。一部の要素は高度フィルタ インターフェースにも表示されます。

  1. ウィンドウタブでは、[ログ]、[指標](ログベースの指標をご覧ください)、[エクスポート](ログのエクスポートをご覧ください)、[リソースの使用量] を選択できます。
  2. 基本インターフェースの検索フィルタ ボックスでは、ラベルまたはテキスト検索を使用してログエントリをフィルタリングできます。基本フィルタが表示されますが、端のメニュー(▾)を使用すると、高度なログフィルタのインターフェースに切り替えられます。
  3. 基本セレクタメ ニューでは、表示するリソース、ログ、重大度レベルを選択できます。
  4. 期間セレクタのプルダウン メニューでは、特定の日時でログをフィルタリングできます。
  5. ページの先頭にあるストリーミング セレクタでは、新しいログエントリを受信時に表示するかどうかを制御できます。
  6. [表示設定] メニュー: 右端にあり、その他の表示オプションがあります。
  7. 各ログエントリの前にある展開矢印(▸)を使用すると、エントリの全内容を見ることができます。詳しくは、ログエントリの展開をご覧ください。

基本的な検索の例

基本表示インターフェースで、メニューの上にある検索フィルタ ボックスにテキストを入力し、Enter キーを押します。指定した検索キーワードを含むすべてのログエントリが、任意のフィールド(ただし timestamp を除く)から検索されます。大文字と小文字は区別しません。ログビューアによって検索キーワードの前に追加される text: という単語は、「すべてのフィールド」検索を示します。

以下に、一般的な検索例、実際の動作が予想とは異なる検索例をいくつか示します。

基本的な検索の一般的な例

Unicorn (text:Unicorn)

unicorn を含むすべてのログエントリを、任意のフィールドから検索します。大文字と小文字は区別しません。

unicorn phoenix (text:unicorn text:phoenix)

unicorn または phoenix を含むすべてのログエントリを、同じフィールドまたは異なるフィールドから検索します。両方のキーワードを含むログエントリを検索するには、高度なフィルタ インターフェースを使用します。

"unicorn phoenix" (text:"unicorn phoenix")

unicorn phoenix を含むすべてのログエントリを、同じフィールドから検索します。大文字と小文字は区別せず、区切りスペースを 1 つのみ挿入します。基本インターフェースでは、「同じフィールド内にある unicornphoenix」を検索することはできませんが、高度なフィルタ インターフェースでは可能です。

2345 (text:2345)

文字列 2345 を含むすべてのログエントリを検索します。ログエントリ内の数値は文字列として示されるのが一般的であるため、この文字列は、たとえば 123456 に一致します。

実際の動作が予想とは異なる検索例

uni* (text:uni*)
これはワイルドカード検索ではありません。この場合、4 つの文字列 "uni*" を含むすべてのログエントリが検索されます。ログビューアは正規表現による検索に対応していないため、基本インターフェースと高度なフィルタ インターフェースのいずれも、*? などの特別なワイルドカード文字がありません。
2017-02-05 (text:2017-02-05)
これはログエントリのタイムスタンプに一致しません。この場合、timestamp 以外のいずれかのフィールドに文字列 2017-02-05 が含まれたすべてのログエントリが検索されます。ログエントリのペイロードやその他のフィールドに日付を表す文字列が含まれている場合、それらの文字列を検索することは可能です。検索ボックスの下にある [日付を選択] メニューを使用することもできます。高度なフィルタ インターフェースでは、タイムスタンプの範囲を指定して検索を実行できます。
200..299 (text:200..299)
これは 250 に一致しません。この場合、基本インターフェースでは、8 文字の文字列 "200..299" を含むログエントリが検索されます。このような範囲表記の検索を実行できるのは、整数フィールドに限られます。詳細については、特定のフィールドを検索するをご覧ください。

特定のフィールドを検索する

特定のフィールドだけを検索するには、検索キーワードの前にフィールド名とコロンを指定します。すべてのフィールドの検索では、フィールド名は text: に置き換えられます。検索ボックスに入力すると、条件に一致するフィールドの一覧が表示されます。

基本フィールドでの検索

以下の例では、status: は整数の HTTP ステータス コード、path: はリクエスト内の HTTP パスです。

path:query
大文字と小文字を区別せず、HTTP パスに query を含むログエントリを検索します。例: /query/App/Query/17
path:*
path フィールドを持つログエントリを検索します。ここではアスタリスク(*)が特殊文字として使用されていますが、一般的には特殊文字として扱われません。
status:200
ステータスが 200 のログエントリのみ表示します。この検索では、ステータスが 2000 のものは一致しません。 status は整数フィールドであるため、数値の比較が行われるためです。
status:abc
status は整数であるため、これは無効です。
status:400..499
HTTP ステータスが 400 ~ 499 のログエントリを検索します。範囲を指定できるのは、内容が整数であるとわかっているフィールドだけです。それ以外のフィールドに対して範囲を指定した場合、範囲ではなく . の文字を含む 1 つの文字列とみなされます。
path:query unicorn
path フィールドに query が含まれ、かついずれかのフィールドに unicorn が含まれているログエントリを検索します。unicorn の前にフィールド名の指定がないため、text:unicorn とみなされます。異なるフィールドに対して、または複数のフィールドや text: に対して、複数の検索キーワードを指定した場合、キーワードは暗黙的に AND で結合されます。
path:query path:status
path フィールドに query または status が含まれているログエントリを検索します。1 つのフィールドに対して複数の検索キーワードを指定した場合、キーワードは暗黙的に OR で結合されます。
path:query status:200 path:status status:500..502
パスに query または status が含まれ、かつ status の値が 200、500、501、または 502 であるログエントリを検索します。つまり、OR の結合のほうが AND の結合よりも厳しく、検索キーワードの順序は重要ではありません。

トラブルシューティング

基本表示インターフェースでうまく検索できない理由がわからない場合は、一時的に高度なフィルタ インターフェースに切り替えます。

  1. 検索ボックスの最後にある ▾ メニューで、[高度なフィルタに変換] を選択します。
  2. 高度なフィルタに目的のフィルタがあるか確認します。
  3. ブラウザの [戻る] ボタンを使用して、基本インターフェースに戻ります。

必要なログエントリがすべて表示されない理由は他にもいくつかあります。

  • Stackdriver Logging の保持期間を超過したログエントリは表示されません。有効なログ保持期間については、割り当てポリシーをご覧ください。

  • 負荷が高くなっている場合、Stackdriver Logging へのログの送信やログの受信と表示に遅延が生じることがあります。

  • タイムスタンプを持つログエントリは、現在の時刻がタイムスタンプに「追いつく」までログビューアに表示されません。これは異常な状況です。おそらく、ログを送信しているアプリケーションの時間のずれが原因です。

フィードバックを送信...