Servernutzung für die Berichterstellung ermitteln

In der Google Cloud Console können Sie mit Cloud Logging Verlaufsdaten zur Servernutzung aufrufen. Sie können beispielsweise jedes Ereignis einsehen, bei dem eine VM in einem bestimmten Knoten auf einem physischen Server platziert wurde, und die IDs des physischen Servers abrufen.

Vorbereitung

Zur Anzeige der Nutzung von physischen Servern in Cloud Logging aktivieren Sie die Cloud Logging API bevor VMs auf Knoten für einzelne Mandanten gestartet werden. Auf diese Weise können Sie Daten von Anfang an erfassen. Wenn Sie das Logging nicht aktiviert und bereits VMs gestartet haben, können Sie den Dienst immer noch aktivieren. Allerdings haben Sie nur auf die Daten Zugriff, die ab der Aktivierung des Loggings erfasst wurden.

Cloud Logging API aktivieren

Server-IDs abrufen

So rufen Sie die ID des physischen Servers für Ihre Knoten für einzelne Mandanten ab:

  1. Rufen Sie in der Cloud Console die Seite Logging > Logs (Loganzeige) der Operations-Suite von Google Cloud auf:

    Loganzeige aufrufen

  2. Wählen Sie ein vorhandenes Google Cloud-Projekt aus, wenn Sie dazu aufgefordert werden.

  3. Wählen Sie im ersten Drop-down-Menü die Option GCE-VM-Instanz aus.

  4. Wählen Sie im vierten Drop-down-Menü das Zeitlimit aus, um die Ergebnisse einzugrenzen.

  5. Geben Sie in das Textfeld text:NotifyInstanceLocation ein.

    Screenshot der Filterergebnisse

  6. Erweitern Sie die Ergebnisse jedes Eintrags und suchen Sie nach der serverId, einer eindeutigen Kennung für die physische Maschine, die den Knoten für einzelne Mandanten sichert.

    Die Server-ID

Lizenzdaten in BigQuery exportieren

Systemereignisinformationen können in ein BigQuery-Dataset exportiert werden, um die Nutzung pro Kern und Socket zu bestimmen:

  1. Sehen Sie im ersten Drop-down-Menü nach, ob GCE-VM-Instanz ausgewählt ist.
  2. Klicken Sie oben auf der Seite "Loganzeige" auf Export erstellen.
  3. Erstellen Sie eine Datensenke. Hierfür geben Sie den Namen der Senke ein, wählen BigQuery als Senkendienst aus und legen ein BigQuery-Dataset fest.

Nach der Erstellung erhält die Datensenke alle nachfolgenden Audit-Logging-Aktivitäten. Das bedeutet, dass BigQuery alle künftigen Daten zur Servernutzung erhält. Beachten Sie, dass auf Daten vor der Einrichtung der BigQuery-Integration NICHT zugegriffen werden kann.

Beispielabfragen zur Ermittlung der Servernutzung in BigQuery

In diesem Abschnitt wird davon ausgegangen, dass Sie mit dem Ausführen von Abfragen in BigQuery vertraut sind.

Ermitteln Sie die Liste der Instanzen, die Ihre benutzerdefinierten Images verwenden, mit der folgenden Abfrage in der Tabelle cloudaudit_googleapis_com_activity_[DATE]:

-- QUERY TO IDENTIFY ALL INSTANCE IDs USING A SPECIFIC SOURCE IMAGE
SELECT resource.labels.instance_id, resource.labels.project_id, resource.labels.zone, disks.initializeparams.sourceimage
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_activity_*`, UNNEST(protopayload_auditlog.request_instances_insert.disks) AS disks
WHERE disks.initializeparams.sourceimage LIKE '%[BYOL_IMAGE_NAME]%'

Anschließend können mithilfe der VM-Instanzen die Hosts für die einzelnen Instanzen über die folgende Abfrage identifiziert werden:

-- QUERY TO IDENTIFY ALL SERVER IDs USED BY A PROJECT
SELECT protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.serverid, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.timestamp,
56 AS physical_cores
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_system_event_*`
GROUP BY 1,2

Hier ein Beispiel für eine kombinierte Abfrage:

-- QUERY TO IDENTIFY ALL INSTANCE IDs USING A SPECIFIC SOURCE IMAGE
SELECT
resource.labels.instance_id, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.serverid as server_id, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.timestamp,
56 AS physical_cores,
2 AS physical_sockets
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_system_event_*`
WHERE resource.labels.instance_id IN (
SELECT resource.labels.instance_id
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_activity_*`, UNNEST(protopayload_auditlog.request_instances_insert.disks) AS disks
WHERE disks.initializeparams.sourceimage LIKE '%[BYOL_IMAGE_NAME]%')
GROUP BY 1,2,3
ORDER BY 1 ASC,3 ASC;

Dabei gilt:

  • [MY_BYOL_PROJECT_SINK_NAME] ist der Name der von Ihnen erstellten Datensenke.
  • [BYOL_IMAGE_NAME] ist der Name des Images, mit dem Sie Ihre eigene Lizenz verwenden.

Informationen zur Verwendung von Platzhaltern für die Auswahl von Daten und andere hilfreiche Hinweise zum Abfragen von Cloud-Audit-Logs in BigQuery finden Sie in der Dokumentation zu Cloud-Audit-Logs.

Weitere Informationen