Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever e obter uma conta grátis, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir o laboratório, substitua esses valores por valores específicos ao seu ambiente de nuvem.
Monitorar o Oracle Cloud Infrastructure com o Datadog
Introdução
A plataforma de observabilidade e gerenciabilidade do Oracle Cloud visa atender nossos clientes onde eles estão. Entendemos que eles padronizaram suas posturas operacionais com ferramentas populares de Observabilidade da 3a parte e queremos ser interoperáveis com essas ferramentas para que nossos clientes possam continuar usando as ferramentas nas quais investiram com o Oracle Cloud Infrastructure.
Neste tutorial, vamos explicar como você pode mover logs do Oracle Cloud Infrastructure para o Datadog. O Datadog é uma ferramenta popular de Observabilidade que fornece serviços de monitoramento e segurança que oferecem visibilidade total aos seus aplicativos.
Criar uma chave de API do Datadog
-
Na sua conta Datadog, selecione Integrações e, em APIs, clique em criar chave de API. Isso gerará sua chave de API.
Configure os logs que você deseja capturar
-
Na console do Oracle Cloud Infrastructure, clique no menu Navegação e selecione Grupos de Logs no menu Log.
-
Para criar um grupo de logs, clique em Criar Grupo de Logs.
-
Selecione seu compartimento, adicione um nome data_log_group e uma descrição.
-
Depois de criar o Grupo de Logs, selecione Logs no menu esquerdo.
-
Clique em Habilitar Log de Serviço, preencha nossa caixa de diálogo e clique em Habilitar Log. Selecione Categoria de Log no Serviço.
- Recurso: Informe o log que você usará como recurso.
- Nome do log: Digite um nome para seu log, por exemplo, datadog.
Preencha os demais campos corretamente. Consulte este exemplo, no qual o Oracle Object Store com um nome de bucket datadog_logs é mostrado.
Configurar o Oracle Function para ingerir logs no Datadog
-
Clique no menu Navegação e selecione a seção Solução e Plataforma. Selecione Funções no menu Serviços do Desenvolvedor.
-
Clique em Criar Aplicativo e digite um nome, por exemplo, datadog01.
-
Depois de criar o Aplicativo, clique no nome do aplicativo e selecione Conceitos Básicos no menu esquerdo.
-
Inicie o Cloud Shell.
-
Use o contexto da sua região.
fn list contextfn list context fn use context us-phoenix-1
-
Atualize o contexto com o ID do compartimento da função.
fn update context oracle.compartment-id <compartment-id>
-
Atualize o contexto com o local do Registro que você deseja usar.
fn update context registry phx.ocir.io/<tenancy_name>/[YOUR-OCIR-REPO]
Substitua phx pelo código de região de três dígitos.
-
Clique em Gerar um Token de Autenticação.
Acesse o Registro usando o Token de Autenticação como senha.
docker login phx.ocir.io
Substitua phx pelo código de região de três dígitos.
Você será solicitado a especificar as seguintes informações:
- Nome de usuário: <tenancyname>/<username>
- Senha: Crie uma senha
Observação: Se você estiver usando o Oracle Identity Cloud Service, seu nome de usuário será <tenancyname>/oracleidentitycloudservice/<username>.
-
Gere uma função padrão.
fn init --runtime python datadog
O comando fn init gerará uma pasta chamada datadog com 3 arquivos internos; func.py, func.yaml e requirements.txt.
Abra func.py e substitua o conteúdo do arquivo pelo seguinte código:
-
Importe os módulos Python necessários, conforme mostrado no seguinte trecho de código:
import io import oci import re import os import json import sys import requests import logging import time from fdk import response
-
Defina uma função para fazer parsing dos dados de log e chame a API Datadog para ingerir os logs.
def handler(ctx, data: io.BytesIO=None): try: logs = json.loads(data.getvalue())
Para obter informações sobre o formato dos logs gerados pelo serviço Oracle Cloud Infrastructure Logging, consulte Visão Geral do Formato de Log.
-
Obtenha a origem de log, o carimbo de data e os dados de cada entrada de 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})
-
Crie variáveis para armazenar o URL do ponto final da API do Datadog e o token de autenticação.
datadoghost = os.environ['DATADOG_HOST'] datadogtoken = os.environ['DATADOG_TOKEN']
Observação: Defina os valores para DATADOG_HOST e DATADOG_TOKEN em func.yaml.
-
Chame a API Datadog, com o payload necessário.
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
A parte de configuração contém o URL do ponto final do Datadog e a autenticação do form de token que você obteve na Etapa 1.
O ponto final REST é https://http-intake.logs.datadoghq.com/v1/input e os detalhes podem ser encontrados na documentação do 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
-
-
Crie seu aplicativo.
fn create app datadog01 --annotation oracle.com/oci/subnetIds='["ocid1.subnet.oc1.phx.aaaaxxxxxxxxxxx"]'
Altere subnetIDs para o OCID da sua sub-rede.
-
Implante sua função.
fn -v deploy --app datadog
Criar um Conector de Serviço para ler logs do serviço Logging e acionar a Função
-
Clique no menu Navegação e selecione a seção Solução e Plataforma. Selecione Conectores de Serviço no menu Log.
-
Clique em Criar Conector e selecione a origem como Log e Destino como Funções.
-
Em Configurar Conexão de Origem, selecione o nome do compartimento, o grupo de logs datadog_log_group e os logs datadog.
-
Se você quiser usar logs de auditoria, clique no botão +Another log, escolha seu compartimento e adicione _Audit para Grupo de Logs.
-
Se for solicitado a criar uma política para gravar no serviço Functions, clique em Criar.
O Conector de Serviço agora está configurado e acionará a Função para ingerir logs no Datadog toda vez que ele encontrar logs no Serviço de Log.
Visualize logs de auditoria do OCI no Datadog
-
No Datadog, clique no menu Logs para ver os logs ingeridos do OCI.
Solução de Problemas
Esta seção mostra como você pode usar um alerta de e-mail simples para monitorar o status da sua solução.
Função
Para obter mais detalhes, consulte a documentação técnica.
Criar um tópico e uma assinatura para o Notification Service
-
No menu do canto superior esquerdo, selecione Integração de Aplicativos e, em seguida, selecione Notificações
-
Clique em Criar Tópico e crie um tópico com o nome my_function_status
-
Escolha seu tópico, clique em Criar Assinatura e use o seguinte exemplo:
- Protocolo: Envie um e-mail e adicione uma inscrição com seu e-mail
-
A assinatura será criada no status "Pendente". Você receberá um e-mail de confirmação e precisará clicar no link do e-mail para confirmar seu endereço de e-mail.
Verificar Métricas e criar uma definição de alarme com base em métricas
-
No menu no canto superior esquerdo, selecione Serviços do Desenvolvedor e, em seguida, selecione Funções
-
Escolha o aplicativo e a função que você deseja monitorar
-
Na página Métricas, vá para o gráfico "Erros de Funções", clique em Opções e Crie um Alarme nesta Consulta
-
adicione um nome e, em Notificação, selecione Serviço de destino como serviço de notificação, selecione o compartimento your_compartment e selecione Tópico como my_function_status
Service Connector Hub
Esta Seção mostra como você pode usar um alerta de e-mail simples para monitorar o status do SCH (Service Connector Hub).
Para obter mais detalhes, consulte a documentação técnica.
Criar um tópico e uma assinatura para o Notification Service
-
No menu do canto superior esquerdo, selecione Integração de Aplicativos e, em seguida, selecione Notificações
-
Clique em Criar Tópico e crie um tópico com o nome my_sch_status
-
Escolha seu tópico, clique em Criar Assinatura e use o seguinte exemplo:
- Protocolo: Envie um e-mail e adicione uma inscrição com seu e-mail
-
A assinatura será criada no status "Pendente". Você receberá um e-mail de confirmação e precisará clicar no link do e-mail para confirmar seu endereço de e-mail.
Verificar Métricas e criar uma definição de alarme com base em métricas
-
No menu no canto superior esquerdo, selecione Registro em Log e, em seguida, selecione Conectores de Serviço
-
Escolha o conector que você deseja monitorar e clique no link métricas em recursos no painel de navegação esquerdo
-
No gráfico de métricas que você deseja adicionar ao alarme e.g., "Erros do Service Connector Hub", clique em Opções e Crie um Alarme nesta Consulta
-
adicione um nome e, em Notificação, selecione Serviço de destino como serviço de notificação, selecione o compartimento your_compartment e selecione Tópico como my_sch_status
Conclusão
Este tutorial mostrou como os clientes do Oracle Cloud Infrastructure e Datadog podem configurar uma solução de baixo custo e altamente escalável para mover logs do Oracle Cloud Infrastructure Logging para o Datadog usando o Service Connector Hub e Functions.
Agradecimentos
Autor - Igor Aragao de Souza (Consultor Principal de Big Data)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Monitor Oracle Cloud Infrastructure with Datadog
F36991-06
October 2022
Copyright © 2022, Oracle and/or its affiliates.