Nota:

Monitora Oracle Cloud Infrastructure con Datadog

Introduzione

La piattaforma Observability and Manageability di Oracle Cloud mira a soddisfare la posizione dei nostri clienti. Siamo consapevoli che hanno standardizzato le loro posture operative con i popolari strumenti di osservabilità 3rd party e vogliamo essere interoperabili con questi strumenti in modo che i nostri clienti possano continuare a utilizzare gli strumenti in cui hanno investito con Oracle Cloud Infrastructure.

In questa esercitazione ti spiegheremo come spostare i log da Oracle Cloud Infrastructure in Datadog. Datadog è uno strumento molto diffuso per osservabilità che offre servizi di monitoraggio e sicurezza che forniscono visibilità completa sulle tue applicazioni.

Creare una chiave API Datadog

  1. Nell'account Datadog selezionare Integrazioni e, sotto le API, fare clic su Crea chiave API. Questa operazione genererà la chiave API.

    menu datadog

    chiave datadog

Configurare i log da acquisire

  1. Nella console di Oracle Cloud Infrastructure, fare clic sul menu Navigazione, selezionare Gruppi di log nel menu Log.
     

  2. Per creare un gruppo di log, fare clic su Crea gruppo di log.

    crea gruppo di log
     

  3. Selezionare il compartimento, aggiungere un nome data_log_group, e una descrizione.

    nuovo gruppo di log
     

  4. Dopo aver creato il gruppo di log, selezionare Log nel menu a sinistra.
     

  5. Fare clic su Abilita log servizio, compilare la finestra di dialogo e fare clic su Abilita log. Selezionare Categoria log nel servizio.

    • Risorsa: immettere il log che verrà utilizzato come risorsa.
    • Nome log: immettere un nome per il log, ad esempio datadog.

    Compilare il resto dei campi in modo appropriato. Fare riferimento a questo esempio in cui viene visualizzato l'area di memorizzazione degli oggetti Oracle con il nome bucket datadog_logs.

    log servizio
     

Configura funzione Oracle per l'inclusione dei log in Datadog

  1. Fare clic sul menu di navigazione, quindi selezionare la sezione Soluzione e piattaforma. Selezionare Funzioni nel menu Servizi per sviluppatori.
     

  2. Fare clic su Crea applicazione e immettere un nome, ad esempio datadog01.

    creazione applicazione 
     

  3. Dopo aver creato l'applicazione, fare clic sul nome dell'applicazione e selezionare Introduzione nel menu a sinistra.

    funzione oracle  

  4. Avviare Cloud Shell.  

  5. Usare il contesto per la propria area.

    fn list contextfn list context
    fn use context us-phoenix-1
    
  6. Aggiornare il contesto con l'ID compartimento della funzione.

    fn update context oracle.compartment-id <compartment-id>
    
  7. Aggiornare il contesto con la posizione del registro che si desidera utilizzare.

    fn update context registry phx.ocir.io/<tenancy_name>/[YOUR-OCIR-REPO]
    

    Sostituire phx con il codice di zona a tre cifre.

  8. Fare clic su Generate an Auth Token.

    Eseguire il login al registro utilizzando come password il token di autenticazione.

    docker login phx.ocir.io
    

    Sostituire phx con il codice di zona a tre cifre.

    Verranno richieste le informazioni riportate di seguito.

    • Nome utente: <tenancyname>/<username>
    • Password: crea una password

    Nota: se si utilizza Oracle Identity Cloud Service, il nome utente è <tenancyname>/oracleidentitycloudservice/<username>.

  9. Generare una funzione di testo standard 'hello-world'.

    fn init --runtime python datadog
    

    Il comando fn init genererà una cartella denominata datadog con 3 file all'interno; func.py, func.yaml, e requirements.txt.

    Aprire func.py e sostituire il contenuto del file con il codice seguente:

    1. Importare i moduli Python necessari, come mostrato nello snippet seguente:

      	  import io
      	  import oci
      	  import re
      	  import os
      	  import json
      	  import sys
      	  import requests
      	  import logging
      	  import time
      	  from fdk import response
      
      
    2. Definire una funzione per analizzare i dati di log e richiamare l'API Datadog per includere i log.

      def handler(ctx, data: io.BytesIO=None):
         try:
           logs = json.loads(data.getvalue())
      

      Per informazioni sul formato dei log generati dal servizio Oracle Cloud Infrastructure Logging, vedere Panoramica sul formato di log.

    3. Ottenere l'origine, l'indicatore orario e i dati del log da ogni voce del log.

      	  if "data" in item:
      	    if type(item.get("data")) is dict:
      		   data = item.get("data", {})
      	    else:
      		   data = item.get("data")
      	  else:
      		data = ""
      
      	  if "source" in item:
      		source = item.get("source")
      	  else:
      		Source = ""
      
      	  if "time" in item:
      		time = item.get("time")
      	  else:
      		time = ""
      
      	  payload = {}
      	  payload.update({"source":source})
      	  payload.update({"time": time})
      	  payload.update({"data":data})
      
      
    4. Creare variabili per memorizzare l'URL dell'endpoint dell'API Datadog e il token di autenticazione.

      	  datadoghost = os.environ['DATADOG_HOST']
      	  datadogtoken = os.environ['DATADOG_TOKEN']
      
      

      Nota: impostare i valori per DATADOG_HOST e DATADOG_TOKEN in func.yaml.

    5. Richiamare l'API Datadog con il payload richiesto.

      	  headers = {'Content-type': 'application/json', 'DD-API-KEY': datadogtoken}
      	  x = requests.post(datadoghost, data = json.dumps(payload), headers=headers)
      	  logging.getLogger().info(x.text)
      
        except (Exception, ValueError) as ex:
      	  logging.getLogger().info(str(ex))
      	  return
      
      

    La parte di configurazione contiene l'URL dell'endpoint Datadog e l'autenticazione del form token ottenuta nel passo 1.
    L'endpoint REST è https://http-intake.logs.datadoghq.com/v1/input e i dettagli sono reperibili nella documentazione datadog.

    func.yaml

    schema_version: 20180708
    name: datadogapp
    version: 0.0.1
    runtime: python
    entrypoint: /python/bin/fdk /function/func.py handler
    memory: 1024
    timeout: 120
    config:
    	DATADOG_HOST: https://http-intake.logs.datadoghq.com/v1/input
    	DATADOG_TOKEN: ZZZZZzzzzzzzzzz
    
    

    requirements.txt

    fdk
    datetime
    requests
    oci
    
  10. Creare l'applicazione.

    fn create app datadog01 --annotation oracle.com/oci/subnetIds='["ocid1.subnet.oc1.phx.aaaaxxxxxxxxxxx"]'
    

    Modificare il valore subnetIDs per l'OCID subnet.

  11. Distribuire la funzione.

    fn -v deploy --app datadog
    

