Stackdriver Logging の操作

Stackdriver Logging では、Google Cloud Platform や Amazon Web Services からのログデータやイベントの格納、検索、分析、モニタリング、通知ができます。このページでは、PowerShell を使用して Stackdriver Logging を管理する方法について説明します。ログ、ログシンク、ログ指標を作成する簡単な例を示します。

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

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

ログは、プロジェクトで発生したログエントリの名前付きコレクションです。ログエントリにはステータスやイベントが記録されます。エントリは、GCP サービス、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."

# 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." `
               -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 データセット、または Cloud 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`""