참고:
- 이 사용지침서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 마치면 이 값을 클라우드 환경에 고유한 값으로 대체하십시오.
Datadog를 통한 Oracle Cloud Infrastructure 모니터링
소개
Oracle Cloud 관찰 가능성 및 관리 용이성 플랫폼은 고객이 있는 곳에서 고객을 만족시키는 것을 목표로 합니다. 널리 사용되는 타사 관찰 가능성 툴로 운영 자세를 표준화했으며, 당사 고객이 Oracle Cloud Infrastructure에 투자한 툴을 계속 사용할 수 있도록 해당 툴과 상호 운용되기를 원합니다.
이 사용지침서에서는 Oracle Cloud Infrastructure에서 Datadog로 로그를 이동하는 방법을 안내합니다. Datadog는 애플리케이션에 대한 완전한 가시성을 제공하는 모니터링 및 보안 서비스를 제공하는 인기 있는 관찰 툴입니다.
Datadog API 키 생성
-
Datadog 계정에서 통합을 선택하고 API에서 API 키 생성을 누릅니다. API 키가 생성됩니다.


캡처할 로그 구성
-
Oracle Cloud Infrastructure 콘솔에서 Navigation(탐색) 메뉴를 누르고 Logging(로깅) 메뉴 아래의 Log Groups(로그 그룹)를 선택합니다.
-
로그 그룹을 생성하려면 로그 그룹 생성을 누릅니다.

-
구획을 선택하고 이름 data_log_group 및 설명을 추가합니다.

-
로그 그룹을 생성한 후 왼쪽 메뉴에서 로그를 선택합니다.
-
서비스 로그 사용을 누르고 대화 상자를 채운 다음 로그 사용을 누릅니다. 서비스에서 로그 범주를 선택합니다.
- Resource: 리소스로 사용할 로그를 입력합니다.
- 로그 이름: 로그의 이름을 입력합니다(예: datadog).
나머지 필드를 적절하게 채웁니다. 버킷 이름이 datadog_logs인 Oracle Object Store가 표시된 이 예를 참조하십시오.

로그를 Datadog로 수집하기 위한 Oracle Function 구성
-
Navigation(탐색) 메뉴를 누른 다음 Solution and Platform(솔루션 및 플랫폼) 섹션을 선택합니다. 개발자 서비스 메뉴에서 함수를 선택합니다.
-
애플리케이션 생성을 누르고 이름(예: datadog01)을 입력합니다.
-
애플리케이션을 생성한 후 애플리케이션 이름을 누르고 왼쪽 메뉴에서 시작하기를 선택합니다.
-
Cloud Shell을 실행합니다.
-
지역의 컨텍스트를 사용합니다.
fn list contextfn list context fn use context us-phoenix-1 -
함수의 구획 ID로 컨텍스트를 업데이트합니다.
fn update context oracle.compartment-id <compartment-id> -
사용할 레지스트리의 위치로 컨텍스트를 업데이트합니다.
fn update context registry phx.ocir.io/<tenancy_name>/[YOUR-OCIR-REPO]phx를 3자리 지역 코드로 바꿉니다.
-
인증 토큰 생성을 누릅니다.
비밀번호로 인증 토큰을 사용하여 레지스트리에 로그인
docker login phx.ocir.iophx를 3자리 지역 코드로 바꿉니다.
다음 정보를 입력하라는 메시지가 표시됩니다.
- 사용자 이름: <tenancyname>/<username>
- 비밀번호: 비밀번호를 생성합니다.
참고: Oracle Identity Cloud Service를 사용 중인 경우 사용자 이름은 <tenancyname>/oracleidentitycloudservice/<username>입니다.
-
'hello-world' 보일러플레이트 함수를 생성합니다.
fn init --runtime python datadogfn init 명령은 func.py, func.yaml 및 requirements.txt의 3개 파일이 포함된 datadog라는 폴더를 생성합니다.
func.py를 열고 파일 내용을 다음 코드로 바꿉니다.
-
다음 코드 조각에 표시된 대로 필요한 Python 모듈을 가져옵니다.
import io import oci import re import os import json import sys import requests import logging import time from fdk import response -
로그 데이터를 구문분석하는 함수를 정의하고 Datadog API를 호출하여 로그를 수집합니다.
def handler(ctx, data: io.BytesIO=None): try: logs = json.loads(data.getvalue())Oracle Cloud Infrastructure Logging 서비스에서 생성되는 로그의 형식에 대한 자세한 내용은 Logging Format Overview를 참조하십시오.
-
각 로그 항목에서 로그 소스, 시간 기록 및 데이터를 가져옵니다.
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}) -
Datadog API 끝점 URL 및 인증 토큰을 저장할 변수를 생성합니다.
datadoghost = os.environ['DATADOG_HOST'] datadogtoken = os.environ['DATADOG_TOKEN']주: func.yaml에서 DATADOG_HOST 및 DATADOG_TOKEN에 대한 값을 설정합니다.
-
필요한 페이로드를 사용하여 Datadog API를 호출합니다.
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
구성 부분에는 Datadog 끝점 URL 및 1단계에서 얻은 토큰 형식 인증이 포함됩니다.
REST 엔드포인트는 https://http-intake.logs.datadoghq.com/v1/input이며 자세한 내용은 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: ZZZZZzzzzzzzzzzrequirements.txt
fdk datetime requests oci -
-
애플리케이션을 생성합니다.
fn create app datadog01 --annotation oracle.com/oci/subnetIds='["ocid1.subnet.oc1.phx.aaaaxxxxxxxxxxx"]'서브넷 OCID에 대한 subnetIDs를 변경합니다.
-
함수를 배치합니다.
fn -v deploy --app datadog
로깅에서 로그를 읽고 함수를 트리거하기 위한 서비스 커넥터를 생성합니다.
-
Navigation(탐색) 메뉴를 누르고 Solution and Platform(솔루션 및 플랫폼) 섹션을 선택합니다. 로깅 메뉴에서 서비스 커넥터를 선택합니다.
-
커넥터 생성을 누르고 소스를 로깅 및 대상으로 함수로 선택합니다.
-
소스 연결 구성에서 구획 이름, 로그 그룹 datadog_log_group 및 로그 datadog를 선택합니다.
-
감사 로그를 사용하려면 +Another log 버튼을 누르고 구획을 선택한 다음 로그 그룹에 대한 _Audit를 추가합니다.

