使用 Google Cloud 的运维套件 Logging

借助 Google Cloud 的运维套件 Logging,您可以存储、搜索、分析和监控 Google Cloud 和 Amazon Web Services 产生的日志数据和事件,并据以发出提醒。本页面介绍如何使用 PowerShell 管理 Google Cloud 的运维套件 Logging。并通过一个简单示例来说明如何创建日志、日志接收器和日志指标。

如需详细了解 Google Cloud 的运维套件 Logging cmdlet,请参阅 Cloud Tools for PowerShell cmdlet 参考文档。如需从整体上了解 Google Cloud 的运维套件 Logging,请参阅 Google Cloud 运维套件 Logging 的概览指南。

创建日志和日志条目

日志是项目中日志条目的指定集合。日志条目记录了状态或事件。条目可能由 Google Cloud 服务、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 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

您可以使用 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 数据集或 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`""