Nota:

Control de Oracle Cloud Infrastructure con Datadog

Introducción

La plataforma de observabilidad y capacidad de gestión de Oracle Cloud tiene como objetivo satisfacer a nuestros clientes donde se encuentran. Entendemos que han estandarizado sus posiciones operativas con conocidas herramientas de observabilidad de 3a parte, y queremos ser interoperables con esas herramientas para que nuestros clientes puedan seguir utilizando las herramientas en las que han invertido con Oracle Cloud Infrastructure.

En este tutorial, le guiaremos por el procedimiento necesario para mover logs de Oracle Cloud Infrastructure a Datadog. Datadog es una conocida herramienta de observación que proporciona servicios de supervisión y seguridad que proporcionan una visibilidad completa de sus aplicaciones.

Cree una clave de API de Datadog

  1. En su cuenta de Datadog, seleccione Integraciones y, en las API, haga clic en crear clave de API. Esto generará su clave de API.

    menú de datadog

    clave de datadog

Configurar los logs que desea capturar

  1. En la consola de Oracle Cloud Infrastructure, haga clic en el menú Navegación, seleccione Grupos de logs en el menú Registro.
     

  2. Para crear un grupo de logs, haga clic en Crear grupo de logs.

    crear grupo de logs
     

  3. Seleccione el compartimento, agregue un nombre data_log_group y una descripción.

    nuevo grupo de logs
     

  4. Después de crear Grupo de logs, seleccione Logs en el menú de la izquierda.
     

  5. Haga clic en Activar log de servicio, rellene el cuadro de diálogo y haga clic en Activar log. Seleccione Categoría de log en Servicio.

    • Recurso: introduzca el log que utilizará como recurso.
    • Nombre de registro: introduzca un nombre para el registro, por ejemplo, datadog.

    Complete el resto de los campos correctamente. Consulte este ejemplo, en el que se muestra el almacén de objetos de Oracle con un nombre de cubo datadog_logs.

    log de servicio
     

Configurar la función de Oracle para la ingesta de logs en Datadog

  1. Haga clic en el menú Navegación y, a continuación, seleccione la sección Solución y plataforma. Seleccione Funciones en el menú Servicios para desarrolladores.
     

  2. Haga clic en Crear aplicación e introduzca un nombre, por ejemplo, datadog01.

    crear aplicación 
     

  3. Una vez creada la aplicación, haga clic en el nombre de la aplicación y seleccione Introducción en el menú de la izquierda.

    función oracle  

  4. Inicie Cloud Shell.  

  5. Utilice el contexto de su región.

    fn list contextfn list context
    fn use context us-phoenix-1
    
  6. Actualice el contexto con el ID de compartimento de la función.

    fn update context oracle.compartment-id <compartment-id>
    
  7. Actualice el contexto con la ubicación del registro que desea utilizar.

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

    Sustituya phx por el código de región de tres dígitos.

  8. Haga clic en Generar un token de autenticación.

    Conéctese al registro usando el token de autenticación como contraseña.

    docker login phx.ocir.io
    

    Sustituya phx por el código de región de tres dígitos.

    Se le pedirá la siguiente información:

    • Nombre de usuario: <tenancyname>/<username>
    • Contraseña: Crear una contraseña

    Nota: Si utiliza Oracle Identity Cloud Service, su nombre de usuario es <tenancyname>/oracleidentitycloudservice/<username>.

  9. Genere una función de texto fijo 'hola mundo'.

    fn init --runtime python datadog
    

    El comando fn init generará una carpeta llamada datadog con 3 archivos dentro; func.py, func.yaml y requirements.txt.

    Abra func.py y reemplace el contenido del archivo por el siguiente código:

    1. Importe los módulos de Python necesarios, como se muestra en el siguiente fragmento:

      	  import io
      	  import oci
      	  import re
      	  import os
      	  import json
      	  import sys
      	  import requests
      	  import logging
      	  import time
      	  from fdk import response
      
      
    2. Defina una función para analizar los datos de log y llamar a la API de Datadog para ingerir los logs.

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

      Para obtener información sobre el formato de los logs generados por el servicio Oracle Cloud Infrastructure Logging, consulte Visión general del formato de log.

    3. Obtenga el origen de log, el registro de hora y los datos de cada entrada 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. Cree variables para almacenar la URL de punto final de API de Datadog y el token de autenticación.

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

      Nota: defina los valores para DATADOG_HOST y DATADOG_TOKEN en func.yaml.

    5. Llame a la API de Datadog con la carga útil necesaria.

      	  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 de configuración contiene la URL del punto final de Datadog y la autenticación de formulario de token que obtuvo en el paso 1.
    El punto final de REST es https://http-intake.logs.datadoghq.com/v1/input y los detalles se pueden encontrar en la documentación de Datadog.

    func.yaml (Fin de creación)

    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 (Fin de creación)

    fdk
    datetime
    requests
    oci
    
  10. Cree su aplicación.

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

    Cambie subnetIDs para el OCID de la subred.

  11. Desplegar su función.

    fn -v deploy --app datadog
    

Crear un conector de servicio para leer logs del registro y disparar la función

  1. Haga clic en el menú Navegación y seleccione la sección Solución y plataforma. Seleccione Conectores de servicio en el menú Registro.
     

  2. Haga clic en Crear conector y seleccione el origen como Registro y Destino como Funciones.
     

  3. En Configurar conexión de origen, seleccione el nombre del compartimento, el grupo de logs datadog_log_group y los logs datadog.
     

  4. Si desea utilizar logs de auditoría, haga clic en el botón +Another log, seleccione el compartimento y agregue _Audit para el grupo de logs.

    programa

  5. Si se le solicita que cree una política para escribir en Functions, haga clic en Crear.

El conector de servicio está ahora configurado y disparará la función para introducir logs en Datadog cada vez que encuentre logs en el servicio de registro.

Visualizar logs de auditoría de OCI en Datadog

  1. En Datadog, haga clic en el menú Logs para ver los logs ingeridos de OCI.

    panel de control de datadog

Solución de problemas

En esta sección se muestra cómo puede utilizar una alerta de correo electrónico simple para supervisar el estado de la solución.

Función

Para obtener más información, consulte la documentación técnica.

Crear un tema y una suscripción para el servicio de notificación

  1. En el menú de la esquina superior izquierda, seleccione Integración de aplicación y, a continuación, seleccione Notificaciones.

  2. Haga clic en Crear tema y cree un tema con el nombre my_function_status

  3. Seleccione el tema, haga clic en Crear suscripción y utilice el siguiente ejemplo:

    • Protocolo: envíe un correo electrónico y agregue una suscripción con su correo electrónico
  4. La suscripción se creará en estado "Pendiente". Recibirá un correo electrónico de confirmación y tendrá que hacer clic en el enlace del correo electrónico para confirmar su dirección de correo electrónico.

Compruebe las métricas y cree una definición de alarma a partir de las métricas

  1. En el menú de la esquina superior izquierda, seleccione Servicios para desarrolladores y, a continuación, seleccione Funciones.

  2. Seleccione la aplicación y la función que desea supervisar

  3. En la página Métricas, vaya al gráfico "Errores de funciones", haga clic en Opciones y cree una alarma en esta consulta

  4. agregar un nombre y, en Notificación, seleccionar Servicio de destino como servicio de notificación, seleccionar el compartimento your_compartment y seleccionar Tema como my_function_status

Service Connector Hub

En esta sección se muestra cómo puede utilizar una alerta de correo electrónico simple para supervisar el estado del Service Connector Hub (SCH).

Para obtener más información, consulte la documentación técnica.

Crear un tema y una suscripción para el servicio de notificación

  1. En el menú de la esquina superior izquierda, seleccione Integración de aplicación y, a continuación, seleccione Notificaciones.

  2. Haga clic en Crear tema y cree un tema con el nombre my_sch_status

  3. Seleccione el tema, haga clic en Crear suscripción y utilice el siguiente ejemplo:

    • Protocolo: envíe un correo electrónico y agregue una suscripción con su correo electrónico
  4. La suscripción se creará en estado "Pendiente". Recibirá un correo electrónico de confirmación y tendrá que hacer clic en el enlace del correo electrónico para confirmar su dirección de correo electrónico.

Compruebe las métricas y cree una definición de alarma a partir de las métricas

  1. En el menú de la esquina superior izquierda, seleccione Registro y, a continuación, seleccione Conectores de servicio.

  2. Seleccione el conector que desea supervisar y haga clic en el enlace métricas en recursos en el panel de navegación de la izquierda

  3. En el gráfico de métricas que desea agregar a la alarma e.g., "Errores de Service Connector Hub", haga clic en Opciones y cree una alarma en esta consulta

  4. agregar un nombre y, en Notificación, seleccionar Servicio de destino como servicio de notificación, seleccionar el compartimento your_compartment y seleccionar Tema como my_sch_status

Conclusión

En este tutorial se muestra cómo los clientes de Oracle Cloud Infrastructure y Datadog pueden configurar una solución con bajo costo y altamente escalable para mover registros de Oracle Cloud Infrastructure Logging a Datadog mediante Service Connector Hub y Functions.

Agradecimientos

Autor: Igor Aragao de Souza (consultor principal de Big Data)

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.