Prozesse auf VMs überwachen

Der Ops-Agent und der Legacy-Monitoring-Agent sind standardmäßig so konfiguriert, dass Messwerte erfasst werden, die Informationen zu den Prozessen erfassen, die auf den virtuellen Maschinen (VMs) von Compute Engine ausgeführt werden. Sie können diese Messwerte auch mit dem Monitoring-Agent auf VMs in Amazon Elastic Compute Cloud (EC2) erfassen. Diese Messwerte, die als Prozessmesswerte bezeichnet werden, sind durch das Präfix agent.googleapis.com/processes identifizierbar. Diese Messwerte werden nicht in Google Kubernetes Engine (GKE) erfasst.

Ab dem 6. August 2021 werden Gebühren für diese Messwerte eingeführt, wie unter Kostenpflichtige Messwerte beschrieben. Der Satz der Prozessmesswerte wird als kostenpflichtig eingestuft, aber Gebühren wurden nie implementiert.

In diesem Dokument werden Tools zur Visualisierung von Prozessmesswerten beschrieben, wie Sie die Datenmenge ermitteln, die Sie aus diesen Messwerten aufnehmen, und wie Sie die zugehörigen Gebühren minimieren.

Mit Prozessmesswerten arbeiten

Sie können Ihre Prozessmesswerte mit Diagrammen visualisieren, die mit Metrics Explorer oder benutzerdefinierten Dashboards erstellt wurden. Weitere Informationen finden Sie unter Dashboards und Diagramme verwenden. Darüber hinaus enthält Cloud Monitoring Daten aus Prozessmesswerten in zwei vordefinierten Dashboards:

  • Dashboard VM-Instanzen in Monitoring
  • Dashboard Details für VM-Instanzen in Compute Engine

In den folgenden Abschnitten werden diese Dashboards beschrieben.

Monitoring: Aggregierte Prozessmesswerte ansehen

Wechseln Sie im Dashboard VM-Instanzen zum Tab Prozesse, um aggregierte Prozessmesswerte innerhalb eines Messwertbereichs anzuzeigen:

  1. Rufen Sie in der Google Cloud Console die Seite Dashboards auf.

    Dashboards aufrufen

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Wählen Sie in der Liste das Dashboard VM-Instanzen aus.

  3. Klicken Sie auf Prozesse.

Der folgende Screenshot zeigt ein Beispiel für die Monitoring-Seite Prozesse:

Auf der Seite **Prozesse** in Monitoring werden aggregierte Prozessmesswerte angezeigt.

Sie können die Diagramme auf dem Tab Prozesse verwenden, um die Prozesse in Ihrem Messwertbereich zu identifizieren, die die größte CPU- und Arbeitsspeicherauslastung und die höchste Laufwerkauslastung aufweisen.

Compute Engine: Leistungsmesswerte für VMs mit dem höchsten Ressourcenverbrauch ansehen

Wenn Sie die Leistungsdiagramme mit den fünf VMs aufrufen möchten, die in Ihrem Google Cloud-Projekt den größten Teil einer Ressource verbrauchen, rufen Sie den Tab Beobachtbarkeit für Ihre VM-Instanzen auf:

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    Zu Seite VM-Instanzen

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.

  2. Klicken Sie auf Beobachtbarkeit.

Der folgende Screenshot zeigt ein Beispiel für die Compute Engine-Seite Observability.

Auf der Seite **Beobachtbarkeit** in der Compute Engine werden die fünf VMs mit dem größten Verbrauch einer bestimmten Ressource angezeigt.

Informationen zur Verwendung dieser Messwerte zur Diagnose von Problemen mit Ihren VMs finden Sie unter Fehlerbehebung bei VM-Leistungsproblemen.

Compute Engine: Prozessmesswerte pro VM ansehen

Wenn Sie eine Liste der Prozesse anzeigen möchten, die auf einer einzelnen virtuellen Maschine (VM) von Compute Engine ausgeführt werden, sowie Diagramme für die Prozesse mit dem höchsten Ressourcenverbrauch öffnen Sie den Tab Beobachtbarkeit für die VM:

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:

    Zu Seite VM-Instanzen

    Wenn Sie diese Seite über die Suchleiste finden, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Compute Engine lautet.

  2. Klicken Sie auf dem Tab Instanzen auf den Namen einer VM, die überprüft werden soll.

  3. Klicken Sie auf Beobachtbarkeit, um sich die Messwerte für diese VM anzusehen.

  4. Wählen Sie im Navigationsbereich auf dem Tab Beobachtbarkeit die Option Prozesse aus.

