このドキュメントでは、転送と保存に関する一般的な問題と、Trusted Cloud コンソールを使用して構成の誤りや予期しない結果を表示する方法、トラブルシューティングする方法について説明します。
ログデータの表示に関する一般的な情報については、シンクのエクスポート先のログを表示するをご覧ください。
ログ転送のトラブルシューティング
このセクションでは、ログエントリの転送時に発生する一般的な問題のトラブルシューティング方法について説明します。
宛先に不要なログエントリが含まれている
宛先に転送されたログエントリを表示したところ、宛先に不要なログエントリが含まれていました。
この状態を解決するには、ログエントリを宛先に転送するシンクの除外フィルタを更新します。除外フィルタを使用すると、選択したログエントリが宛先に転送されなくなります。
たとえば、組織内のログエントリを宛先に転送する集約シンクを作成するとします。特定のプロジェクトのログエントリを宛先に転送しない場合は、次の除外フィルタをシンクに追加します。
logName:projects/PROJECT_ID
論理 OR 演算子を使用して logName
句を結合することで、複数のプロジェクトのログを除外することもできます。
宛先にログエントリがない
シンク関連の最もよくある問題は、シンクの宛先にログエントリがないように見えることです。
エラーが生成されていないものの、宛先でログエントリにアクセスしようとすると使用できないことがあります。シンクがログエントリを正しく転送していない可能性がある場合は、シンクのシステム ログベースの指標を確認します。
exports/byte_count
: 転送されたログエントリのバイト数。exports/log_entry_count
: 転送されたログエントリの数。exports/error_count
: 転送できなかったログエントリの数。
指標には、シンク名と宛先名でカウントを記録するラベルがあるため、シンクがログエントリを正常に転送しているかどうかがわかります。
シンクの指標が、シンクが想定どおりに機能していないことを示している場合、考えられる理由と対処方法は次のとおりです。
レイテンシ
シンクを作成または更新してから一致するログエントリが受信されていません。新しいログエントリのみが転送されます。
1 時間ほど待ってから、もう一度宛先を確認してください。
一致するログエントリの到着が遅れています。
宛先でログエントリが表示されるまでに時間がかかることがあります。数時間後にもう一度宛先を確認してください。
スコープやフィルタが正しく表示されない
ログバケットに保存されているログエントリの表示に使用しているスコープが間違っています。
次のように、1 つ以上のログビューに検索範囲を限定します。
ログ エクスプローラを使用している場合は、[範囲を絞り込む] ボタンを使用します。
gcloud CLI を使用している場合は、
gcloud logging read
コマンドを使用して--view=AllLogs
フラグを追加します。
シンクのエクスポート先でデータを選択して表示するために使用する期間が短すぎます。
シンクの宛先のデータを選択する際に使用する期間を広げてみてください。
シンクフィルタのエラー
シンクのフィルタが間違っていて、宛先に表示されるはずのログエントリをキャプチャしていません。
Trusted Cloud コンソールで、[ログルーター] を使用してシンクのフィルタを編集します。正しいフィルタが入力されていることを確認するには、[シンクを編集] パネルで [ログをプレビュー] を選択します。これにより、フィルタが事前に入力された状態で、ログ エクスプローラが新しいタブで開きます。シンクの表示と管理の手順については、シンクを管理するをご覧ください。
エラーを確認する
サポートされているシンクの宛先ごとに、Logging は不適切な構成のシンクのエラー メッセージを返します。
シンク関連のエラーを表示するには、いくつかの方法があります。これらの方法については、次のセクションで説明します。
- シンク用に生成されたエラーログを表示する。
- シンクエラーの通知をメールで受信する。このメールの送信者は
logging-noreply@google.com
です。
エラーログ
シンク関連のエラーを詳細に検査する場合、シンクによって生成されたエラー ログエントリを表示することをおすすめします。ログエントリの表示の詳細については、ログ エクスプローラを使用してログを表示するをご覧ください。
ログ エクスプローラのクエリエディタ ペインで次のクエリを使用して、シンクのエラーログを確認できます。Logging API と gcloud CLI でも同じクエリが機能します。
クエリをコピーする前に、変数 SINK_NAME をトラブルシューティングするシンクの名前に置き換えます。シンクの名前は、 Trusted Cloud コンソールの [ログルーター] ページで確認できます。
logName:"logging.googleapis.com%2Fsink_error"
resource.type="logging_sink"
resource.labels.name="SINK_NAME"
たとえば、シンクの名前が my-sink-123
の場合、ログエントリは次のようになります。
{
errorGroups: [
0: {
id: "COXu96aNws6BiQE"
}]
insertId: "170up6jan"
labels: {
activity_type_name: "LoggingSinkConfigErrorV2"
destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
error_code: "topic_not_found"
error_detail: ""
sink_id: "my-sink-123"
}
logName: "projects/my-project/logs/logging.googleapis.com%2Fsink_error"
receiveTimestamp: "2024-07-11T14:41:42.578823830Z"
resource: {
labels: {
destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
name: "my-sink-123"
project_id: "my-project"
}
type: "logging_sink"
}
severity: "ERROR"
textPayload: "Cloud Logging sink configuration error in my-project, sink my-sink-123: topic_not_found ()"
timestamp: "2024-07-11T14:41:41.296157014Z"
}
LogEntry
フィールド labels
とそのネストされた Key-Value 情報は、シンクのエラーソースの特定に役立ちます。これには、影響を受けるリソース、影響を受けるシンク、エラーコードが含まれます。labels.error_code
フィールドにはエラーの簡単な説明が含まれているので、シンクのどのコンポーネントを再構成する必要があるかがわかります。
このエラーを解決するには、シンクを編集します。たとえば、[ログルーター] ページを使用してシンクを編集できます。
メール通知
重要な連絡先は、 Trusted Cloud プロジェクトまたはその親リソースの技術通知カテゴリに割り当てられた連絡先に、シンク構成エラーのメール通知を送信します。リソースに技術通知の連絡先が構成されていない場合、そのリソースの IAM プロジェクト オーナー roles/owner
として示されているユーザーがメール通知を受け取ります。
このメールには次の情報が含まれます。
- リソース ID: シンクが構成されている Trusted Cloud プロジェクトまたは他のTrusted Cloud リソースの名前。
- シンク名: 構成エラーを含むシンクの名前。
- シンクの宛先: シンクの転送先のフルパス。例:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
- エラーコード: エラーカテゴリの簡単な説明。例:
topic_not_found
- エラーの詳細: エラーに関する詳細情報(根本的なエラーのトラブルシューティングに関する推奨事項など)。
このメールの送信者は logging-noreply@google.com
です。
シンクを表示して管理するには、[ログルーター] ページを使用します。
リソースに適用されるシンク構成エラーが、Cloud Logging sink configuration error
としてリストに表示されます。各エラーには、障害のあるシンクによって生成された、いずれかのログエントリへのリンクが含まれます。根本的なエラーを詳しく調べるには、エラーログをご覧ください。
シンクエラーの種類
以下のセクションでは、シンク関連のエラーのさまざまなカテゴリとそのトラブルシューティング方法について説明します。
正しくない宛先
シンクを設定した後、Logging がログエントリを転送しようとしたときに宛先が見つからないという構成エラーが表示される場合は、次の理由が考えられます。
シンクの構成に、指定したシンクの宛先でのスペルミスやその他のフォーマット エラーが含まれています。
既存の宛先を適切に指定するには、シンクの構成を更新する必要があります。
指定した宛先が削除された可能性があります。
別の既存の宛先を使用するか、同じ名前で宛先を再作成するようにシンクの構成を変更できます。
このような種類の問題を解決するには、シンクを編集します。たとえば、[ログルーター] ページを使用してシンクを編集できます。
シンクは、宛先が検出されるとログエントリの転送を開始し、フィルタに一致する新しいログエントリが Logging で受信されます。
シンクの問題の管理
シンクを無効にして、ログバケットへのログエントリの保存を停止してもログエントリが転送されている場合は、シンクへの変更が適用されるまで数分待ちます。
権限に関する問題
シンクがログエントリを転送しようとしたときに、シンクの宛先に適切な IAM 権限がない場合、シンクがエラーを報告します。これにより、ログエントリを確認して、そのエントリをスキップできます。
シンクを作成するときは、シンクのサービス アカウントに適切な宛先の権限が付与されている必要があります。 Trusted Cloud コンソールで同じTrusted Cloud プロジェクトのシンクを作成すると、通常、 Trusted Cloud コンソールによってこれらの権限が自動的に割り当てられます。別のTrusted Cloud プロジェクトでシンクを作成するか、gcloud CLI や Logging API を使用してシンクを作成する場合は、権限を手動で構成する必要があります。
シンクの権限関連のエラーが発生した場合は、必要な権限を追加するか、別の宛先を使用するようにシンクを更新します。これらの権限を更新する方法については、宛先の権限をご覧ください。
シンクを作成してから、シンクの新しいサービス アカウントを使用して宛先への書き込みを許可するまで、若干の遅延が発生します。権限が修正され、フィルタに一致する新しいログエントリが Logging によって受信されると、シンクはログエントリの転送を開始します。
組織のポリシーに関する問題
ログエントリを転送しようとしたときに、Logging がシンクの宛先への書き込みを制限する組織のポリシーが存在する場合、シンクは選択した宛先に転送できず、エラーを報告します。
組織のポリシーに関連するエラーが表示された場合は、次の操作を行います。
宛先の組織のポリシーを更新して、シンクによるログエントリの転送をブロックする制約を削除します。これは、組織のポリシーを更新するために適切な権限があることを前提とします。
リソース ロケーションの制限(
constraints/gcp.resourceLocations
)が存在するかどうかを確認します。この制約により、データが保存できるロケーションが決まります。また、一部のサービスは、ログシンクに影響する可能性のある制約をサポートしています。たとえば、Pub/Sub の宛先を選択する際に適用される制限事項がいくつかあります。適用される可能性のある制約の一覧については、組織のポリシーの制約をご覧ください。手順については、ポリシーの作成と編集をご覧ください。
組織のポリシーを更新できない場合は、[ログルーター] ページでシンクを更新して、ポリシーに準拠した宛先を使用します。
組織のポリシーがシンクによる宛先への書き込みをブロックしなくなり、フィルタに一致する新しいログエントリが Logging によって受信されると、シンクはログエントリの転送を開始します。
暗号鍵に関する問題
Cloud Key Management Service で管理されている、またはユーザーによって管理されている鍵を使用してシンクの宛先でデータを暗号化している場合は、関連するエラーが表示される可能性があります。以下では、考えられる問題と解決方法について説明します。
Cloud KMS 鍵が見つからない。
データを暗号化するように構成された Cloud KMS 鍵を含む Trusted Cloud プロジェクトが見つかりません。
既存のTrusted Cloud プロジェクトに含まれている有効な Cloud KMS 鍵を使用してください。
Cloud KMS 鍵のロケーションが、宛先のロケーションと一致しない。
Cloud KMS 鍵を含む Trusted Cloud プロジェクトが宛先のリージョンとは異なるリージョンにある場合、暗号化は失敗し、シンクの宛先にデータは転送されません。
リージョンがシンクの宛先と一致する Trusted Cloud プロジェクトに含まれる Cloud KMS 鍵を使用します。
暗号鍵によるシンクのサービス アカウントへのアクセスが拒否された。
シンクが正しいサービス アカウント権限を指定して正常に作成された場合でも、シンクの宛先がサービス アカウントにデータの暗号化または復号を行うための十分な権限を付与しない暗号鍵を使用している場合に、このエラー メッセージが表示されます。
宛先で使用される鍵について、シンクの
writerIdentity
フィールドで指定されたサービス アカウントに Cloud KMS 暗号鍵の暗号化 / 復号のロールを付与します。また、Cloud KMS API が有効になっていることを確認してください。
割り当ての問題
シンクがログエントリを書き込むと、宛先に固有の割り当てが、シンクが作成されたTrusted Cloud プロジェクトに適用されます。割り当ての上限に達すると、シンクは宛先へのログエントリの転送を停止します。
たとえば、シンクが多すぎるログエントリを短時間で転送している可能性があります。
割り当ての上限に達した問題を解決するには、シンクのフィルタを更新してログエントリの数を減らすことで、転送されるログデータの量を減らします。その場合、フィルタの sample
関数を使用して、ログエントリの総数の割合を選択します。
割り当てが使用可能な場合、シンクはログエントリをシンクの宛先に転送します。
ログエントリを転送する際に適用される上限の詳細については、適切な宛先の割り当て情報をご覧ください。
一般的なシンクエラーのタイプに加えて、宛先固有の最も一般的なエラータイプとその修正方法は次のとおりです。
Cloud Logging バケットへの転送エラー
シンクで除外したログエントリがログ エクスプローラで表示されることがあります。次のいずれかの条件が満たされている場合、これらのログエントリが引き続き表示されます。
ログエントリが生成された Trusted Cloud プロジェクトでクエリを実行している。
これを修正するには、正しいTrusted Cloud プロジェクトでクエリを実行していることを確認します。
除外されたログエントリが複数のログバケットに送信された。除外するつもりだった同じログのコピーが表示される。
この問題を修正するには、[ログルーター] ページでシンクを調べて、他のシンクのフィルタにログエントリが含まれていないことを確認します。
ログエントリが送信されたログバケット内のビューへのアクセス権がある。この場合、デフォルトでこれらのログエントリが表示されます。
ログ エクスプローラにこれらのログエントリが表示されないようにするには、ソースの Trusted Cloud プロジェクトまたはバケットに検索範囲を絞り込みます。
ログの保存に関するトラブルシューティング
このバケットを削除できません。なぜですか?
バケットを削除するには、次の操作を行います。
バケットの削除に適切な権限があることを確認します。必要な権限のリストについては、IAM によるアクセス制御をご覧ください。
バケットの属性を一覧表示して、バケットがロックされているかどうかを確認します。バケットがロックされている場合は、バケットの保持期間を確認します。ロックされたバケットを削除するには、そのバケット内のすべてのログがバケットの保持期間を満たしている必要があります。
どのサービス アカウントがバケットにログを転送するのですか?
ログをバケットに転送する IAM 権限がサービス アカウントにあるかどうかを確認するには、次の操作を行います。
-
Trusted Cloud コンソールで [IAM] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「IAM と管理」の結果を選択します。
[権限] タブで、ロール別に表示します。Trusted Cloud プロジェクトに関連付けられたすべての IAM ロールとプリンシパルを含む表が表示されます。
表の [フィルタ] テキスト ボックス filter_list に「ログバケット書き込み」と入力します。
ログバケット書き込みのロールを持つプリンシパルが表示されます。プリンシパルがサービス アカウントの場合、その ID には文字列
s3ns-system.iam.gserviceaccount.com
が含まれます。省略可: Trusted Cloud プロジェクトにログを転送できないようにサービス アカウントを削除する場合は、サービス アカウントのチェックボックス check_box_outline_blank をオンにして、[削除] をクリックします。
ログが _Default
シンクから除外されていても Trusted Cloud プロジェクトのログが表示されるのはなぜですか?
組織全体のログを集約する一元化された Trusted Cloud プロジェクトのログバケットでログを表示している可能性があります。
ログ エクスプローラを使用してこれらのログにアクセスしていて、_Default
シンクから除外したログが表示される場合は、ビューがTrusted Cloud プロジェクト レベルに設定されている可能性があります。
この問題を解決するには、[範囲を絞り込む] メニューで [ログビュー] を選択し、Trusted Cloud プロジェクトの _Default
バケットに関連付けられているログビューを選択します。これで、除外されたログが表示されなくなります。