使用 Stackdriver Logging

Stackdriver Logging 使您可以存储、搜索、分析和监控来自 Google Cloud Platform 和 Amazon Web Services 的日志数据和事件,并相应地发出提醒。此页面介绍了如何使用 PowerShell 管理 Stackdriver Logging,并通过一个简单示例来说明如何创建日志、日志接收器和日志指标。

如需详细了解 Stackdriver Logging cmdlet,请参阅 Cloud Tools for PowerShell cmdlet 参考。如需从整体上了解 Stackdriver Logging,请阅读 Stackdriver Logging 概览指南。

创建日志和日志条目

日志是项目中日志条目的指定集合。日志条目记录了状态或事件。条目可能由 GCP 服务、AWS 服务、第三方应用或您自己的应用创建。日志条目携带的“消息”称为负载,可以是简单的字符串,也可以是结构化数据。每个日志条目都包含受监控的资源的名称,以此来指明其来源。

cmdlet New‑GcLogEntry 可用于创建日志条目。您必须指定条目所属的日志(如果日志不存在,系统将会创建一个)。要将日志与受监控的资源关联,可以使用 -MonitoredResource 参数。默认情况下,日志条目与“全球”资源相关联。要创建受监控的资源,请使用 New‑GcLogMonitoredResource cmdlet。

# 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

您可以使用 cmdlet 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"

创建日志接收器

要导出日志条目,您可以使用 cmdlet 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"

创建日志指标

您可以使用 cmdlet 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`""