Der folgende Screenshot zeigt ein Beispiel für die Compute Engine-Seite Prozesse:

Auf der Seite **Prozesse** in Compute Engine werden Prozessmesswerte pro VM angezeigt.

Prozessmesswerte werden bis zu 24 Stunden lang aufbewahrt, sodass Sie sie in der Zeit zurückblicken und Anomalien im Ressourcenverbrauch bestimmten Prozessen zuordnen oder Ihre teursten Ressourcennutzer ermitteln können. Das folgende Diagramm zeigt beispielsweise die Prozesse, die den höchsten Prozentsatz an CPU-Ressourcen verbrauchen. Mit der Zeitraumauswahl können Sie den Zeitraum des Diagramms ändern. Die Auswahl für den Zeitraum bietet vordefinierte Werte, z. B. die letzte Stunde, und ermöglicht auch die Eingabe eines benutzerdefinierten Zeitraums.

Sie können Prozessmesswerte verwenden, um die Prozesse zu identifizieren, die den größten Teil einer Ressource verbrauchen.

Die Tabelle Laufende Prozesse enthält eine Liste zum Ressourcenverbrauch analog zur Ausgabe des Linux-Befehls top. Standardmäßig zeigt die Tabelle einen Snapshot der neuesten Daten an. Wenn Sie jedoch einen Zeitraum in einem Diagramm auswählen, der in der Vergangenheit endet, zeigt die Tabelle die am Ende dieses Zeitraums ausgeführten Prozesse an.

Informationen zur Verwendung dieser Messwerte zur Diagnose von Problemen mit Ihren VMs finden Sie unter Fehlerbehebung bei VM-Leistungsproblemen.

Vom Agent erfasste Prozessmesswerte

Die Linux-Agents erfassen alle in der folgenden Tabelle aufgeführten Messwerte aus Prozessen, die auf Compute Engine-VMs und (mithilfe des Monitoring-Agents) auf Amazon Elastic Compute Cloud (EC2)-VMs ausgeführt werden. Sie können ihre Erfassung durch den Ops-Agent (Version 2.0.0 und höher) und den Legacy-Monitoring-Agent deaktivieren.

Sie können auch die Erfassung von Prozessmesswerten für den Ops-Agent (Version 2.0.0 und höher) deaktivieren, der auf Windows-VMs ausgeführt wird.

Weitere Informationen finden Sie unter Prozessmesswerte deaktivieren.

Wenn Sie die Erfassung dieser Messwerte unter Windows deaktivieren möchten, empfehlen wir ein Upgrade auf die Ops-Agent-Version 2.0.0 oder höher. Weitere Informationen finden Sie unter Ops-Agent installieren.

Tabelle der Prozessmesswerte

Den Strings vom Typ "metric type" in dieser Tabelle muss agent.googleapis.com/processes/ vorangestellt werden. Dieses Präfix wurde in den Einträgen der Tabelle weggelassen. Verwenden Sie beim Abfragen eines Labels das Präfix metric.labels.. Beispiel: metric.labels.LABEL="VALUE".

