Azure Monitor 에이전트를 사용하여 IIS 로그 수집

IIS(인터넷 정보 서비스)는 Windows 컴퓨터의 로컬 디스크에 데이터를 기록합니다. 이 문서에서는 DCR(데이터 수집 규칙)을 만들어 Azure Monitor 에이전트를 사용하여 모니터링되는 컴퓨터에서 IIS 로그를 수집하는 방법을 설명합니다.

필수 조건

이 절차를 완료하려면 다음이 필요합니다.

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

  • 가상 머신과 Log Analytics 작업 영역이 동일한 지역에 있는지 여부에 따라 하나 또는 두 개의 데이터 수집 엔드포인트가 있습니다.

    자세한 내용은 배포에 따라 데이터 수집 엔드포인트를 설정하는 방법을 참조하세요.

  • 작업 영역에서 데이터 컬렉션 규칙 개체를 만들 수 있는 권한입니다.

  • IIS를 실행하는 VM, Virtual Machine Scale Set 또는 Arc 지원 온-프레미스 서버입니다.

    • W3C 형식의 IIS 로그 파일은 Azure Monitor 에이전트가 실행 중인 컴퓨터의 로컬 드라이브에 저장되어야 합니다.
    • 로그 파일의 각 항목은 줄 끝으로 기술되어야 합니다.
    • 로그 파일은 순환 로깅, 새 항목으로 파일을 덮어쓰는 로그 순환 또는 파일이 이동되고 이름이 같은 새 파일이 열리는 이름 바꾸기를 허용하지 않아야 합니다.

IIS 로그 수집을 위한 데이터 수집 규칙 만들기

데이터 수집 규칙은 다음을 정의합니다.

  • Azure Monitor 에이전트가 새 이벤트를 검사하는 원본 로그 파일입니다.
  • 수집 중에 Azure Monitor가 이벤트를 변환하는 방법입니다.
  • Azure Monitor가 데이터를 보내는 대상 Log Analytics 작업 영역 및 테이블입니다.

여러 컴퓨터의 데이터를 다른 지역 또는 테넌트의 작업 영역을 포함하여 여러 Log Analytics 작업 영역으로 보내는 데이터 수집 규칙을 정의할 수 있습니다. Analytics 작업 영역과 동일한 지역에서 데이터 수집 규칙을 만듭니다.

참고 항목

테넌트 간에 데이터를 보내려면 먼저 Azure Lighthouse를 사용하도록 설정해야 합니다.

Azure Portal에서 데이터 수집 규칙을 만들려면 다음을 수행합니다.

  1. 모니터 메뉴에서 데이터 수집 규칙을 선택합니다.

  2. 만들기를 선택하여 새 데이터 수집 규칙 및 연결을 만듭니다.

    데이터 수집 규칙 화면의 만들기 단추를 보여 주는 스크린샷.

  3. 규칙 이름을 입력하고 구독, 리소스 그룹, 지역, 플랫폼 형식데이터 수집 엔드포인트를 지정합니다.

    • 지역은 DCR을 만들 위치를 지정합니다. 가상 머신 및 해당 연결은 테넌트의 모든 구독 또는 리소스 그룹에 있을 수 있습니다.
    • 플랫폼 유형은 이 규칙이 적용될 수 있는 리소스의 종류를 지정합니다. 사용자 지정 옵션은 Windows 및 Linux 유형 모두에 허용됩니다.
    • 데이터 수집 엔드포인트는 데이터를 수집하는 데 사용되는 데이터 수집 엔드포인트를 지정합니다. 이 데이터 수집은 Log Analytics 작업 영역과 동일한 지역에 있어야 합니다. 자세한 내용은 배포에 따라 데이터 수집 엔드포인트를 설정하는 방법을 참조하세요.

    데이터 수집 규칙 화면의 기본 탭을 보여 주는 스크린샷.

  4. 리소스 탭에서:

    1. + 리소스 추가를 선택하고 리소스를 데이터 수집 규칙에 연결합니다. 리소스는 가상 머신, Virtual Machine Scale Sets 및 서버용 Azure Arc일 수 있습니다. Azure Portal은 Azure Monitor 에이전트를 아직 설치하지 않은 리소스에 설치합니다.

      Important

      포털은 기존 사용자 할당 ID(있는 경우)와 함께 대상 리소스에서 시스템 할당 관리 ID를 사용하도록 설정합니다. 기존 애플리케이션에서 요청에 사용자가 할당한 ID를 지정하지 않으면 머신은 기본적으로 시스템이 할당한 ID를 대신 사용합니다.

    2. 데이터 수집 엔드포인트 사용을 선택합니다.

    3. 데이터 수집 규칙에 연결된 각 가상 머신에 대한 데이터 수집 엔드포인트를 선택합니다.

      이 데이터 수집 엔드포인트는 구성 파일을 가상 머신으로 전송하며, 가상 머신과 동일한 지역에 있어야 합니다. 자세한 내용은 배포에 따라 데이터 수집 엔드포인트를 설정하는 방법을 참조하세요.

    데이터 수집 규칙 화면의 리소스 탭을 보여 주는 스크린샷.

  5. 수집 및 제공 탭에서 데이터 원본 추가를 선택하여 데이터 원본을 추가하고 대상을 설정합니다.

  6. IIS 로그를 선택합니다.

    데이터 컬렉션 규칙에서 기본 성과 카운터를 선택하는 Azure Portal 양식을 보여 주는 스크린샷

  7. 로그 파일이 있는 디렉터리를 식별하는 파일 패턴을 지정합니다.

  8. 대상 탭에서 데이터 원본의 대상을 추가합니다.

    데이터 컬렉션 규칙에서 데이터 원본을 추가하는 Azure Portal 양식을 보여 주는 스크린샷.

  9. 검토 + 만들기를 선택하여 데이터 수집 규칙 및 가상 머신 집합과의 연결에 대한 세부 정보를 검토합니다.

  10. 데이터 수집 규칙을 만들려면 만들기를 선택합니다.