-
함수에 쓰기 위한 정책을 생성하라는 메시지가 표시되면 생성을 누릅니다.
이제 서비스 커넥터가 설정되고 Logging Service에서 로그를 찾을 때마다 Datadog에 로그를 수집하기 위해 함수를 트리거합니다.
Datadog에서 OCI 감사 로그 시각화
-
Datadog에서 로그 메뉴를 눌러 OCI에서 수집된 로그를 확인합니다.

문제 해결
이 섹션에서는 간단한 전자 우편 경고를 사용하여 솔루션 상태를 모니터링하는 방법을 보여줍니다.
기능
자세한 내용은 기술 문서를 참조하십시오.
통지 서비스에 대한 토픽과 구독을 생성합니다.
-
왼쪽 상단 모서리의 메뉴에서 애플리케이션 통합을 선택한 다음 통지를 선택합니다.
-
토픽 생성을 누르고 my_function_status 이름으로 토픽을 생성합니다.
-
토픽을 선택하고 구독 생성을 누른 후 다음 예를 사용합니다.
- 프로토콜: 전자 메일을 보내고 자신의 전자 메일로 구독을 만듭니다.
-
구독이 "보류 중" 상태로 생성됩니다. 확인 전자메일이 수신되고 전자메일의 링크를 눌러 전자메일 주소를 확인해야 합니다.
측정항목 확인 및 측정항목에서 알람 정의 생성
-
왼쪽 위에 있는 메뉴에서 개발자 서비스를 선택한 다음 함수를 선택합니다.
-
모니터할 응용 프로그램과 기능을 선택합니다.
-
Metrics 페이지에서 "Functions Errors" 차트로 이동하여 Options를 누르고 Create an Alarm on this Query를 누릅니다.
-
이름을 추가하고 통지에서 대상 서비스를 통지 서비스로 선택하고 your_compartment 구획을 선택한 다음 토픽을 my_function_status으로 선택합니다.
서비스 커넥터 허브
이 섹션에서는 간단한 전자 메일 경보를 사용하여 SCH(서비스 커넥터 허브)의 상태를 모니터하는 방법을 보여줍니다.
자세한 내용은 기술 문서를 참조하십시오.
통지 서비스에 대한 토픽과 구독을 생성합니다.
-
왼쪽 상단 모서리의 메뉴에서 애플리케이션 통합을 선택한 다음 통지를 선택합니다.
-
토픽 생성을 누르고 my_sch_status 이름으로 토픽을 생성합니다.
-
토픽을 선택하고 구독 생성을 누른 후 다음 예를 사용합니다.
- 프로토콜: 전자 메일을 보내고 자신의 전자 메일로 구독을 만듭니다.
-
구독이 "보류 중" 상태로 생성됩니다. 확인 전자메일이 수신되고 전자메일의 링크를 눌러 전자메일 주소를 확인해야 합니다.
측정항목 확인 및 측정항목에서 알람 정의 생성
-
왼쪽 상단 모서리의 메뉴에서 로깅을 선택한 다음 서비스 커넥터를 선택합니다.
-
모니터할 커넥터를 선택하고 왼쪽 탐색 창의 리소스 아래에 있는 측정항목 링크를 누릅니다.
-
e.g, "Service Connector Hub 오류"를 추가하려는 측정항목 차트에서 [옵션]을 누르고 이 질의에 대한 알람을 생성합니다.
-
이름을 추가하고 통지에서 대상 서비스를 통지 서비스로 선택하고 your_compartment 구획을 선택한 다음 토픽을 my_sch_status으로 선택합니다.
결론
이 사용지침서에서는 Oracle Cloud Infrastructure 및 Datadog 고객이 서비스 커넥터 허브 및 기능을 사용하여 Oracle Cloud Infrastructure Logging에서 Datadog로 로그를 이동하기 위한 낮은 오버헤드 및 확장성이 뛰어난 솔루션을 구성하는 방법을 보여줍니다.
감사의 글
작성자 - Igor Aragao de Souza(주요 빅데이터 컨설턴트)
추가 학습 자원
docs.oracle.com/learn의 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 접근할 수 있습니다. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer로 전환할 수 있습니다.
제품 설명서는 Oracle Help Center를 참조하십시오.
Monitor Oracle Cloud Infrastructure with Datadog
F36991-06
October 2022
Copyright © 2022, Oracle and/or its affiliates.