Messwerttyp Startphase(Ebenen der Ressourcenhierarchie)
Anzeigename
Art, Typ, Einheit
Überwachte Ressourcen
Beschreibung
Labels
count_by_state GA(Projekt)
Prozesse
GAUGEDOUBLE1
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Anzahl der Prozesse im angegebenen Status. Nur Linux. Alle 60 Sekunden wird eine Stichprobe erstellt.
state: Derzeit ausgeführt, Ruhemodus, Zombie usw.
cpu_time GA(Projekt)
Prozess-CPU
CUMULATIVEINT64us{CPU}
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
CPU-Zeit des angegebenen Prozesses. Alle 60 Sekunden wird eine Stichprobe erstellt.
process: Prozessname.
user_or_syst: Gibt an, ob es ein Nutzer- oder Systemprozess ist.
command: Prozessbefehl.
command_line: Prozessbefehlszeile, maximal 1.024 Zeichen.
owner: Prozessinhaber.
pid: Prozess-ID.
disk/read_bytes_count GA(Projekt)
Prozesslaufwerk-Lese-E/A
CUMULATIVEINT64By
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Laufwerk-Lese-E/A des Prozesses. Nur Linux. Alle 60 Sekunden wird eine Stichprobe erstellt.
process: Prozessname.
command: Prozessbefehl.
command_line: Prozessbefehlszeile, maximal 1.024 Zeichen.
owner: Prozessinhaber.
pid: Prozess-ID.
disk/write_bytes_count GA(project)
Prozesslaufwerk-Schreib-E/A
CUMULATIVEINT64By
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Prozesslaufwerk-Schreib-E/A Nur Linux. Alle 60 Sekunden wird eine Stichprobe erstellt.
process: Prozessname.
command: Prozessbefehl.
command_line: Prozessbefehlszeile, maximal 1.024 Zeichen.
owner: Prozessinhaber.
pid: Prozess-ID.
fork_count GA(project)
Anzahl der Gabeln
CUMULATIVEINT641
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Gesamtzahl der verzweigten Prozesse. Nur Linux. Alle 60 Sekunden wird eine Stichprobe erstellt.
rss_usage GA(Projekt)
Prozessresidenter Arbeitsspeicher
GAUGEDOUBLEBy
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
Residenter Arbeitsspeicherverbrauch des angegebenen Prozesses. Nur Linux. Alle 60 Sekunden wird eine Stichprobe erstellt.
process: Prozessname.
command: Prozessbefehl.
command_line: Prozessbefehlszeile, maximal 1.024 Zeichen.
owner: Prozessinhaber.
pid: Prozess-ID.
vm_usage GA(Projekt)
Virtueller Prozessspeicher
GAUGEDOUBLEBy
aws_ec2_instance
baremetalsolution.googleapis.com/Instance
gce_instance
VM-Nutzung des angegebenen Prozesses. Alle 60 Sekunden wird eine Stichprobe erstellt.
process: Prozessname.
command: Prozessbefehl.
command_line: Prozessbefehlszeile, maximal 1.024 Zeichen.
owner: Prozessinhaber.
pid: Prozess-ID.

Die Tabelle wurde am 12.09.2024 um 02:25:45 Uhr (UTC) erstellt.

Aktuelle Aufnahme bestimmen

Mit dem Metrics Explorer können Sie sehen, wie viele Daten Sie derzeit für Prozessmesswerte aufnehmen. Gehen Sie dazu so vor:

  1. Rufen Sie in der Google Cloud Console die Seite Metrics Explorer auf.

    Zum Metrics Explorer

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Klicken Sie in der Symbolleiste des Bereichs "Query Builder" auf die Schaltfläche  MQL oder  PromQL.

  3. Prüfen Sie, ob MQL im Schalter Sprache ausgewählt ist. Die Sprachschaltfläche befindet sich in derselben Symbolleiste, mit der Sie Ihre Abfrage formatieren können.

  4. So rufen Sie die Gesamtzahl der Prozessmesswerte für Ihre gce_instance- und aws_ec2_instance-Ressourcen ab:

    1. Geben Sie die folgende Abfrage ein:

      def tagged_process_metric name = metric 'agent.googleapis.com/processes/'$name
      | add [metric_suffix: $name];
      
      def process_metrics resource_type = fetch $resource_type
      | { @tagged_process_metric 'cpu_time'
        ; @tagged_process_metric 'disk/read_bytes_count'
        ; @tagged_process_metric 'disk/write_bytes_count'
        ; @tagged_process_metric 'rss_usage'
        ; @tagged_process_metric 'vm_usage'
        ; @tagged_process_metric 'count_by_state'
        ; @tagged_process_metric 'fork_count' }
      | within 1d
      | group_by [metric_suffix], 1m, [row_count: row_count()]
      | union;
      
      { @process_metrics 'gce_instance'
      ; @process_metrics 'aws_ec2_instance' }
      | outer_join 0, 0
      | { rename [], [out: val(0)] | add [resource_type: 'gce_instance']
        ; rename [], [out: val(1)] | add [resource_type: 'aws_ec2_instance'] }
      | union
      | group_by drop[metric_suffix], 1d, .sum
      
    2. Klicken Sie auf Abfrage ausführen. Das resultierende Diagramm zeigt die Werte für jeden Ressourcentyp an.

Kosten für Messwerte schätzen

Die Preisbeispiele für Monitoring zeigen, wie Sie die Kosten für die Aufnahme von Messwerten schätzen können. Diese Beispiele können auf Prozessmesswerte angewendet werden.

  • Alle Prozessmesswerte werden alle 60 Sekunden abgerufen und alle Datenpunkte werden zur Preisberechnung als acht Byte geschrieben.

  • Die Preise für die Prozessmesswerte werden auf 5 % der in den Preisbeispielen verwendeten Standardvolumenkosten festgelegt. Wenn Sie also davon ausgehen, dass alle Messwerte in den in diesen Beispielen beschriebenen Szenarien Prozessmesswerte sind, können Sie 5 % der Gesamtkosten für jedes Szenario als Schätzwert für die Kosten der Prozessmesswerte verwenden.

