Mit Logging arbeiten

Mit Cloud Logging können Sie Logdaten und Ereignisse von Google Cloud und Amazon Web Services speichern, suchen, analysieren, überwachen und melden. Auf dieser Seite wird gezeigt, wie Sie Logging mit PowerShell verwalten. Ein einfaches Beispiel zeigt, wie Sie Logs, Logsenken und Logmesswerte erstellen.

In der Cmdlet-Referenz für Cloud Tools for PowerShell erfahren Sie mehr über die Logging-Cmdlets. Weitere Informationen zu Logging im Allgemeinen finden Sie in der Übersicht zu Logging.

Logs und Logeinträge erstellen

Ein Log ist eine benannte Sammlung von Logeinträgen innerhalb des Projekts. In Logeinträgen werden Statusangaben oder Ereignisse aufgezeichnet. Der Eintrag kann von Google Cloud-Diensten, AWS-Diensten, Anwendungen von Drittanbietern oder Ihren eigenen Anwendungen erstellt werden. Die im Logeintrag übermittelte "Nachricht" wird als Nutzlast bezeichnet. Sie kann aus einem einfachen String oder strukturierten Daten bestehen. In jedem Logeintrag wird anhand des Namens einer überwachten Ressource die Herkunft des Eintrags angegeben.

Zum Erstellen eines Logeintrags kann das Cmdlet New‑GcLogEntry verwendet werden. Sie müssen das Log angeben, zu dem der Eintrag gehört (falls das Log nicht vorhanden ist, wird es erzeugt). Mit dem Parameter -MonitoredResource können Sie das Log mit einer überwachten Ressource verknüpfen. Standardmäßig wird der Logeintrag mit der Ressource "global" verknüpft. Verwenden Sie zum Erstellen einer überwachten Ressource das Cmdlet 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

Zum Abrufen von Logeinträgen verwenden Sie das 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"

Logsenken erstellen

Zum Exportieren von Logeinträgen können Sie mit dem Cmdlet New‑GcLogSink Logsenken erstellen. Stackdriver Logging vergleicht eingehende Logeinträge mit den Senken und alle mit einer Senke übereinstimmenden Logeinträge werden dann an das zugewiesene Ziel kopiert. Logeinträge, die schon vor der Erstellung der Senke bestehen, werden nicht exportiert.

Ziele für exportierte Logs können Cloud Storage-Buckets, BigQuery-Datasets oder Cloud Pub/Sub-Themen sein.

# 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"

Logmesswerte erstellen

Mit dem Cmdlet New‑GcLogMetric können Sie Logmesswerte erstellen, um die Anzahl von Logeinträgen zu erfassen, die bestimmten Kriterien entsprechen. Anhand dieser Messgrößen können Diagramme und Alarmrichtlinien in Stackdriver Monitoring erstellt werden.

# 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`""