Nota:

Monitora l'utilizzo del disco utilizzando le metriche personalizzate di Oracle Cloud Infrastructure

Introduzione

I servizi della piattaforma Oracle Observability and Management consentono ai clienti di monitorare, analizzare e gestire le applicazioni e gli ambienti dell'infrastruttura multicloud. Utilizza le metriche per monitorare le risorse e gli allarmi per avvisare l'utente quando tali metriche soddisfano trigger specificati dagli allarmi. Le metriche vengono emesse al servizio di monitoraggio come datapoint di tipo raw o coppie data/ora e valore, insieme a dimensioni e metadati.

Le metriche provengono da diverse fonti:

  1. Metriche delle risorse pubblicate automaticamente dalle risorse di Oracle Cloud Infrastructure (OCI). ad esempio CpuUtilization.
  2. Metriche personalizzate pubblicate mediante l'API del monitoraggio.

Obiettivo

Monitora l'utilizzo del disco utilizzando le metriche personalizzate OCI.

Prerequisiti

Task 1: Creare il file Python

  1. Creare disk_usage.py nell'istanza di computazione in cui è necessario raccogliere la metrica di utilizzo del disco.

    Nota: utilizzare l'editor di testo preferito in base al sistema operativo.

  2. Copiare lo script di esempio riportato di seguito in 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)
    

    Nota: fare riferimento ai comandipsutil per estrarre più metriche personalizzate.

  3. Aggiungere l'autorizzazione di esecuzione allo script utilizzando il comando seguente.

    chmod +x disk_usage.py
    
  4. Aggiorna l'endpoint di inclusione telemetria in base alla tua area.

    Nota: gli endpoint variano a seconda dell'operazione. Per le metriche di invio, utilizzare gli endpoint di telemetria-ingestione.

  5. Aggiornare lo spazio di nomi in base alle esigenze.

    Nota: per lo spazio di nomi delle metriche, non utilizzare un prefisso riservato (oci_ o oracle_).

  6. Aggiornare compartment ocid con l'OCID del compartimento e srv01 con la tua istanza di computazione.

  7. Aggiungere altre metriche nello script, se necessario per raccogliere la stessa istanza di computazione. Di seguito è riportato un esempio per raccogliere spazio libero su disco 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)]
                      )]
          )
       )
    

Task 2: Contabilizza dati metrica personalizzati

  1. Eseguire lo script manualmente dall'interfaccia CLI per verificare l'esito positivo.

    python disk_usage.py
    
    Output:
    27.1
    {
    "failed_metrics": [],
    "failed_metrics_count": 0
    }
    
  2. Pianificare lo script tramite il job cron o il task di pianificazione per pubblicare frequentemente i dati nel servizio di monitoraggio OCI.

    • Aggiungere i dettagli dello script nella tabella cron usando crontab -e nell'istanza di computazione non Windows.

      Nota: le metriche personalizzate possono essere pubblicate con frequenza ogni secondo e l'intervallo di aggregazione minimo è di un minuto. La procedura ottimale prevede di pubblicare una metrica personalizzata ogni 1 minuto o intervallo superiore.

      # Cron job example with every 1 min execution.  
      */1 * * * * /usr/bin/python3 /home/opc/disk_usage.py
      
    • Controllare l'output nel log cron utilizzando sudo cat /var/log/cron | grep disk.

Task 3: visualizza la metrica di utilizzo del disco mediante OCI Metrics Explorer

  1. Aprire il menu di navigazione e fare clic su Osservabilità e gestione.

  2. In Monitoraggio fare clic su Esplora metriche.

  3. Scegliere il compartimento che contiene la metrica personalizzata da visualizzare, quindi fare clic sul nome dello spazio di nomi metrica. Ad esempio custom_metrics.

  4. In Risorse fare clic su Metriche. Selezionare nome metrica, intervallo, nome dimensione e valore dimensione.

    Explorer metriche

  5. Fare clic su Aggiorna grafico per visualizzare la metrica personalizzata in Metrics Explorer.

Approvazioni

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

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Explorer di Oracle Learning.

Per la documentazione sul prodotto, visitare il sito Oracle Help Center.