Erfassung von Prozessmesswerten deaktivieren

Es gibt mehrere Möglichkeiten, die Erfassung dieser Messwerte vom Ops-Agent (Version 2.0.0 und höher) und vom Legacy-Monitoring-Agent unter Linux zu deaktivieren.

Die Agents werden nur auf Compute Engine-VMs und (für den Monitoring-Agent) auf Amazon Elastic Compute Cloud (EC2)-VMs ausgeführt. Diese Verfahren gelten nur für diese Plattformen.

Sie können die Erfassung durch den Ops-Agent nicht deaktivieren, wenn Sie Versionen unter 2.0.0 oder den Legacy-Monitoring-Agent unter Windows ausführen. Wenn Sie die Erfassung dieser Messwerte unter Windows deaktivieren möchten, empfehlen wir ein Upgrade auf die Ops-Agent-Version 2.0.0 oder höher. Weitere Informationen finden Sie unter Ops-Agent installieren.

Das allgemeine Verfahren sieht so aus:

  1. Stellen Sie eine Verbindung zur VM her.

  2. Erstellen Sie eine Kopie der vorhandenen Konfigurationsdatei als Sicherung. Speichern Sie die Sicherungskopie außerhalb des Konfigurationsverzeichnisses des Agents, damit der Agent nicht versucht, beide Dateien zu laden. Mit dem folgenden Befehl wird beispielsweise eine Kopie der Konfigurationsdatei für den Monitoring-Agent unter Linux erstellt:

    cp /etc/stackdriver/collectd.conf BACKUP_DIR/collectd.conf.bak
    
  3. Ändern Sie die Konfiguration mit einer der im Folgenden beschriebenen Optionen:

  4. Starten Sie den Agent neu, um die neue Konfiguration zu übernehmen:

    • Monitoring-Agent: sudo service stackdriver-agent restart
    • Ops Agent: sudo service google-cloud-ops-agent restart
  5. Prüfen Sie, ob die Prozessmesswerte für diese VM nicht mehr erfasst werden:

    1. Wählen Sie Metrics Explorer aus.

    2. Klicken Sie auf MQL.

    3. Geben Sie für eine gce_instance-Ressource die folgende Abfrage ein und ersetzen Sie dabei VM_NAME durch den Namen dieser VM:

      fetch gce_instance
      | metric 'agent.googleapis.com/processes/cpu_time'
      | filter (metadata.system_labels.name == 'VM_NAME')
      | align rate(1m)
      | every 1m
      

      Ersetzen Sie für eine aws_ec2_instance-Ressource gce_instance in der Abfrage.

    4. Klicken Sie auf Abfrage ausführen.

Ops-Agent unter Linux oder Windows

Der Speicherort der Konfigurationsdatei für den Ops-Agent hängt vom Betriebssystem ab:

  • Für Linux: /etc/google-cloud-ops-agent/config.yaml
  • Für Windows: C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml

Fügen Sie der Datei config.yaml Folgendes hinzu, um die Erfassung aller Prozessmesswerte durch den Ops-Agent zu deaktivieren:

metrics:
  processors:
    metrics_filter:
      type: exclude_metrics
      metrics_pattern:
      - agent.googleapis.com/processes/*

Dies schließt Prozessmesswerte von der Erfassung im metrics_filter-Prozessor aus, die für die Standardpipeline im metrics-Dienst gilt.

Weitere Informationen zu den Konfigurationsoptionen für den Ops-Agent finden Sie unter Ops-Agent konfigurieren.

Monitoring-Agent unter Linux

Sie haben die folgenden Optionen, um die Erfassung von Prozessmesswerten mit dem Legacy-Monitoring-Agent zu deaktivieren:

In den folgenden Abschnitten werden die einzelnen Optionen beschrieben und die damit verbundenen Vorteile und Risiken aufgeführt.

Ändern Sie die Konfigurationsdatei des Agents.

Mit dieser Option bearbeiten Sie die Hauptkonfigurationsdatei des Agents, /etc/stackdriver/collectd.conf, um die Abschnitte zu entfernen, die die Erfassung der Prozessmesswerte aktivieren.

Vorgehensweise

Es gibt drei Gruppen von Löschungen, die Sie in der collectd.conf-Datei vornehmen müssen:

  1. Löschen Sie die folgende LoadPlugin-Anweisung und die Plug-in-Konfiguration:

    LoadPlugin processes
    
    <Plugin "processes">
      ProcessMatch "all" ".*"
      Detail "ps_cputime"
      Detail "ps_disk_octets"
      Detail "ps_rss"
      Detail "ps_vm"
    </Plugin>
    
  2. Löschen Sie die folgende PostCacheChain-Anweisung und die Konfiguration der PostCache-Kette:

    PostCacheChain "PostCache"
    
    <Chain "PostCache">
      <Rule "processes">
        <Match "regex">
          Plugin "^processes$"
          Type "^(ps_cputime|disk_octets|ps_rss|ps_vm)$"
        </Match>
        <Target "jump">
          Chain "MaybeThrottleProcesses"
        </Target>
        Target "stop"
      </Rule>
    
      <Rule "otherwise">
        <Match "throttle_metadata_keys">
          OKToThrottle false
          HighWaterMark 5700000000  # 950M * 6
          LowWaterMark 4800000000  # 800M * 6
        </Match>
        <Target "write">
           Plugin "write_gcm"
        </Target>
      </Rule>
    </Chain>
    
  3. Löschen Sie die von der PostCache-Kette verwendete MaybeThrottleProcesses-Kette:

    <Chain "MaybeThrottleProcesses">
      <Rule "default">
        <Match "throttle_metadata_keys">
          OKToThrottle true
          TrackedMetadata "processes:pid"
          TrackedMetadata "processes:command"
          TrackedMetadata "processes:command_line"
          TrackedMetadata "processes:owner"
        </Match>
        <Target "write">
           Plugin "write_gcm"
        </Target>
      </Rule>
    </Chain>
    
Vorteile und Risiken
  • Vorteile
    • Sie reduzieren den vom Agent genutzten Ressourcen, da die Messwerte nie erfasst werden.
    • Wenn Sie weitere Änderungen an Ihrer collectd.conf-Datei vorgenommen haben, können Sie diese Änderungen eventuell leicht beibehalten.
  • Risiken
    • Zum Bearbeiten dieser Konfigurationsdatei müssen Sie das root-Konto verwenden.
    • Sie riskieren dadurch Rechtschreibfehler in der Datei.

Ersetzen Sie die Konfigurationsdatei des Agents.

Bei dieser Option ersetzen Sie die Hauptkonfigurationsdatei des Agents durch eine vorab bearbeitete Version, aus der die relevanten Abschnitte für Sie entfernt wurden.

Vorgehensweise
  1. Laden Sie die vorab bearbeitete Datei collectd-no-process-metrics.conf aus dem GitHub-Repository in das Verzeichnis /tmp herunter. Gehen Sie dann so vor:

    cd /tmp && curl -sSO https://raw.githubusercontent.com/Stackdriver/agent-packaging/master/collectd-no-process-metrics.conf
    
  2. Ersetzen Sie die vorhandene Datei collectd.conf durch die vorab bearbeitete Datei:

    cp /tmp/collectd-no-process-metrics.conf /etc/stackdriver/collectd.conf
    
Vorteile und Risiken
  • Vorteile
    • Sie reduzieren den vom Agent genutzten Ressourcen, da die Messwerte nie erfasst werden.
    • Sie müssen die Datei nicht manuell als root bearbeiten.
    • Tools zur Konfigurationsverwaltung können eine Datei problemlos ersetzen.
  • Risiken
    • Wenn Sie weitere Änderungen an der Datei collectd.conf vorgenommen haben, müssen Sie diese Änderungen in der Ersatzdatei zusammenführen.

Fehlerbehebung

Die in diesem Dokument beschriebenen Verfahren stellen Änderungen an der Agent-Konfiguration dar, sodass die folgenden Probleme sehr wahrscheinlich sind:

  • Unzureichende Berechtigungen zum Bearbeiten der Konfigurationsdateien. Konfigurationsdateien müssen über das root-Konto bearbeitet werden.
  • Einführung von Rechtschreibfehlern in die Konfigurationsdatei, wenn Sie diese direkt bearbeiten.

Informationen zur Behebung anderer Probleme finden Sie unter Fehlerbehebung beim Monitoring-Agent.

Monitoring-Agent unter Windows

Sie können die Erfassung von Prozessmesswerten durch den Legacy-Monitoring-Agent, der auf Windows-VMs ausgeführt wird, nicht deaktivieren. Dieser Agent kann nicht konfiguriert werden. Wenn Sie die Erfassung dieser Messwerte unter Windows deaktivieren möchten, empfehlen wir ein Upgrade auf die Ops-Agent-Version 2.0.0 oder höher. Weitere Informationen finden Sie unter Ops-Agent installieren.

Wenn Sie den Ops-Agent ausführen, finden Sie weitere Informationen unter Ops-Agent unter Linux oder Windows.