Datadog에 Azure 로그 전송

개요

이 가이드를 사용하여 Azure 구독에서 Datadog로 로깅을 설정하세요.

Datadog 에이전트 또는 DaemonSet을 사용하여 Azure에서 Datadog로 로그를 전송할 것을 권장합니다. 일부 리소스의 경우 가능하지 않을 수 있습니다. 해당 경우, Azure 이벤트 허브를 사용하여 로그 포워딩 파이프라인을 생성하고 Azure 플랫폼 로그를 수집할 수 있습니다. Azure 플랫폼 로그를 이벤트 허브로 전달할 수 없는 리소스의 경우 Blob Storage 포워딩 옵션을 사용할 수 있습니다.

모든 사이트: 모든 Datadog 사이트는 이 페이지의 단계를 사용하여 Azure 로그를 Datadog에 전송할 수 있습니다.

US3: 조직이 Datadog US3 사이트를 사용하는 경우 Azure 네이티브 통합을 사용하여 Azure 로그 포워딩 설정을 단순화할 수 있습니다. Datadog는 가능한 경우 이 방법을 사용할 것을 권장합니다. 설정은 Azure의 Datadog 리소스를 통해 이루어집니다. 이는 로그 포워딩을 위한 Azure 이벤트 허브 프로세스를 대체합니다. 자세한 내용은 Azure 네이티브 로깅 가이드를 참조하세요.

시작하려면 아래 버튼을 클릭하고 Azure 포털에서 양식을 작성하세요. 활동 로그 스트리밍을 Datadog 계정으로 가져오는 데 필요한 Azure 리소스가 배포됩니다.

Deploy to Azure

또는 Datadog에서 Azure 활동 로그 및 Azure 플랫폼 로그(리소스 로그 포함)를 전송하는 데 사용할 수 있는 자동화된 스크립트가 제공됩니다.

Azure 활동 로그

다음 단계에 따라 로그 활동을 Datadog 계정으로 스트리밍하는 데 필요한 Azure 리소스를 생성하고. 설정하는 스크립트를 실행합니다. 이러한 리소스는 활동 로그 진단 설정, Azure 함수, 이벤트 허브 네임스페이스 및 이벤트 허브를 포함합니다.

  1. Azure 포털에서 Cloud Shell로 이동합니다.
Azure Cloud Shell
  1. 아래 명령을 실행하여 Cloud Shell 환경으로 자동 스크립트를 다운로드할 수 있습니다.

활동 로그 단계 1

(New-Object System.Net.WebClient).DownloadFile("https://raw.githubusercontent.com/DataDog/datadog-serverless-functions/master/azure/eventhub_log_forwarder/activity_logs_deploy.ps1", "activity_logs_deploy.ps1")

또한 스크립트 내용 보기에서 확인할 수 있습니다.

  1. 아래 명령을 실행하여 스크립트를 호출하고, **<API_KEY>**를 Datadog API 토큰으로, **<SUBSCRIPTION_ID>**를 Azure 구독 ID로 바꿉니다. 부수적인 파라미터을 추가해 배포를 설정합니다.

활동 로그 단계 2

./activity_logs_deploy.ps1 -ApiKey <API_KEY> -SubscriptionId <SUBSCRIPTION_ID> 

Azure 플랫폼 로그

Azure 플랫폼 로그(리소스 포함 로그)을 전송하려면 이벤트 허브와 로그 포워더(Forwarder) 함수 쌍을 배포합니다. 배포한 후에는 각 로그 소스에 대한 진단 설정을 생성하여 Datadog에 로그를 스트리밍합니다.

  1. Azure 포털에서 Cloud Shell로 이동합니다.

  2. 아래 Powershell 명령을 실행하여 자동화 스크립트를 Cloud Shell 환경에 다운로드하세요.

Platform 로그 Step 1

   (New-Object System.Net.WebClient).DownloadFile("https://raw.githubusercontent.com/DataDog/datadog-serverless-functions/master/azure/eventhub_log_forwarder/resource_deploy.ps1", "resource_deploy.ps1")

   

