Logstash 및 DCR 기반 API를 사용하여 Microsoft Sentinel 로그 Stream

중요

DCR(데이터 수집 규칙)과 함께 Logstash 출력 플러그 인을 사용한 데이터 수집은 현재 공개 미리 보기로 제공됩니다. 이 기능은 서비스 수준 계약 없이 제공됩니다. 자세한 내용은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

Microsoft Sentinel Logstash 출력 플러그 인은 DCR(데이터 수집 규칙)을 통한 파이프라인 변환 및 고급 구성을 지원합니다. 플러그 인은 외부 데이터 원본의 로그를 Log Analytics 또는 Microsoft Sentinel 사용자 지정 또는 표준 테이블로 전달합니다.

이 문서에서는 Logstash 플러그 인을 설정하여 데이터를 Log Analytics로 스트리밍하거나 DCR을 사용하여 Microsoft Sentinel 출력 스키마를 완전히 제어하는 방법을 알아봅니다.

플러그 인을 사용하면 다음을 수행할 수 있습니다.

  • 열 이름 및 형식의 구성을 제어합니다.
  • 필터링 또는 보강과 같은 수집 시간 변환을 수행합니다.
  • 사용자 지정 로그를 사용자 지정 테이블에 수집하거나 Syslog 입력 스트림을 Log Analytics Syslog 테이블에 수집합니다.

표준 테이블로의 수집은 사용자 지정 로그 수집에 지원되는 표준 테이블로만 제한됩니다.

Logstash 데이터 수집 엔진 작업에 대한 자세한 내용은 Logstash 시작을 참조하세요.

아키텍처 개요

Logs 수집 API를 통해 Log Analytics로 데이터를 보내는 입력, 필터 및 출력 플러그 인 단계를 보여 주는 Logstash 아키텍처의 다이어그램

Logstash 엔진은 다음 세 가지 구성 요소로 구성됩니다.

  • 입력 플러그 인: 다양한 원본의 사용자 지정된 데이터 컬렉션입니다.
  • 필터 플러그 인: 지정된 기준에 따라 데이터의 조작 및 정규화
  • 출력 플러그 인: 수집 및 처리된 데이터를 다양한 대상으로 사용자 지정 전송합니다.

참고

  • Microsoft는 여기에 설명된 Microsoft Sentinel 제공 Logstash 출력 플러그 인만 지원합니다. 현재 플러그 인은 microsoft-sentinel-log-analytics-logstash-output-plugin, v2.1.0입니다. 출력 플러그 인과 관련된 문제에 대한 지원 티켓을 열 수 있습니다.
  • Microsoft는 Microsoft Sentinel 타사 Logstash 출력 플러그 인 또는 모든 유형의 다른 Logstash 플러그 인 또는 구성 요소를 지원하지 않습니다.
  • 플러그 인의 Logstash 버전 지원에 대한 필수 구성 요소를 참조하세요.

플러그 인은 Logs 수집 API를 사용하여 JSON 형식의 데이터를 Log Analytics 작업 영역으로 보냅니다. 데이터는 사용자 지정 로그 또는 표준 테이블로 수집됩니다.

Logstash에서 Microsoft Sentinel 출력 플러그 인 배포

플러그 인을 설정하려면 다음 단계를 수행합니다.

  • 필수 구성 요소 검토
  • 플러그 인 설치
  • 샘플 파일 만들기
  • 필요한 DCR 관련 리소스 만들기
  • Logstash 구성 파일 구성
  • Logstash 다시 시작
  • Microsoft Sentinel 들어오는 로그 보기
  • 출력 플러그 인 감사 로그 모니터링

Logstash 플러그 인 필수 구성 요소

  • 지원되는 버전의 Logstash를 설치합니다. 플러그 인은 다음 Logstash 버전을 지원합니다.

    • 7.0 - 7.17.13
    • 8.0 - 8.9
    • 8.11 - 8.15
    • 8.19.2
    • 9.0.8
    • 9.1.10
    • 9.2.4 - 9.2.5

    참고

    Logstash 8을 사용하는 경우 파이프라인에서 ECS를 사용하지 않도록 설정하는 것이 좋습니다.

  • 최소 기여자 권한이 있는 Log Analytics 작업 영역이 있는지 확인합니다.

  • 작업 영역에서 DCR 개체를 만들 수 있는 권한이 있는지 확인합니다.