Creare un connettore servizio per la lettura dei log dal log e l'attivazione della funzione

  1. Fare clic sul menu Navigazione e selezionare la sezione Soluzione e piattaforma. Selezionare Connettori servizio nel menu Log.
     

  2. Fare clic su Crea connettore e selezionare l'origine Registrazione e destinazione come funzioni.
     

  3. In Configura connessione di origine selezionare il nome del compartimento, il gruppo di log datadog_log_group e i log datadog.
     

  4. Se si desidera utilizzare i log di audit, fare clic sul pulsante +Another log, scegliere il compartimento e aggiungere _Audit per il gruppo di log.

    sch

  5. Se viene richiesto di creare un criterio per la scrittura in Funzioni, fare clic su Crea.

Il connettore servizio è ora impostato e attiverà la funzione per includere i log in Datadog ogni volta che trova i log nel servizio di log.

Visualizza i log di audit OCI in Datadog

  1. In Datadog, fare clic sul menu Log per visualizzare i log inclusi in OCI.

    dashboard datadog

Risoluzione problemi

In questa sezione viene illustrato come utilizzare un semplice avviso e-mail per monitorare lo stato della soluzione.

Funzione

Per ulteriori dettagli, consultare la documentazione tecnica.

Creare un argomento e una sottoscrizione per il servizio di notifica

  1. Dal menu nell'angolo superiore sinistro, selezionare Integrazione applicazioni, quindi selezionare Notifiche.

  2. Fare clic su Crea argomento e creare un argomento con il nome my_function_status

  3. Scegliere l'argomento, fare clic su Crea sottoscrizione e utilizzare l'esempio seguente:

    • Protocollo: inviare un'e-mail e aggiungere una sottoscrizione con l'e-mail
  4. La sottoscrizione verrà creata con stato "In sospeso". Riceverai un'email di conferma e dovrai cliccare sul link presente nell'email per confermare il tuo indirizzo email.

Controllare le metriche e creare una definizione di allarme dalle metriche

  1. Dal menu nell'angolo in alto a sinistra, selezionare Developer Services, quindi selezionare Funzioni.

  2. Scegliere l'applicazione e la funzione che si desidera monitorare

  3. Dalla pagina Metriche, andare al grafico "Errori delle funzioni", fare clic su Opzioni e creare un allarme in questa query

  4. aggiungere un nome e in Notifica selezionare Servizio di destinazione come servizio di notifica, selezionare il compartimento your_compartment e selezionare Argomento come my_function_status

Hub connettore servizio

In questa sezione viene illustrato come utilizzare un semplice avviso e-mail per monitorare lo stato dell'hub connettore servizio (SCH).

Per ulteriori dettagli, consultare la documentazione tecnica.

Creare un argomento e una sottoscrizione per il servizio di notifica

  1. Dal menu nell'angolo superiore sinistro, selezionare Integrazione applicazioni, quindi selezionare Notifiche.

  2. Fare clic su Crea argomento e creare un argomento con il nome my_sch_status

  3. Scegliere l'argomento, fare clic su Crea sottoscrizione e utilizzare l'esempio seguente:

    • Protocollo: inviare un'e-mail e aggiungere una sottoscrizione con l'e-mail
  4. La sottoscrizione verrà creata con stato "In sospeso". Riceverai un'email di conferma e dovrai cliccare sul link presente nell'email per confermare il tuo indirizzo email.

Controllare le metriche e creare una definizione di allarme dalle metriche

  1. Dal menu nell'angolo in alto a sinistra, selezionare Log, quindi selezionare Connettori servizio.

  2. Scegliere il connettore da monitorare e fare clic sul collegamento metriche sotto risorse nel riquadro di navigazione a sinistra.

  3. Nel grafico delle metriche che si desidera aggiungere l'allarme e.g, "Errori dell'hub connettore servizio", fare clic su Opzioni e creare un allarme in questa query

  4. aggiungere un nome e, in Notifica, selezionare Servizio di destinazione come servizio di notifica, selezionare il compartimento your_compartment e selezionare Argomento come my_sch_status

Conclusione

Questa esercitazione ha dimostrato in che modo i clienti di Oracle Cloud Infrastructure e Datadog possono configurare una soluzione a basso sovraccarico ed altamente scalabile per spostare i log da Oracle Cloud Infrastructure Logging a Datadog utilizzando l'hub e le funzioni del connettore del servizio.

Riconoscimenti

Autore - Igor Aragao de Souza (Principal Big Data Consultant)

Altre risorse di apprendimento

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

Per la documentazione sul prodotto, visitare Oracle Help Center.