또한 스크립트 내용 보기에서 확인할 수 있습니다.

  1. 아래 Powershell 명령을 실행하여 **<API_KEY>**를 Datadog API 토큰으로, **<SUBSCRIPTION_ID>**를 Azure 구독 ID로 대체하여 스크립트를 호출합니다. 다른 부수적인 파라미터를 추가하여 배포를 설정할 수도 있습니다. 부수적 파라미터를 참조하세요.

Platform Logs Step 2

   ./resource_deploy.ps1 -ApiKey <API_KEY> -SubscriptionId <SUBSCRIPTION_ID> 

   
  1. 모든 Azure 리소스에 대한 진단 설정을 생성하여 로그를 Datadog로 전송합니다. 이러한 진단 설정을 방금 생성한 이벤트 허브로 스트리밍하도록 설정합니다.

플랫폼 로그 파이프라인을 위해 배포된 모든 Azure 리소스의 기본 이름에는 ResourceGroup-Location가 추가됩니다. 예: datadog-eventhub-westus. 그러나 파라미터를 재정의하여 이 규칙을 변경할 수 있습니다.

참고: 리소스는 동일한 Azure 지역에 있는 이벤트 허브로만 스트리밍할 수 있으므로 리소스 로그를 스트리밍하려는 각 지역에 대해 2단계를 반복합니다.

활동과 리소스 로그 모두 설정

활동 로그와 리소스 로그 모두를 스트리밍하려면 부수적인 파라미터 -ResourceGroupLocation<REGION> . Activity logs are a subscription-level source, so you can create your pipeline for them in any region. Once this is deployed, send resource logs through the same Event Hub by adding diagnostic settings on your resources in westus를 포함하는 첫 번째 스크립트를 실행합니다.

참고: 이 통합은 이벤트를 수집하지 않습니다.

부수적 매개 변수

참고: 다음 파라미터를 커스터마이즈할 때 커스텀 리소스 이름이 고유한지 확인하세요. 리소스 이름이 다른 Azure 리소스의 목록 내에 이미 존재하지 않는지 확인합니다.

-Flag <Default Parameter>설명
-DatadogSite <datadoghq.com>이 플래그를 다른 Datadog 사이트와 함께 파라미터로 추가하여 Datadog 인스턴스를 커스터마이즈합니다. Datadog 사이트는 가 됩니다.
-Environment <AzureCloud>이 플래그를 파라미터로 추가하여 Azure 독립 클라우드에서 스토리지를 관리합니다. 추가 옵션에는 AzureChinaCloud, AzureGermanCloudAzureUSGovernment가 있습니다.
-ResourceGroupLocation <westus2>이 플래그를 업데이트된 Azure 지역과 함께 추가하여 Azure 리소스 그룹 및 리소스가 배포되는 지역을 선택할 수 있습니다.
-ResourceGroupName <datadog-log-forwarder-rg>업데이트된 파라미터 으로 이 플래그를 추가하여 Azure 리소스 그룹의 이름을 사용자 지정합니다.
-EventhubNamespace <datadog-ns-4c6c53b4-1abd-4798-987a-c8e671a5c25e>업데이트된 파라미터 플래그와 함께 이 플래그를 추가하여 Azure 이벤트 허브 네임스페이스를 커스터마이즈하세요. 기본적으로 datadog-ns-<globally-unique-ID>가 생성됩니다.
-EventhubName <datadog-eventhub>업데이트된 파라미터 플래그와 함께 이 플래그를 추가하여 Azure 이벤트 허브의 이름을 커스터마이즈합니다.
-FunctionAppName <datadog-functionapp-1435ad2f-7c1f-470c-a4df-bc7289d8b249>업데이트된 파라미터로 이 플래그를 추가하여 Azure 함수 앱의 이름을 커스터마이즈합니다. 기본적으로 datadog-functionapp-<globally-unique-ID>가 생성됩니다.
-FunctionName <datadog-function>업데이트된 파라미터로 이 플래그를 추가하여 Azure 함수의 이름을 커스터마이즈합니다.
-DiagnosticSettingName <datadog-activity-logs-diagnostic-setting>업데이트된 파라미터로 이 플래그를 추가하여 Azure 진단 설정의 이름을 커스터마이즈하세요. (로그 활동 전송에만 해당)

