Azure Monitor 에이전트를 사용하여 Windows 이벤트 수집

Windows 이벤트DCR(데이터 수집 규칙)에 사용되는 데이터 원본 중 하나입니다. DCR 만들기에 대한 세부 정보는 Azure Monitor 에이전트를 사용하여 데이터 수집에서 제공됩니다. 이 문서는 Windows 이벤트 데이터 원본 유형에 관한 추가 세부 정보를 제공합니다.

Windows 이벤트 로그는 Windows 운영 체제와 실행 중인 애플리케이션의 상태와 정보의 일반적인 원본이므로 Azure Monitor 에이전트가 있는 Windows 컴퓨터의 가장 일반적인 데이터 원본 중 하나가 됩니다. 시스템 및 애플리케이션과 같은 표준 로그와 모니터링해야 하는 애플리케이션에서 만든 모든 사용자 지정 로그에서 이벤트를 수집할 수 있습니다.

필수 조건

Windows 이벤트 데이터 원본 구성

DCR의 수집 및 전달 단계의 데이터 원본 유형 드롭다운에서 Windows 이벤트 로그를 선택합니다. 수집할 로그 및 심각도 수준 집합 중에서 선택합니다.

데이터 수집 규칙의 Windows 이벤트 데이터 원본 구성을 보여주는 스크린샷.

사용자 지정을 선택하여 XPath 쿼리를 사용하여 이벤트를 필터링합니다. 그런 다음, 특정 값을 수집할 XPath를 지정할 수 있습니다.

데이터 수집 규칙의 Windows 이벤트 데이터 원본의 사용자 지정 구성을 보여주는 스크린샷.

보안 이벤트

Azure Monitor 에이전트를 사용하여 보안 이벤트를 수집하는 데 사용할 수 있는 방법에는 두 가지가 있습니다.

  • 시스템 및 애플리케이션 로그와 마찬가지로 DCR에서 보안 이벤트 로그를 선택합니다. 이러한 이벤트는 다른 이벤트와 함께 Log Analytics 작업 영역의 이벤트 테이블로 전송됩니다.
  • Azure Monitor 에이전트를 사용하여 이벤트를 수집하는 작업 영역에서 Microsoft Sentinel을 사용합니다. 보안 이벤트가 SecurityEvent로 전송됩니다.

XPath 쿼리를 사용하여 이벤트 필터링

Log Analytics 작업 영역에서 수집하는 데이터에는 요금이 부과됩니다. 따라서 필요한 이벤트 데이터만 수집해야 합니다. Azure Portal의 기본 구성은 이벤트를 필터링하는 제한된 기능을 제공합니다. 더 많은 필터를 지정하려면 사용자 지정 구성을 사용하고 필요하지 않은 이벤트를 필터링하는 XPath를 지정해야 합니다.

XPath 항목은 폼 LogName!XPathQuery로 작성됩니다. 예를 들어 이벤트 ID가 1035 인 애플리케이션 이벤트 로그에서 이벤트만 반환하려고 할 수 있습니다. 이러한 이벤트에 대한 XPathQuery*[System[EventID=1035]]입니다. 애플리케이션 이벤트 로그에서 이벤트를 검색하려고 하므로 XPath는 Application!*[System[EventID=1035]]입니다.

Azure Monitor 비용을 줄이기 위한 전략은 비용 최적화 및 Azure Monitor를 참조하세요.

Windows 이벤트 뷰어에서 XPath 쿼리 추출

다음 스크린샷과 같이 Windows에서 이벤트 뷰어를 사용하여 XPath 쿼리를 추출할 수 있습니다.

5단계에서처럼 데이터 원본 추가 화면의 필드에 XPath 쿼리를 붙여 넣을 때 로그 유형 범주 뒤에 느낌표(!)를 추가해야 합니다.

Windows 이벤트 뷰어에서 XPath 쿼리를 만드는 단계를 보여 주는 스크린샷.

PowerShell cmdlet Get-WinEventFilterXPath 매개 변수와 함께 사용하여 먼저 컴퓨터에서 로컬로 XPath 쿼리의 유효성을 테스트할 수 있습니다. 자세한 내용은 Windows 에이전트 기반 연결 지침에 제공된 팁을 참조하세요. Get-WinEvent PowerShell cmdlet은 최대 23개의 식을 지원합니다. Azure Monitor 데이터 수집 규칙은 최대 20개를 지원합니다. 다음 스크립트는 예제를 보여 줍니다.

$XPath = '*[System[EventID=1035]]'
Get-WinEvent -LogName 'Application' -FilterXPath $XPath
  • 이전 cmdlet에서 -LogName 매개 변수의 값은 느낌표(!)까지 XPath 쿼리의 초기 부분입니다. XPath 쿼리의 나머지 부분은 $XPath 매개 변수로 들어갑니다.
  • 스크립트가 이벤트를 반환하는 경우 쿼리가 유효합니다.
  • “지정된 선택 조건과 일치하는 이벤트를 찾을 수 없다”는 메시지가 표시되는 경우 쿼리는 유효하지만 로컬 컴퓨터에 일치하는 이벤트가 없습니다.
  • "지정된 쿼리가 잘못되었습니다" 메시지를 받으면 쿼리 구문이 잘못된 것입니다.

사용자 지정 XPath를 사용하여 이벤트를 필터링하는 예제:

설명 XPath
이벤트 ID가 4648인 시스템 이벤트만 수집 System!*[System[EventID=4648]]
이벤트 ID가 4648이고 프로세스 이름이 consent.exe인 보안 로그 이벤트 수집 Security!*[System[(EventID=4648)]] and *[EventData[Data[@Name='ProcessName']='C:\Windows\System32\consent.exe']]
이벤트 ID가 6(드라이버 로드 됨)인 경우를 제외하고 시스템 이벤트 로그에서 모든 중요, 오류, 경고 및 정보 이벤트를 수집 System!*[System[(Level=1 or Level=2 or Level=3) and (EventID != 6)]]
이벤트 ID 4624(로그온 성공)를 제외한 모든 성공 및 실패 보안 이벤트를 수집 Security!*[System[(band(Keywords,13510798882111488)) and (EventID != 4624)]]

참고 항목

Windows 이벤트 로그에서 지원되는 XPath의 제한 사항 목록은 XPath 1.0 제한 사항을 참조하세요. 예를 들어 쿼리 내에서 "position", "Band" 및 "timediff" 함수를 사용할 수 있지만 "starts-with"와 "contains"와 같은 다른 함수는 현재 지원되지 않습니다.

도착지

Windows 이벤트 데이터는 다음 위치로 전송될 수 있습니다.

대상 테이블/네임스페이스
Log Analytics 작업 영역 이벤트

데이터 수집 규칙의 Azure Monitor 로그 대상 구성을 보여주는 스크린샷.

다음 단계