Hinweis:

Überwachen Sie die Datenträgerauslastung mit benutzerdefinierten Oracle Cloud Infrastructure-Metriken

Einführung

Mit den Plattformservices von Oracle Observability and Management können Kunden Multi-Cloud-Anwendungen und Infrastrukturumgebungen überwachen, analysieren und verwalten. Mit Metriken werden Ressourcen und Alarme überwacht, um Sie zu benachrichtigen, wenn diese Metriken alarmspezifische Trigger erfüllen. Metriken werden an den Monitoring-Service als Rohdatenpunkte oder Zeitstempel/Wert-Paare zusammen mit Dimensionen und Metadaten ausgegeben.

Metriken stammen aus verschiedenen Quellen:

  1. Ressourcenmetriken, die automatisch von Oracle Cloud Infrastructure-(OCI-)Ressourcen gepostet werden. Beispiel: CpuUtilization.
  2. Mit der Monitoring-API veröffentlichte benutzerdefinierte Metriken.

Zielsetzung

Überwachen Sie die Datenträgerauslastung mit benutzerdefinierten OCI-Metriken.

Voraussetzungen

Aufgabe 1: Python-Datei erstellen

  1. Erstellen Sie disk_usage.py in der Compute-Instanz, in der die Datenträgerauslastungsmetrik erfasst werden muss.

    Hinweis: Verwenden Sie Ihren bevorzugten Texteditor basierend auf dem Betriebssystem.

  2. Kopieren Sie das folgende Beispielskript nach disk_usage.py.

    # This is a sample python script to post disk utilization custom metric to oci monitoring.
    # Command: python disk_usage.py
       
    import oci,psutil,datetime
    from pytz import timezone
       
    # initialize service client with OCI python SDK
    signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner()
    monitoring_client = oci.monitoring.MonitoringClient(config={}, signer=signer, service_endpoint="https://telemetry-ingestion.ap-mumbai-1.oraclecloud.com")
       
    # get disk usage with psutil
    disk = psutil.disk_usage('/')
    disk_usage=disk.percent
    print(disk_usage)
       
    times_stamp = datetime.datetime.now(timezone('UTC'))
       
    # post custom metric to oci monitoring
    # replace "compartment_ocid“ with your compartmet ocid and srv01 with your compute instance
    post_metric_data_response = monitoring_client.post_metric_data(
       post_metric_data_details=oci.monitoring.models.PostMetricDataDetails(
          metric_data=[
                oci.monitoring.models.MetricDataDetails(
                   namespace="custom_metrics",
                   compartment_id="your_compartment_ocid",
                   name="disk_usage",
                   dimensions={'resourceDisplayName': 'srv01'},
                   datapoints=[
                      oci.monitoring.models.Datapoint(
                            timestamp=datetime.datetime.strftime(
                               times_stamp,"%Y-%m-%dT%H:%M:%S.%fZ"),
                            value=disk_usage)]
                   )]
       )
    )
       
    # Get the data from response
    print(post_metric_data_response.data)
    

    Hinweis: Weitere benutzerdefinierte Metriken finden Sie unter psutil-Befehle.

  3. Fügen Sie die Ausführungsberechtigung für das Skript mit dem folgenden Befehl hinzu.

    chmod +x disk_usage.py
    
  4. Aktualisieren Sie den Datenaufnahmeendpunkt gemäß Ihrer Region.

    Hinweis: Endpunkte variieren je nach Vorgang. Verwenden Sie für das Posten von Metriken die Telemetriedatenendpunkte.

  5. Aktualisieren Sie den Namespace entsprechend Ihrer Anforderung.

    Hinweis: Verwenden Sie für den Metrik-Namespace kein reserviertes Präfix (oci_ oder oracle_).

  6. Aktualisieren Sie compartment ocid mit Ihrer Compartment-OCID und srv01 mit Ihrer Compute-Instanz.

  7. Fügen Sie weitere Metriken im Skript hinzu, falls erforderlich, um für dieselbe Compute-Instanz zu erfassen. Im Folgenden finden Sie ein Beispiel für die Erfassung von freiem Speicherplatz in GB.

    # get metric details using psutil
    disk_free=round(disk.free/1024/1024/1024,2)
    print(disk_free)
       
    # Add more metric to post if required
    post_metric_data_response = monitoring_client.post_metric_data(
          post_metric_data_details=oci.monitoring.models.PostMetricDataDetails(
             metric_data=[
                   oci.monitoring.models.MetricDataDetails(
                      namespace="custom_metrics",
                      compartment_id="your_compartment_ocid",
                      name="disk_free",
                      dimensions={'resourceDisplayName': 'srv01'},
                      datapoints=[
                         oci.monitoring.models.Datapoint(
                               timestamp=datetime.datetime.strftime(
                                  times_stamp,"%Y-%m-%dT%H:%M:%S.%fZ"),
                               value=disk_free)]
                      )]
          )
       )
    

Aufgabe 2: Benutzerdefinierte Metrikdaten verbuchen

  1. Führen Sie das Skript manuell aus CLI aus, um den Erfolg zu validieren.

    python disk_usage.py
    
    Output:
    27.1
    {
    "failed_metrics": [],
    "failed_metrics_count": 0
    }
    
  2. Planen Sie das Skript über einen Cron-Job oder eine Planungsaufgabe, um Daten häufig an den OCI-Überwachungsservice zu posten.

    • Fügen Sie die Skriptdetails in der crontab-Datei mit crontab -e auf einer Nicht-Windows-Compute-Instanz hinzu.

      Hinweis: Benutzerdefinierte Metriken können pro Sekunde gepostet werden, und das minimale Aggregationsintervall beträgt eine Minute. Als Best Practice wird empfohlen, benutzerdefinierte Metriken alle 1 Minute oder höher zu posten.

      # Cron job example with every 1 min execution.  
      */1 * * * * /usr/bin/python3 /home/opc/disk_usage.py
      
    • Prüfen Sie die Ausgabe im Cron-Log mit sudo cat /var/log/cron | grep disk.

Aufgabe 3: Datenträgernutzungsmetrik mit OCI-Metrik-Explorer anzeigen

  1. Öffnen Sie das Navigationsmenü, und klicken Sie auf Observability and Management.

  2. Klicken Sie unter Monitoring auf Metrik-Explorer.

  3. Wählen Sie das Compartment aus, das die benutzerdefinierte Metrik enthält, die Sie anzeigen möchten, und klicken Sie dann auf den Namen des Metrik-Namespace. Beispiel: custom_metrics.

  4. Klicken Sie unter Ressourcen auf Metriken. Wählen Sie Metrikname, Intervall und Dimensionsname und Dimensionswert aus.

    Metrik-Explorer

  5. Klicken Sie auf Diagramm aktualisieren, um die benutzerdefinierte Metrik im Metrik-Explorer anzuzeigen.

Bestätigungen

Autor - Dipesh Kumar Rathod (Master Principal Cloud Architect, Infrastructure)

Weitere Lernressourcen

Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem die Website education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie im Oracle Help Center.