플러그 인 설치

Microsoft Sentinel 출력 플러그 인은 RubyGems의 Logstash 컬렉션에서 사용할 수 있습니다.

샘플 파일 만들기

이 섹션에서는 다음 시나리오 중 하나에서 샘플 파일을 만듭니다.

  • 사용자 지정 로그에 대한 샘플 파일 만들기
  • Syslog 테이블에 로그를 수집하는 샘플 파일 만들기

사용자 지정 로그에 대한 샘플 파일 만들기

이 시나리오에서는 이벤트를 Microsoft Sentinel 보내도록 Logstash 입력 플러그 인을 구성합니다. 이 예제에서는 생성기 입력 플러그 인을 사용하여 이벤트를 시뮬레이션합니다. 다른 입력 플러그 인을 사용할 수 있습니다.

이 예제에서 Logstash 구성 파일은 다음과 같습니다.

input {
      generator {
            lines => [
                 "This is a test log message"
            ]
           count => 10
      }
}

샘플 파일을 만들려면 다음 단계를 수행합니다.

  1. 아래의 출력 플러그 인 구성을 Logstash 구성 파일에 복사합니다.

    output {
        microsoft-sentinel-log-analytics-logstash-output-plugin {
          create_sample_file => true
          sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/tmp" for Linux. 
        }
    }
    
  2. 참조된 파일 경로가 이미 있는지 확인한 다음 Logstash를 시작합니다.

    플러그 인은 샘플링할 이벤트가 10개 있거나 Logstash 프로세스가 정상적으로 종료되면 구성된 경로에 라는 sampleFile<epoch seconds>.json 샘플 파일에 10개의 레코드를 씁니다. 예: c:\temp\sampleFile1648453501.json. 플러그 인에서 만드는 샘플 파일의 일부는 다음과 같습니다.

    [
            {
                "host": "logstashMachine",
                "sequence": 0,
                "message": "This is a test log message",
                "ls_timestamp": "2022-03-28T17:45:01.690Z",
                "ls_version": "1"
            },
            {
                "host": "logstashMachine",
                "sequence": 1
        ...
    
        ]    
    

    플러그 인은 모든 레코드에 이러한 속성을 자동으로 추가합니다.

    • ls_timestamp: 입력 플러그 인에서 레코드를 받은 시간입니다.
    • ls_version: Logstash 파이프라인 버전입니다.

    DCR을 만들 때 이러한 필드를 제거할 수 있습니다.

Syslog 테이블에 로그를 수집하는 샘플 파일 만들기

이 시나리오에서는 syslog 이벤트를 Microsoft Sentinel 보내도록 Logstash 입력 플러그 인을 구성합니다.

  1. Logstash 컴퓨터로 전달된 syslog 메시지가 아직 없는 경우 로거 명령을 사용하여 메시지를 생성할 수 있습니다. 예를 들어(Linux 경우)

    logger -p local4.warn --rfc3164 --tcp -t CEF "0|Microsoft|Device|cef-test|example|data|1|here is some more data for the example" -P 514 -d -n 127.0.0.1
    

    Logstash 입력 플러그 인의 예는 다음과 같습니다.

    input {
         syslog {
             port => 514
        }
    }
    
  2. 아래의 출력 플러그 인 구성을 Logstash 구성 파일에 복사합니다.

    output {
        microsoft-sentinel-log-analytics-logstash-output-plugin {
          create_sample_file => true
          sample_file_path => "<enter the path to the file in which the sample data will be written>" #for example: "c:\\temp" (for windows) or "/tmp" for Linux. 
        }
    }
    
  3. 파일 경로가 이미 있는지 확인한 다음 Logstash를 시작합니다.

    플러그 인은 샘플링할 이벤트가 10개 있거나 Logstash 프로세스가 정상적으로 종료되면 구성된 경로에 라는 sampleFile<epoch seconds>.json 샘플 파일에 10개의 레코드를 씁니다. 예: c:\temp\sampleFile1648453501.json. 플러그 인에서 만드는 샘플 파일의 일부는 다음과 같습니다.

    [
            {
                "logsource": "logstashMachine",
                "facility": 20,
                "severity_label": "Warning",
                "severity": 4,
                "timestamp": "Apr  7 08:26:04",
                "program": "CEF:",
                "host": "127.0.0.1",
                "facility_label": "local4",
                "priority": 164,
                "message": "0|Microsoft|Device|cef-test|example|data|1|here is some more data for the example",
                "ls_timestamp": "2022-04-07T08:26:04.000Z",
                "ls_version": "1"
            }
    ]    
    
    

    플러그 인은 모든 레코드에 이러한 속성을 자동으로 추가합니다.

    • ls_timestamp: 입력 플러그 인에서 레코드를 받은 시간입니다.
    • ls_version: Logstash 파이프라인 버전입니다.

    DCR을 만들 때 이러한 필드를 제거할 수 있습니다.

필요한 DCR 리소스 만들기

Microsoft Sentinel DCR 기반 Logstash 플러그 인을 구성하려면 먼저 DCR 관련 리소스를 만듭니다.

이 섹션에서는 다음 시나리오 중 하나에서 DCR에 사용할 리소스를 만듭니다.

  • 사용자 지정 테이블에 수집하기 위한 DCR 리소스 만들기
  • 표준 테이블에 수집할 DCR 리소스 만들기

사용자 지정 테이블에 수집하기 위한 DCR 리소스 만들기

사용자 지정 테이블에 데이터를 수집하려면 다음 단계를 수행합니다(AZURE PORTAL(REST API)를 사용하여 로그 모니터링 Azure 데이터 보내기 자습서를 기반으로 합니다.

  1. 필수 구성 요소를 검토합니다.

  2. 애플리케이션을 구성합니다.

  3. 사용자 지정 로그 테이블을 추가합니다.

  4. 이전 섹션에서 만든 샘플 파일을 사용하여 샘플 데이터를 구문 분석하고 필터링합니다.

  5. DCR에서 정보를 수집합니다.

  6. DCR에 권한을 할당합니다.

    샘플 데이터 보내기 단계를 건너뜁니다.

문제가 발생하는 경우 문제 해결 단계를 참조하세요.

표준 테이블에 수집할 DCR 리소스 만들기

Syslog 또는 CommonSecurityLog와 같은 표준 테이블에 데이터를 수집하려면 REST API(Resource Manager 템플릿)를 사용하여 로그 모니터링에 Azure 데이터 보내기 자습서를 기반으로 하는 프로세스를 사용합니다. 이 자습서에서는 데이터를 사용자 지정 테이블에 수집하는 방법을 설명하지만, 데이터를 표준 테이블로 수집하도록 프로세스를 쉽게 조정할 수 있습니다. 아래 단계는 단계의 관련 변경 내용을 나타냅니다.

  1. 필수 구성 요소를 검토합니다.

  2. 작업 영역 세부 정보를 수집합니다.

  3. 애플리케이션을 구성합니다.

    Log Analytics 작업 영역에서 새 테이블 만들기 단계를 건너뜁니다. 테이블이 Log Analytics에 이미 정의되어 있기 때문에 이 단계는 데이터를 표준 테이블로 수집할 때는 관련이 없습니다.

  4. DCR을 만듭니다. 이 단계에서는 다음을 수행합니다.

    • 이전 섹션에서 만든 샘플 파일을 제공합니다.
    • 만든 샘플 파일을 사용하여 속성을 정의합니다 streamDeclarations . 샘플 파일의 각 필드에는 동일한 이름과 적절한 형식의 해당 열이 있어야 합니다(아래 예제 참조).
    • 사용자 지정 테이블 대신 표준 테이블의 이름으로 속성 값을 outputStream 구성합니다. 사용자 지정 테이블과 달리 표준 테이블 이름에는 접미사가 _CL 없습니다.
    • 테이블 이름의 접두사는 대신 Custom-이어야 Microsoft- 합니다. 이 예제에서 속성 값은 outputStream 입니다 Microsoft-Syslog.
  5. DCR에 권한을 할당합니다.

    샘플 데이터 보내기 단계를 건너뜁니다.

문제가 발생하는 경우 문제 해결 단계를 참조하세요.

예: Syslog 테이블에 데이터를 수집하는 DCR

다음 사항에 유의하세요.

  • 열 이름 및 형식은 streamDeclarations 샘플 파일 필드와 동일해야 하지만 모두 지정할 필요는 없습니다. 예를 들어 아래 PRIDCR에서 , typels_version 필드는 열에서 streamDeclarations 생략됩니다.
  • 속성은 dataflows 입력을 Syslog 테이블 형식으로 변환하고 를 로 Microsoft-Syslog설정합니다outputStream.
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "dataCollectionRuleName": {
      "type": "String",
      "metadata": {
        "description": "Specifies the name of the Data Collection Rule to create."
      }
    },
    "location": {
      "defaultValue": "[resourceGroup().location]",
      "type": "String",
      "metadata": {
        "description": "Specifies the location in which to create the Data Collection Rule."
      }
    },
    "workspaceResourceId": {
      "type": "String",
      "metadata": {
        "description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Insights/dataCollectionRules",
      "apiVersion": "2021-09-01-preview",
      "name": "[parameters('dataCollectionRuleName')]",
      "location": "[parameters('location')]",
      "properties": {
        "streamDeclarations": {
          "Custom-SyslogStream": {
            "columns": [
              { "name": "ls_timestamp", "type": "datetime" },
              { "name": "timestamp", "type": "datetime" },
              { "name": "message", "type": "string" },
              { "name": "facility_label", "type": "string" },
              { "name": "severity_label", "type": "string" },
              { "name": "host", "type": "string" },
              { "name": "logsource", "type": "string" }
            ]
          }
        },
        "destinations": {
          "logAnalytics": [
            {
              "workspaceResourceId": "[parameters('workspaceResourceId')]",
              "name": "clv2ws1"
            }
          ]
        },
        "dataFlows": [
          {
            "streams": ["Custom-SyslogStream"],
            "destinations": ["clv2ws1"],
            "transformKql": "source | project TimeGenerated = ls_timestamp, EventTime = todatetime(timestamp), Computer = logsource, HostName = logsource, HostIP = host, SyslogMessage = message, Facility = facility_label, SeverityLevel = severity_label",
            "outputStream": "Microsoft-Syslog"
          }
        ]
      }
    }
  ],
  "outputs": {
    "dataCollectionRuleId": {
      "type": "String",
      "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
    }
  }
}

Logstash 구성 파일 구성

플러그 인은 서비스 주체 (클라이언트 자격 증명) 및 관리 ID (암호 없는)의 두 가지 인증 방법을 지원합니다. 사용자 환경에 맞는 메서드를 선택합니다.

서비스 주체 인증

서비스 주체 인증을 사용하여 사용자 지정 테이블에 로그를 수집하도록 Logstash 구성 파일을 구성하려면 다음 값을 검색합니다.

필드 검색 방법
client_app_Id Application (client) ID 섹션에서 사용한 자습서에 따라 DCR 리소스를 만들 때 3단계에서 만든 값입니다.
client_app_secret 이 섹션에서 사용한 자습서에 따라 DCR 리소스를 만들 때 5단계에서 만든 클라이언트 비밀 값입니다.
tenant_id 구독의 테넌트 ID입니다. 홈 > Microsoft Entra ID > 개요 > 기본 정보에서 테넌트 ID를 찾을 수 있습니다.
data_collection_endpoint 이 섹션에서 사용한 자습서에 따라 DCR 리소스를 만들 때 3단계의 URI 값 logsIngestion 입니다.
dcr_immutable_id 이 섹션에서 사용한 자습서에 따라 DCR immutableId 리소스를 만들 때 6단계의 DCR 값입니다.
dcr_stream_name DCR 리소스를 만들 때 6단계에서 설명한 대로 사용자 지정 테이블의 경우 DCR의 JSON 보기로 이동하여 속성을 복사합니다 dataFlows>streams . dcr_stream_name 아래 예제에서 를 참조하세요. 표준 테이블의 경우 값은 입니다 Custom-SyslogStream.

필요한 값을 검색한 후:

  1. 이전 단계에서 만든 Logstash 구성 파일의 출력 섹션을 아래 예제로 바꿉니다.
  2. 아래 예제의 자리 표시자 문자열을 검색한 값으로 바꿉니다.
  3. 특성을 로 create_sample_file 변경해야 합니다 false.
예: 서비스 주체 출력 플러그 인 구성
output {
    microsoft-sentinel-log-analytics-logstash-output-plugin {
      client_app_Id => "<enter your client_app_id value here>"
      client_app_secret => "<enter your client_app_secret value here>"
      tenant_id => "<enter your tenant id here>"
      data_collection_endpoint => "<enter your logsIngestion URI here>"
      dcr_immutable_id => "<enter your DCR immutableId here>"
      dcr_stream_name => "<enter your stream name here>"
      create_sample_file=> false
      sample_file_path => "c:\\temp"
    }
}

관리 ID 인증(암호 없음)

가 로 true설정되면 managed_identity 플러그 인은 클라이언트 암호 없이 인증합니다. 플러그 인은 런타임 시 다음 순서로 적절한 ID 메커니즘을 자동으로 검색합니다.

  1. AKS 워크로드 ID - 환경 변수 AZURE_CLIENT_ID, AZURE_TENANT_IDAZURE_FEDERATED_TOKEN_FILE 가 있는 경우(AKS에 의해 자동으로 설정됨) 플러그 인은 OIDC 토큰 교환을 수행합니다.
  2. Azure Arc - 호스트에서 Azure 연결된 컴퓨터 에이전트(azcmagent)가 검색되면 플러그 인은 하이브리드 및 온-프레미스 서버에 Azure Arc 관리 ID 엔드포인트를 사용합니다.
  3. IMDS — 그렇지 않으면 플러그 인이 Azure VM 및 VMSS에 대한 AZURE IMDS(인스턴스 메타데이터 서비스)로 대체됩니다.

관리 ID에 필요한 구성:

필드 설명
managed_identity 부울, false 기본적으로. 암호 없는 인증을 사용하도록 설정하려면 로 true 설정합니다.
data_collection_endpoint 문자열입니다. DCE에 대한 logsIngestion URI입니다.
dcr_immutable_id 문자열입니다. DCR immutableId입니다.
dcr_stream_name 문자열입니다. 데이터 스트림의 이름입니다.
managed_identity_object_id 선택 사항. 문자열, 기본적으로 비어 있습니다. 사용자가 할당한 관리 ID의 개체 ID입니다. VM에 여러 사용자 할당 ID가 있는 경우 필요합니다. 시스템 할당 관리 ID를 생략합니다.
예: 시스템 할당 관리 ID
output {
    microsoft-sentinel-log-analytics-logstash-output-plugin {
      managed_identity => true
      data_collection_endpoint => "<enter your DCE logsIngestion URI here>"
      dcr_immutable_id => "<enter your DCR immutableId here>"
      dcr_stream_name => "<enter your stream name here>"
    }
}
예: 사용자 할당 관리 ID
output {
    microsoft-sentinel-log-analytics-logstash-output-plugin {
      managed_identity => true
      managed_identity_object_id => "<enter the object ID of your user-assigned identity>"
      data_collection_endpoint => "<enter your DCE logsIngestion URI here>"
      dcr_immutable_id => "<enter your DCR immutableId here>"
      dcr_stream_name => "<enter your stream name here>"
    }
}

참고

  • Azure Arc를 사용하는 경우 Logstash 프로세스는 그룹의 구성원 himds 인 사용자로 실행되어 챌린지 토큰을 읽어야 합니다. 자세한 내용은 Azure Arc 관리 ID 설명서를 참조하세요.
  • 보안상의 이유로 Logstash 구성 파일에서와 같이 client_app_secret 중요한 구성 값을 암시적으로 지정하지 마세요. Logstash KeyStore에 중요한 정보를 저장합니다.
  • 빈 문자열을 프록시 설정의 값으로 설정하면 시스템 전체 프록시 설정이 설정되지 않습니다.

선택적 구성

필드 설명 기본값
azure_cloud 사용 중인 Azure 클라우드의 이름을 지정하는 데 사용됩니다. 사용 가능한 값은 , AzureChinaCloudAzureUSGovernment입니다AzureCloud. AzureCloud
key_names 문자열 배열입니다. 열의 하위 집합을 Log Analytics에 보내려면 이 필드를 제공합니다. 없음(필드가 비어 있음)
plugin_flush_interval Log Analytics에 두 메시지를 보내는 사이의 최대 시간 차이(초)를 정의합니다. 5
retransmission_time 메시지를 전송하지 못한 경우 메시지를 다시 전송하는 데 걸리는 시간(초)을 설정합니다. 10
retransmission_delay 로그 데이터를 보낼 때 각 다시 시도 사이의 지연 시간(초)이 실패합니다. 제한(HTTP 429) 시나리오 중 요청 속도를 줄이려면 이 값을 늘입니다. 2
compress_data 이 필드가 이면 TrueAPI를 사용하기 전에 이벤트 데이터가 압축됩니다. 높은 처리량 파이프라인에 권장됩니다. False
proxy 모든 API 호출에 사용할 프록시 URL을 지정합니다. 없음(필드가 비어 있음)
proxy_aad Microsoft Entra ID API 호출에 사용할 프록시 URL을 지정합니다. 설정을 재정의 proxy 합니다. 없음(필드가 비어 있음)
proxy_endpoint 데이터 컬렉션 엔드포인트에 대한 API 호출에 사용할 프록시 URL을 지정합니다. 설정을 재정의 proxy 합니다. 없음(필드가 비어 있음)

Logstash 다시 시작

업데이트된 출력 플러그 인 구성을 사용하여 Logstash를 다시 시작합니다. DCR 구성에 따라 데이터가 올바른 테이블에 수집되는지 확인합니다.

Microsoft Sentinel 들어오는 로그 보기

로그 데이터가 작업 영역에 도달하는지 확인하려면 다음 단계를 수행합니다.

  1. 메시지가 출력 플러그 인으로 전송되고 있는지 확인합니다.

  2. Microsoft Sentinel 탐색 메뉴에서 로그를 선택합니다. 테이블 제목 아래에서 사용자 지정 로그 범주를 확장합니다. 구성에서 지정한 테이블의 이름(접미사 포함)을 _CL 찾아 선택합니다.

    Logstash 사용자 지정 테이블이 선택된 사용자 지정 로그 범주를 보여 주는 Microsoft Sentinel 로그 페이지의 스크린샷

  3. 테이블의 레코드를 보려면 테이블 이름을 스키마로 사용하여 테이블을 쿼리합니다.

    Logstash 사용자 지정 로그 쿼리의 스크린샷

출력 플러그 인 감사 로그 모니터링

Microsoft Sentinel 출력 플러그 인의 연결 및 활동을 모니터링하려면 적절한 Logstash 로그 파일을 사용하도록 설정합니다. 로그 파일 위치는 Logstash 디렉터리 레이아웃 문서를 참조하세요.

이 로그 파일에 데이터가 표시되지 않는 경우 입력 및 필터 플러그 인을 통해 일부 이벤트를 로컬로 생성하고 전송하여 출력 플러그 인이 데이터를 수신하는지 확인합니다. Microsoft Sentinel 출력 플러그 인과 관련된 문제만 지원합니다.

네트워크 보안

네트워크 설정을 정의하고 Microsoft Sentinel Logstash 출력 플러그 인에 대한 네트워크 격리를 사용하도록 설정합니다.

가상 네트워크 서비스 태그

Microsoft Sentinel 출력 플러그 인은 Azure 가상 네트워크 서비스 태그를 지원합니다. AzureMonitorAzureActiveDirectory 태그가 모두 필요합니다.

Azure Virtual Network 서비스 태그를 사용하여 네트워크 보안 그룹, Azure Firewall 및 사용자 정의 경로에 대한 네트워크 액세스 제어를 정의할 수 있습니다. 보안 규칙 및 경로를 만들 때 특정 IP 주소 대신 서비스 태그를 사용합니다. Azure Virtual Network 서비스 태그를 사용할 수 없는 시나리오의 경우 방화벽 요구 사항이 아래에 제공됩니다.

방화벽 요구 사항

다음 표에서는 Azure 가상 네트워크 서비스 태그를 사용할 수 없는 시나리오에 대한 방화벽 요구 사항을 나열합니다.

클라우드 끝점 용도 포트 방향 HTTP 검사 바이패스
Azure 상업용 https://login.microsoftonline.com 권한 부여 서버(Microsoft ID 플랫폼) 포트 443 아웃바운드
Azure 상업용 https://<data collection endpoint name>.<Azure cloud region>.ingest.monitor.azure.com 데이터 수집 엔드포인트 포트 443 아웃바운드
Azure Government https://login.microsoftonline.us 권한 부여 서버(Microsoft ID 플랫폼) 포트 443 아웃바운드
Azure Government 위의 '.com'을 '.us'로 바꾸기 데이터 수집 엔드포인트 포트 443 아웃바운드
21Vianet에서 운영하는 Microsoft Azure https://login.chinacloudapi.cn 권한 부여 서버(Microsoft ID 플랫폼) 포트 443 아웃바운드
21Vianet에서 운영하는 Microsoft Azure 위의 '.com'을 '.cn'으로 바꾸기 데이터 수집 엔드포인트 포트 443 아웃바운드

플러그 인 버전 기록

2.1.0

  • 이벤트 정규화를 수정했습니다.

2.0.0

  • 플러그 인을 Ruby에서 Java로 리팩터링했습니다.
  • ManagedIdentity 인증이 추가되었습니다.
  • 코드베이스를 GitHub에서 Azure DevOps로 이동했습니다.
  • 닫힌 코드베이스.

1.2.0

  • Azure VM/VMSS(IMDS를 통해 시스템 할당 및 사용자 할당)에 대한 관리 ID 인증 지원을 추가합니다.
  • OIDC 토큰 교환을 통해 AKS 워크로드 ID 지원을 추가합니다.
  • 하이브리드 및 온-프레미스 서버에 대한 Azure Arc 관리 ID 지원을 추가합니다.
  • 환경(워크로드 ID env vars, Arc 에이전트 또는 IMDS 대체)을 기반으로 런타임 시 인증 방법을 자동으로 검색합니다.
  • 향상된 JRuby 및 Logstash 플러그 인 에코시스템 호환성을 위해 HTTP 클라이언트를 에서 exconrest-client 로 마이그레이션합니다.
  • Azure Active Directory 참조의 이름을 Microsoft Entra ID 바꿉니다.

1.1.4

  • 프록시를 excon 사용할 때 항상 포트가 사용되도록 라이브러리 버전을 1.0.0 미만으로 제한합니다.

1.1.3

  • rest-client Azure 연결하는 데 사용되는 라이브러리를 라이브러리로 excon 바꿉니다.

1.1.1

  • 중국의 21Vianet에서 운영하는 Azure 미국 정부 클라우드 및 Microsoft Azure 대한 지원을 추가합니다.

1.1.0

  • API 연결에 대해 다른 프록시 값을 설정할 수 있습니다.
  • 로그 수집 API의 버전을 2023-01-01로 업그레이드합니다.
  • 플러그 인의 이름을 microsoft-sentinel-log-analytics-logstash-output-plugin으로 바꿉니다.

1.0.0

  • Microsoft Sentinel Logstash 출력 플러그 인에 대한 초기 릴리스입니다. 이 플러그 인은 Azure Monitor의 로그 수집 API와 함께 DCR(데이터 수집 규칙)을 사용합니다.

알려진 문제

Lite Ubuntu의 Docker 이미지에 설치된 Logstash를 사용하는 경우 다음 경고가 나타날 수 있습니다.

java.lang.RuntimeException: getprotobyname_r failed

이 오류를 resolve Dockerfile에 netbase 패키지를 설치합니다.

USER root
RUN apt install netbase -y

자세한 내용은 Logstash 7.17.0(Docker)의 JNR 회귀를 참조하세요.

환경의 이벤트 속도가 낮은 경우 plugin_flush_interval 값을 60 이상으로 늘입니다. DCR 메트릭을 사용하여 수집 페이로드를 모니터링할 수 있습니다. plugin_flush_interval 대한 자세한 내용은 선택적 구성 테이블을 참조하세요.

제한 사항

  • 표준 테이블로의 수집은 사용자 지정 로그 수집에 지원되는 표준 테이블로만 제한됩니다.

  • 속성의 입력 스트림 streamDeclarations 열은 문자로 시작해야 합니다. 다른 문자(예 @ : 또는 _)로 열을 시작하면 작업이 실패합니다.

  • TimeGenerated datetime 필드가 필요합니다. KQL 변환에 이 필드를 포함해야 합니다.

  • 가능한 추가 문제는 자습서의 문제 해결 섹션 을 검토하세요.