Logging の操作

Cloud Logging では、Google Cloud とアマゾン ウェブ サービスから取得したログデータとイベントについて、格納、検索、分析、モニタリング、通知を実行できます。このページでは、PowerShell を使用して Logging を管理する方法について説明します。ログ、ログシンク、ログ指標を作成する簡単な例を示します。

Logging コマンドレットの詳細については、Cloud Tools for PowerShell コマンドレット リファレンスをご覧ください。Logging の全般的な情報については、Logging の概要ガイドをご覧ください。

ログとログエントリの作成

ログは、プロジェクトで発生したログエントリの名前付きコレクションです。ログエントリにはステータスやイベントが記録されます。エントリは、Google Cloud サービス、AWS サービス、サードパーティ製アプリケーション、または独自のアプリケーションによって作成されます。ログエントリで送受信される「メッセージ」はペイロードと呼ばれ、単純な文字列の場合もあれば、構造化データの場合もあります。各ログエントリには、モニタリング対象リソースの名前など、ログの作成元が記録されます。

コマンドレット New‑GcLogEntry を使用してログエントリを作成できます。エントリが属するログを指定する必要があります(ログが存在しない場合は作成されます)。ログをモニタリング対象リソースに関連付けるには、-MonitoredResource パラメータを使用できます。デフォルトでは、ログエントリは「グローバル」リソースに関連付けられます。モニタリング対象リソースを作成するには、New‑GcLogMonitoredResource コマンドレットを使用します。

# Creates a log entry in the log "my-log".
New-GcLogEntry -LogName "my-log" -TextPayload "This is a log entry."

# Creates a log entry associated with a Cloud SQL monitored resource
$resource = New-GcLogMonitoredResource -ResourceType "cloudsql_database" `
                                       -Labels @{"project_id" = "my-project";
                                                 "database_id" = "id"}
New-GcLogEntry -LogName "my-log" `
               -TextPayload "This is a log entry." `
               -MonitoredResource $resource

コマンドレット Get‑GcLogEntry. を使用してログエントリを取得できます。

# Gets all entries from log "my-log"
Get-GcLogEntry -LogName "my-log"

# Gets all entries associated with Compute Engine instances
Get-GcLogEntry -ResourceName "gce_instance"

ログシンクの作成

ログエントリをエクスポートするには、コマンドレット New‑GcLogSink を使用してログシンクを作成します。 Stackdriver Logging では、受信したログエントリをシンクと照合し、各シンクに一致するすべてのログエントリが関連付けられた宛先にコピーされます。 シンクが作成される前に存在していたログエントリはエクスポートされません。

エクスポートされたログの出力先は、Cloud Storage バケット、BigQuery データセット、Pub/Sub トピックのいずれかです。

# Creates a log sink for log entries in the default project.
# The entries will be sent to the Cloud Storage bucket "my-bucket"
New-GcLogSink -Sink "my-sink" -GcsBucketDestination "my-bucket"

# Creates a log sink for log entries in log "my-log".
# The entries will be sent to the BigQuery data set "my_dataset"
New-GcLogSink -Sink "my-sink" `
              -LogName "my-log" `
              -BigQueryDataSetDestination "my_dataset"

# Creates a log sink for log entries that match the filter.
# The entries will be sent to the Pub/Sub topic "my-topic".
New-GcLogSink -Sink "my-sink" `
              -Filter "textPayload = `"Testing`"" `
              -PubSubTopicDestination "my-topic"

ログ指標の作成

コマンドレット New‑GcLogMetric で特定の条件に一致するログエントリの数をカウントするログ指標を作成できます。これらの指標を使用して、Stackdriver Monitoring でグラフやアラート ポリシーを作成できます。

# Creates a metric for entries in log "my-log".
New-GcLogMetric -Metric "my-metric" -LogName "my-log"

# Creates a metric for entries associated with Compute Engine instances
New-GcLogMetric -Metric "my-metric" -ResourceType "gce_instance"

# Creates a metric for entries that match the filter.
New-GcLogMetric -Metric "my-metric" -Filter "textPayload = `"Testing`""