설치 오류가 발생했나요? 일반적인 오류 사례는 [자동화된 로그 수집][1]을 참조하세요.

이 섹션에서는 Azure 로그를 Datadog에 전달하기 위한 수동 설정 프로세스에 대해 설명합니다:

  1. [Azure 이벤트 허브]를 생성합니다(#create-an-azure-event-hub).
  2. 이벤트 허브 트리거가 있는 Datadog-Azure 함수를 설정하여 로그를 Datadog 으로 포워딩합니다.
  3. 진단 설정을 생성하여 Azure 활동 로그, 리소스 로그 또는 이벤트 허브 둘 다에 포워딩합니다.

아래 지침은 Azure 포털을 사용한 기본 초기 설정을 안내합니다. 이러한 모든 단계는 Azure 설명서를 참조하여 CLI, Powershell 또는 리소스 템플릿을 사용하여 수행할 수 있습니다.

Azure 이벤트 허브 생성

이벤트 허브 네임스페이스 생성

이미 이벤트 허브 연결 문자열로 구성된 이벤트 허브 네임스페이스 가 있는 경우 이벤트 허브에 이벤트 허브 네임스페이스 추가로 건너뛰세요.

  1. Azure 포털에서 이벤트 허브 개요로 이동하여 생성을 클릭합니다.
  2. 필요한 대로 프로젝트 세부 정보** 및 인스턴스 세부 정보 섹션을 입력합니다.
    참고: Azure 리소스 로그를 수집하려는 경우 이벤트 허브는 수집하려는 리소스 로그와 동일한 위치에 있어야 합니다. 활동 로그 또는 기타 계정 전체 로그을 남기는 리소스의 경우 원하는 지역을 선택할 수 있습니다.
  3. 검토 + 생성을 클릭하여 리소스의 유효성을 검사합니다. 유효성 검사에 성공하면 생성을 클릭합니다.

자세한 내용은 Azure 이벤트 허브 빠른 시작을 참조하세요.

이벤트 허브에 이벤트 허브 네임스페이스 추가
  1. Azure 포털에서 새로운 이벤트 허브 네임스페이스나 기존 이벤트 허브 네임스페이스로 이동합니다.
  2. + 이벤트 허브를 클릭합니다.
  3. 기본** 및 캡처 탭 를 원하는 대로 설정할 수 있습니다.
  4. 검토 + 생성을 클릭하여 리소스의 유효성을 검사합니다. 유효성 검사에 성공하면 생성을 클릭합니다.
공유된 액세스 설정
  1. 이벤트 허브의 세부정보 페이지에서 왼쪽의 설정 탭 아래 공유 액세스 정책을 클릭합니다.
  2. + 추가를 클릭합니다.
  3. 정책 이름을 입력하고 듣기를 선택합니다.
  4. 연결 문자열 기본 키 값을 복사하여 안전한 곳에 보관하세요. 이는 Datadog-Azure 함수가 이벤트 허브와 통신할 수 있도록 허용하는 데 필요합니다.
이벤트 허브의 공유 액세스 정책의 연결 문자열 기본-키 값

Datadog-Azure 함수 생성

함수 앱 생성

이벤트 허브 연결 문자열로 구성된 함수 앱이 이미 있는 경우 [ 이벤트 허브 트리거 템플릿을 사용하여 함수 앱에 새 함수 추가]로 건너뛰세요(#add-a-new-function-to-your-function-app-using-the-event-hub-trigger-template).

  1. Azure 포털에서 함수 앱 개요로 이동하여 생성을 클릭합니다.
  2. 인스턴스 세부 정보 섹션에서 다음 설정을 설정합니다. a. 코드 라디오 버튼을 선택합니다. b. 런타임 스택의 경우 Node.js를 선택합니다. c. 버전의 경우 18 LTS를 선택합니다.
  3. 기타 설정을 원하는 대로 설정합니다.
  4. 검토 + 생성을 클릭하여 리소스의 유효성을 검사합니다. 유효성 검사에 성공하면 생성을 클릭합니다.

자세한 내용은 Azure 함수에 대한 이벤트 Azure용 허브 트리거를 참조하세요.

이벤트 허브 연결 문자열을 사용하여 함수 앱 설정
  1. 함수 앱의 상세 페이지에서 왼쪽의 설정 탭 아래 환경 변수를 클릭합니다.
  2. 앱 설정 탭 에서 연결 문자열의 이름을 입력합니다.
  3. [공유 액세스 섹션 설정]에서 이전에 얻은 값을 붙여넣습니다(#configure-shared-access).
  4. Apply를 클릭합니다.

참고: Datadog API 키 값을 함수 코드에 직접 붙여넣지 않으려면 Datadog API 키 값에 대한 환경 변수를 추가로 생성하세요.

이벤트 허브 트리거 템플릿을 사용하여 함수 앱에 함수를 추가합니다.
  1. 함수 앱 개요에서 신규 또는 기존 함수 앱을 선택합니다.
  2. 함수 탭 에서 생성을 클릭합니다.
  3. 개발 환경 필드에 대해 포털에서 개발을 선택합니다.
  4. 템플릿 선택에서 Azure 이벤트 허브 트리거를 선택합니다.
  5. 이벤트 허브 연결에서 네임스페이스 및 이벤트 허브를 선택합니다.
  6. 생성을 클릭합니다.

자세한 내용은 Azure 함수 시작하기를 참조하세요.

이벤트 허브 트리거를 Datadog로 지정
  1. 이벤트 허브 트리거의 상세 페이지(함수)에서 개발자 사이드 메뉴의 코드 + 테스트를 클릭합니다.
  2. 함수의 index.js 파일에 Datadog-Azure 함수 코드를 추가합니다.
  3. DD_API_KEY 환경 변수를 통해 Datadog API 키를 추가하거나 21번째 줄에서 <DATADOG_API_KEY>를 함수 코드로 대체하여 복사합니다.
  4. Datadog US1 사이트를 사용하지 않는 경우, 함수 앱의 설정 탭 아래에 DD_SITE 환경 변수를 사용하여 Datadog 사이트를 설정하거나 파라미터 사이트를 22줄의 함수 코드에 복사합니다.
  5. 함수를 저장합니다.
  6. 개발자 사이드 메뉴에서 통합을 클릭합니다.
  7. 트리거 및 입력에서 Azure 이벤트 허브를 클릭합니다.
  8. 다음 설정이 적용되었는지 확인합니다. a. 이벤트 허브 연결은 연결 문자열의 이름 환경 변수로 설정됩니다.
    b. 이벤트 파라미터 이름eventHubMessages로 설정됩니다.
    c. 이벤트 허브 이름은 이벤트 허브의 이름으로 설정합니다.
    d. 이벤트 허브 기수Many로 설정됩니다.
    e. 이벤트 허브 데이터 유형이 비어 있습니다.
  9. 설정을 확인하려면 개발자 사이드 메뉴에서 코드 + 테스트를 클릭합니다.
  10. 테스트/실행을 클릭하고 유효한 JSON 형식의 테스트 메시지를 입력합니다.
  11. Datadog 로그 탐색기에서 테스트 메시지를 찾습니다.

진단 설정 생성

활동 로그
  1. Azure 포털에서 활동 로그로 이동합니다.
  2. 활동 로그 내보내기를 클릭합니다.
  3. + 진단 설정 추가를 클릭합니다.
  4. 카테고리에서 Datadog로 보내려는 로그의 카테고리를 선택합니다.
  5. 목적지 세부 정보에서 이벤트 허브에 스트리밍을 선택합니다.
  6. 이벤트 허브 네임스페이스이벤트 허브 이름을 각각 이벤트 허브 트리거를 생성하는 데 사용된 이벤트 허브 네임스페이스 및 이벤트 허브 이름으로 설정합니다.
  7. 이벤트 허브 정책 이름의 경우, 원하는 경우 RootManageSharedAccessKey를 선택할 수 있습니다. 선택 사항으로, 이벤트 허브 네임스페이스 수준에서 자체 공유 액세스 정책을 생성합니다:
    a. 이벤트 허브 네임스페이스에서 왼쪽의 설정 탭 에서 공유 액세스 정책을 클릭합니다.
    b. + 추가를 클릭합니다.
    c. 정책 이름을 입력하고 전송 또는 관리를 선택합니다.
    d. 저장을 클릭합니다.
    e. 진단 설정 페이지로 돌아가서 이벤트 허브 정책 이름 필드에 공유 액세스 정책을 선택합니다. 페이지를 새로 고침해야 할 수도 있습니다.
    참고: 자세한 내용은 공유 액세스 서명을 사용하여 이벤트 허브 리소스에 대한 액세스 권한 부여하기를 참조하세요.
  8. Datadog 로그 탐색기에서 활동 로그를 확인하여 설정이 올바른지 확인합니다.

자세한 내용은 Azure 모니터의 진단 설정을 참조하세요.

리소스 로그

진단 설정을 사용하여 로그를 이벤트 허브로 포워딩하도록 Azure 리소스를 설정합니다.

  1. Azure 포털에서 로그를 Datadog로 포워딩하려는 리소스로 이동합니다.
  2. 리소스 블레이드의 모니터링 섹션에서 진단 설정을 클릭합니다.
  3. 진단 설정 추가를 클릭합니다.
  4. 이름을 입력하고 포워딩하려는 데이터의 출처를 선택합니다.
  5. 목적지 세부 정보에서 스트림 허브에 스트리밍을 선택합니다.
  6. 이벤트 허브 네임스페이스이벤트 허브 이름을 각각 이벤트 허브 트리거를 생성하는 데 사용된 이벤트 허브 네임스페이스 및 이벤트 허브 이름으로 설정합니다.
  7. 이벤트 허브 정책 이름의 경우, 원하는 경우 RootManageSharedAccessKey를 선택할 수 있습니다. 선택 사항으로, 이벤트 허브 네임스페이스 수준에서 자체 공유 액세스 정책을 생성합니다:
    a. 이벤트 허브 네임스페이스에서 왼쪽의 설정 탭 에서 공유 액세스 정책을 클릭합니다.
    b. + 추가를 클릭합니다.
    c. 정책 이름을 입력하고 전송 또는 관리를 선택합니다.
    d. 저장을 클릭합니다.
    e. 진단 설정 페이지로 돌아가서 이벤트 허브 정책 이름 필드에 공유 액세스 정책을 선택합니다. 페이지를 새로 고침해야 할 수도 있습니다.
    참고: 자세한 내용은 공유 액세스 서명을 사용하여 이벤트 허브 리소스에 대한 액세스 권한 부여하기를 참조하세요.
  8. 저장을 클릭합니다.
  9. Datadog 로그 탐색기에서 로그를 확인하여 설정이 올바른지 확인합니다.

자세한 내용은 Azure의 진단 설정 모니터링을 참조하세요.

Datadog 사이트에서는 지원되지 않습니다.

Datadog는 Azure 로그 수집용 이벤트 허브 설정을 사용할 것을 권장합니다. 그러나 이 섹션의 단계에 따라 모든 Azure 앱(서비스 로그)을 Azure Blob Storage에서 포워딩할 수도 있습니다:

  1. 아직 Azure Blob Storage를 설정하지 않은 경우 다음 방법 중 하나를 사용하여 시작하세요.
  2. 아래 지침에 따라 Blob Storage에서 로그를 포워딩하도록 Datadog-Azure 함수를 설정합니다.
  3. Azure 앱 서비스를 설정하여 Blob Storage로 로그를 포워딩합니다.
함수 앱 생성

이미 이 용도로 설정된 함수 앱이 있는 경우 [이벤트 허브 트리거 템플릿을 사용하여 함수 앱에 새 함수 추가]로 건너뛰세요(##add-a-new-function-to-your-function-app-using-the-azure-blob-storage-trigger-template).

  1. Azure 포털에서 함수 앱 개요로 이동하여 생성을 클릭합니다.
  2. 인스턴스 세부 정보 섹션에서 다음 설정을 설정합니다:
    a. 코드 라디오 버튼을 선택합니다.
    b. 런타임 스택의 경우 Node.js를 선택합니다.
    c. 버전의 경우 18 LTS를 선택합니다.
    d. 운영 체제의 경우 Windows를 선택합니다.
  3. 원하는 대로 기타 설정을 설정합니다.
  4. 검토 + 생성을 클릭하여 리소스의 유효성을 검사합니다. 유효성 검사에 성공하면 생성을 클릭합니다.
Azure Blob Storage 트리거 템플릿을 사용하여 함수 앱에 새 함수 추가
  1. 함수 앱 개요에서 신규 또는 기존 함수 앱을 선택합니다.
  2. 기능/함수 탭 에서 생성을 클릭합니다.
  3. 개발 환경 필드에서 포털에서 개발을 선택합니다.
  4. 템플릿 선택에서 Azure Blob Storage 트리거를 선택합니다.
  5. 저장소 계정 연결을 선택합니다. 참고: 자세한 내용은 Azure 스토리지 계정의 연결 문자열 설정을 참조하세요.
  6. 생성을 클릭합니다.

자세한 내용은 Azure 함수 시작하기를 참조하세요.

Blob Storage 트리거를 Datadog로 지정합니다.
  1. 이벤트 허브 트리거의 상세 페이지(함수)에서 개발자 사이드 메뉴의 코드 + 테스트를 클릭합니다.
  2. 함수의 index.js 파일에 Datadog-Azure 함수 코드를 추가합니다.
  3. Datadog API 키를 DD_API_KEY 환경 변수에 추가하거나 20줄에서 <DATADOG_API_KEY>를 함수 코드로 대체하여 복사합니다.
  4. Datadog US1 사이트를 사용하지 않는 경우, 함수 앱의 설정 탭 아래에 DD_SITE 환경 변수를 사용하여 Datadog 사이트를 설정하거나 파라미터 사이트를 21줄의 함수 코드에 복사합니다.
  5. 함수를 저장 합니다.
  6. 개발자 사이드 메뉴에서 통합을 클릭합니다.
  7. 트리거 및 입력에서 Azure Blob Storage를 클릭합니다.
  8. Blob 파라미터 이름blobContent로 설정하고 저장을 클릭합니다.
  9. 이 리소스에서 로그에 대한 Datadog 로그 탐색기를 확인하여 설정이 올바른지 검증합니다.

로그 아카이빙

로그를 Azure Blob Storage에 아카이브하려면 Azure Native 통합을 사용하는 경우에도 앱 등록이 필요합니다. 로그 을 Azure Blob Storage에 아카이브하려면 앱 등록을 사용하여 통합 설정 지침을 따르세요. 아카이브 목적으로 만든 앱 등록에는 Monitoring Reader 역할을 할당할 필요가 없습니다.

앱 등록을 설정한 후에는 Azure Blob Storage에 기록하는 로그 아카이브 생성을 수행할 수 있습니다.

참고: 저장소 버킷이 Azure Native 통합을 통해 모니터링 중인 구독에 포함된 경우, 앱 등록이 중복되었다는 경고가 Azure 통합 타일에 표시됩니다. 이 경고는 무시해도 됩니다.

참고 자료

추가 유용한 문서, 링크 및 기사: