Nota:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse para obtener una cuenta gratuita, consulte Introducción al nivel gratuito de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
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
-
En su cuenta de Datadog, seleccione Integraciones y, en las API, haga clic en crear clave de API. Esto generará su clave de API.
Configurar los logs que desea capturar
-
En la consola de Oracle Cloud Infrastructure, haga clic en el menú Navegación, seleccione Grupos de logs en el menú Registro.
-
Para crear un grupo de logs, haga clic en Crear grupo de logs.
-
Seleccione el compartimento, agregue un nombre data_log_group y una descripción.
-
Después de crear Grupo de logs, seleccione Logs en el menú de la izquierda.
-
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.
Configurar la función de Oracle para la ingesta de logs en Datadog
-
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.
-
Haga clic en Crear aplicación e introduzca un nombre, por ejemplo, datadog01.
-
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.
-
Inicie Cloud Shell.
-
Utilice el contexto de su región.
fn list contextfn list context fn use context us-phoenix-1
-
Actualice el contexto con el ID de compartimento de la función.
fn update context oracle.compartment-id <compartment-id>
-
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.
-
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>.
-
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:
-
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
-
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.
-
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})
-
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.
-
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
-
-
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.
-
Desplegar su función.
fn -v deploy --app datadog
Crear un conector de servicio para leer logs del registro y disparar la función
-
Haga clic en el menú Navegación y seleccione la sección Solución y plataforma. Seleccione Conectores de servicio en el menú Registro.
-
Haga clic en Crear conector y seleccione el origen como Registro y Destino como Funciones.
-
En Configurar conexión de origen, seleccione el nombre del compartimento, el grupo de logs datadog_log_group y los logs datadog.
-
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.
-
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
-
En Datadog, haga clic en el menú Logs para ver los logs ingeridos de OCI.
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
-
En el menú de la esquina superior izquierda, seleccione Integración de aplicación y, a continuación, seleccione Notificaciones.
-
Haga clic en Crear tema y cree un tema con el nombre my_function_status
-
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
-
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
-
En el menú de la esquina superior izquierda, seleccione Servicios para desarrolladores y, a continuación, seleccione Funciones.
-
Seleccione la aplicación y la función que desea supervisar
-
En la página Métricas, vaya al gráfico "Errores de funciones", haga clic en Opciones y cree una alarma en esta consulta
-
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
-
En el menú de la esquina superior izquierda, seleccione Integración de aplicación y, a continuación, seleccione Notificaciones.
-
Haga clic en Crear tema y cree un tema con el nombre my_sch_status
-
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
-
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
-
En el menú de la esquina superior izquierda, seleccione Registro y, a continuación, seleccione Conectores de servicio.
-
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
-
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
-
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.
Monitor Oracle Cloud Infrastructure with Datadog
F36991-06
October 2022
Copyright © 2022, Oracle and/or its affiliates.