참고 항목

데이터 수집 규칙을 만든 후 데이터가 대상으로 전송되는 데 최대 5분이 걸릴 수 있습니다.

샘플 로그 쿼리

  • www.contoso.com 호스트에 대한 URL별 IIS 로그 항목 수를 계산합니다.

    W3CIISLog 
    | where csHost=="www.contoso.com" 
    | summarize count() by csUriStem
    
  • 각 IIS 컴퓨터에서 받은 총 바이트 수를 검토합니다.

    W3CIISLog 
    | summarize sum(csBytes) by Computer
    

샘플 경고 규칙

  • 반환 상태가 500인 레코드에 대한 경고 규칙을 만듭니다.

    W3CIISLog 
    | where scStatus==500
    | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
    

문제 해결

다음 단계를 사용하여 IIS 로그 수집 문제를 해결합니다.

IIS 로그가 수신되었는지 확인

먼저 Log Analytics에서 다음 쿼리를 실행하여 IIS 로그에 대한 레코드가 수집되었는지 확인합니다. 쿼리가 레코드를 반환하지 않는 경우 가능한 원인에 대해 다른 섹션을 확인합니다. 이 쿼리는 지난 2일 동안의 전체 항목을 찾지만 다른 시간 범위를 수정할 수 있습니다.

W3CIISLog
| where TimeGenerated > ago(48h)
| order by TimeGenerated desc

에이전트가 하트비트를 성공적으로 보내고 있는지 확인

Log Analytics에서 다음 쿼리를 실행하여 Azure Monitor 에이전트가 제대로 통신하고 있는지 확인하여 하트비트 테이블에 레코드가 있는지 확인합니다.

Heartbeat
| where TimeGenerated > ago(24h)
| where Computer has "<computer name>"
| project TimeGenerated, Category, Version
| order by TimeGenerated desc

IIS 로그가 생성되고 있는지 확인

로그 파일의 타임스탬프를 살펴보고 최신 타임스탬프를 열어 로그 파일에 최신 타임스탬프가 있는지 확인합니다. IIS 로그 파일의 기본 위치는 C:\inetpub\logs\LogFiles\W3SVC1입니다.

타임스탬프를 표시하는 IIS 로그의 스크린샷.

데이터 수집 규칙에서 올바른 로그 위치를 지정했는지 확인

데이터 수집 규칙에는 다음과 유사한 섹션이 있습니다. logDirectories 요소는 에이전트 컴퓨터에서 수집할 로그 파일의 경로를 지정합니다. 에이전트 컴퓨터를 확인하여 이것이 올바른지 확인합니다.

    "dataSources": [
    {
            "configuration": {
                "logDirectories": ["C:\\scratch\\demo\\W3SVC1"]
            },
            "id": "myIisLogsDataSource",
            "kind": "iisLog",
            "streams": [{
                    "stream": "ONPREM_IIS_BLOB_V2"
                }
            ],
            "sendToChannels": ["gigl-dce-6a8e34db54bb4b6db22d99d86314eaee"]
        }
    ]

이 디렉터리는 에이전트 머신에서 IIS 로그의 위치에 해당해야 합니다.

에이전트 컴퓨터의 IIS 로그 파일 스크린샷.

IIS 로그가 W3C 형식인지 확인

IIS 관리자를 열고 로그가 W3C 형식으로 작성되고 있는지 확인합니다.

에이전트 컴퓨터의 IIS 로깅 구성 대화 상자 스크린샷.

에이전트 머신에서 IIS 로그 파일을 열어 로그가 W3C 형식인지 확인합니다.

파일이 W3C 형식임을 명시하는 헤더를 표시하는 IIS 로그의 스크린샷.

참고 항목

X-Forwarded-For 사용자 지정 필드는 현재 지원되지 않습니다. 중요한 필드인 경우 IIS 로그를 사용자 지정 텍스트 로그로 수집할 수 있습니다.

다음 단계

자세히 알아보기: