다음을 통해 공유


Event Hubs 및 Storage에 데이터 보내기(미리 보기)

이 문서에서는 AMA(Azure Monitor 에이전트)를 사용하여 Azure Storage 및 Event Hubs에 데이터를 업로드하는 방법을 설명합니다. 이 기능은 미리 보기로 제공됩니다.

Azure Monitor 에이전트는 가상 머신과 같은 IaaS 리소스에서 데이터를 수집하기 위한 새로운 통합 원격 분석 에이전트입니다. 이 미리 보기의 업로드 기능을 사용하여 Log Analytics 작업 영역에 보내는 로그1를 Event Hubs 및 Storage에 업로드할 수 있습니다. 두 데이터 대상 모두 데이터 수집 규칙을 사용하여 에이전트에 대한 수집 설정을 구성합니다.

참고 항목

Azure Diagnostics 확장은 2026년 3월 31일에 더 이상 사용되지 않습니다. 이 날짜 이후 Microsoft는 더 이상 Azure Diagnostics 확장을 지원하지 않습니다.

각주

1: 모든 데이터 형식이 지원되는 것은 아닙니다. 자세한 내용은 지원되는 항목을 참조하세요.

Linux 및 Windows용 Azure Diagnostic Extensions에서 마이그레이션(LAD/WAD)

  • Azure Monitor 에이전트는 Log Analytics 작업 영역, Azure Event Hubs 및 Azure Storage를 비롯한 여러 대상으로 데이터를 수집하고 보낼 수 있습니다.
  • VM에 설치된 확장을 확인하려면 VM의 설정에서 확장 + 애플리케이션을 선택합니다.
  • 중복 데이터를 방지하기 위해 Event Hubs 또는 Azure Storage에 동일한 데이터를 수집하도록 Azure Monitor 에이전트를 설정한 후 LAD 또는 WAD를 제거합니다.
  • 스토리지 대신 비용 효율적인 로깅을 위해 Log Analytics 작업 영역에서 보조 계획을 사용하여 테이블을 설정하는 것이 좋습니다.

지원되는 내용

데이터 형식

  • Windows:

    • Windows 이벤트 로그 – eventhub 및 Storage에
    • 성능 카운터 – eventhub 및 Storage
    • IIS 로그 – 스토리지 Blob에
    • 사용자 지정 로그 – 스토리지 Blob에
  • Linux:

    • Syslog – eventhub 및 Storage에
    • 성능 카운터 – eventhub 및 Storage에
    • 사용자 지정 로그/로그 파일 – Storage에

운영 체제

  • Windows 및 Linux의 Azure Monitoring 에이전트에서 지원하는 환경
  • 이 기능은 Azure VM에 대해서만 지원되고 지원될 예정입니다. 이를 온-프레미스 또는 Azure Arc 시나리오로 가져올 계획은 없습니다.

지원 되지않는 사항

데이터 형식

  • Windows:
    • ETW 로그(나중에 릴리스됨)
    • Windows 크래시 덤프(계획되지 않았고 지원되지 않을 예정임)
    • 애플리케이션 로그(계획되지 않았고 지원되지 않을 예정임)
    • .NET 이벤트 원본 로그(계획되지 않았고 지원되지 않을 예정임)

필수 조건

기존 컴퓨팅 리소스(예: 가상 머신 또는 가상 머신 확장 집합)가 필요합니다. Azure Monitor 에이전트가 배포되는 머신에는 시스템 할당 관리 ID를 사용하도록 설정하거나 연결된 사용자 할당 관리 ID가 있어야 합니다. 확장성과 성능을 향상하려면 사용자 할당 관리 ID를 사용하는 것이 좋습니다. 필수 구성 요소에 설명된 대로 인증에 이 관리 ID를 사용하도록 Azure Monitor 에이전트를 구성해야 합니다.

Azure Monitor 에이전트를 통해 데이터를 게시하려는 필요한 스토리지 계정 및/또는 Event Hubs 를 프로비전해야 합니다. 또한 적절한 기본 제공 RBAC 역할은 원하는 데이터 대상에 따라 선택한 관리 ID에 할당되어야 합니다.

  • 스토리지 테이블: Storage Table Data Contributor 역할
  • 스토리지 Blob: Storage Blob Data Contributor 역할
  • 이벤트 허브: Azure Event Hubs Data Sender 역할

데이터 수집 규칙을 만듭니다.

이벤트를 수집하고 스토리지 및 이벤트 허브로 보내기 위한 데이터 수집 규칙을 만듭니다.

  1. Azure Portal의 검색 상자에 템플릿을 입력한 다음 사용자 지정 템플릿 배포를 선택합니다.

    검색 상자에 템플릿을 입력하고 검색 결과에 강조 표시된 사용자 지정 템플릿 배포가 포함된 Azure Portal을 보여 주는 스크린샷.

  2. 편집기에서 사용자 고유의 템플릿을 빌드합니다.를 선택합니다.

    편집기에서 템플릿을 빌드하기 위한 포털 화면을 보여 주는 스크린샷.

  3. 이 Azure Resource Manager 템플릿을 편집기에 붙여넣습니다.

    {
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "location": {
        "type": "string",
        "defaultValue": "[resourceGroup().location]",
        "metadata": {
            "description": "Location for all resources."
        }
        },
        "dataCollectionRulesName": {
        "defaultValue": "[concat(resourceGroup().name, 'DCR')]",
        "type": "String"
        },
        "storageAccountName": {
        "defaultValue": "[concat(resourceGroup().name, 'sa')]",
        "type": "String"
        },
        "eventHubNamespaceName": {
        "defaultValue": "[concat(resourceGroup().name, 'eh')]",
        "type": "String"
        },
        "eventHubInstanceName": {
        "defaultValue": "[concat(resourceGroup().name, 'ehins')]",
        "type": "String"
        }
    },
    "resources": [
        {
        "type": "Microsoft.Insights/dataCollectionRules",
        "apiVersion": "2022-06-01",
        "name": "[parameters('dataCollectionRulesName')]",
        "location": "[parameters('location')]",
        "kind": "AgentDirectToStore",
        "properties": {
            "dataSources": {
            "performanceCounters": [
                {
                "streams": [
                    "Microsoft-Perf"
                ],
                "samplingFrequencyInSeconds": 10,
                "counterSpecifiers": [
                    "\\Process(_Total)\\Working Set - Private",
                    "\\Memory\\% Committed Bytes In Use",
                    "\\LogicalDisk(_Total)\\% Free Space",
                    "\\Network Interface(*)\\Bytes Total/sec"
                ],
                "name": "perfCounterDataSource10"
                }
            ],
            "windowsEventLogs": [
                {
                "streams": [
                    "Microsoft-Event"
                ],
                "xPathQueries": [
                    "Application!*[System[(Level=2)]]",
                    "System!*[System[(Level=2)]]"
                ],
                "name": "eventLogsDataSource"
                }
            ],
            "iisLogs": [
                {
                "streams": [
                    "Microsoft-W3CIISLog"
                ],
                "logDirectories": [
                    "C:\\inetpub\\logs\\LogFiles\\W3SVC1\\"
                ],
                "name": "myIisLogsDataSource"
                }
            ],
            "logFiles": [
                {
                "streams": [
                    "Custom-Text-logs"
                ],
                "filePatterns": [
                    "C:\\JavaLogs\\*.log"
                ],
                "format": "text",
                "settings": {
                    "text": {
                    "recordStartTimestampFormat": "ISO 8601"
                    }
                },
                "name": "myTextLogs"
                }
            ]
            },
            "destinations": {
            "eventHubsDirect": [
                {
                "eventHubResourceId": "[resourceId('Microsoft.EventHub/namespaces/eventhubs', parameters('eventHubNamespaceName'), parameters('eventHubInstanceName'))]",
                "name": "myEh1"
                }
            ],
            "storageBlobsDirect": [
                {
                "storageAccountResourceId": "[resourceId('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]",
                "name": "blobNamedPerf",
                "containerName": "PerfBlob"
                },
                {
                "storageAccountResourceId": "[resourceId('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]",
                "name": "blobNamedWin",
                "containerName": "WinEventBlob"
                },
                {
                "storageAccountResourceId": "[resourceId('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]",
                "name": "blobNamedIIS",
                "containerName": "IISBlob"
                },
                {
                "storageAccountResourceId": "[resourceId('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]",
                "name": "blobNamedTextLogs",
                "containerName": "TxtLogBlob"
                }
            ],
            "storageTablesDirect": [
                {
                "storageAccountResourceId": "[resourceId('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]",
                "name": "tableNamedPerf",
                "tableName": "PerfTable"
                },
                {
                "storageAccountResourceId": "[resourceId('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]",
                "name": "tableNamedWin",
                "tableName": "WinTable"
                },
                {
                "storageAccountResourceId": "[resourceId('Microsoft.Storage/storageAccounts/', parameters('storageAccountName'))]",
                "name": "tableUnnamed"
                }
            ]
            },
            "dataFlows": [
            {
                "streams": [
                "Microsoft-Perf"
                ],
                "destinations": [
                "myEh1",
                "blobNamedPerf",
                "tableNamedPerf",
                "tableUnnamed"
                ]
            },
            {
                "streams": [
                "Microsoft-Event"
                ],
                "destinations": [
                "myEh1",
                "blobNamedWin",
                "tableNamedWin",
                "tableUnnamed"
                ]
            },
            {
                "streams": [
                "Microsoft-W3CIISLog"
                ],
                "destinations": [
                "blobNamedIIS"
                ]
            },
            {
                "streams": [
                "Custom-Text-logs"
                ],
                "destinations": [
                "blobNamedTextLogs"
                ]
            }
            ]
        }
        }
    ]
    }
    
  4. Azure Resource Manager 템플릿에서 다음 값을 업데이트합니다. 샘플은 예제 Azure Resource Manager 템플릿을 참조하세요.

    이벤트 허브

    설명
    dataSources 요구 사항에 따라 정의합니다. Windows용 Event Hubs에 직접 업로드하기 위해 지원되는 형식은 performanceCounterswindowsEventLogs이고, Linux의 경우 performanceCounterssyslog입니다.
    destinations 이벤트 허브에 직접 업로드하는 데 eventHubsDirect를 사용합니다.
    eventHubResourceId 이벤트 허브 인스턴스의 리소스 ID입니다.

    참고: 이벤트 허브 네임스페이스 리소스 ID가 아닙니다.
    dataFlows dataFlows 아래에 대상 이름을 포함합니다.

    Storage Table

    설명
    dataSources 요구 사항에 따라 정의합니다. Windows용 Storage Table에 직접 업로드하기 위해 지원되는 형식은 performanceCounterswindowsEventLogs이고, Linux의 경우 performanceCounterssyslog입니다.
    destinations Table Storage에 직접 업로드하는 데 storageTablesDirect를 사용합니다.
    storageAccountResourceId 스토리지 계정의 리소스 ID입니다.
    tableName 이벤트 데이터가 있는 JSON Blob이 업로드되는 테이블의 이름입니다.
    dataFlows dataFlows 아래에 대상 이름을 포함합니다.

    Storage Blob

    설명
    dataSources 요구 사항에 따라 정의합니다. Windows용 Storage Blob에 직접 업로드하기 위해 지원되는 형식은 performanceCounters, windowsEventLogs, iisLogs, logFiles이고, Linux의 경우 performanceCounters, sysloglogFiles입니다.
    destinations Blob Storage에 직접 업로드하는 데 storageBlobsDirect를 사용합니다.
    storageAccountResourceId 스토리지 계정의 리소스 ID입니다.
    containerName 이벤트 데이터가 있는 JSON Blob이 업로드되는 컨테이너의 이름입니다.
    dataFlows dataFlows 아래에 대상 이름을 포함합니다.
  5. 저장을 선택합니다.

DCR 연결 만들기 및 Azure Monitor 에이전트 배포

사용자 지정 템플릿 배포를 사용하여 DCR 연결 및 AMA 배포를 만듭니다.

  1. Azure Portal의 검색 상자에 템플릿을 입력한 다음 사용자 지정 템플릿 배포를 선택합니다.

    검색 상자에 템플릿을 입력하고 검색 결과에 강조 표시된 사용자 지정 템플릿 배포가 포함된 Azure Portal을 보여 주는 스크린샷.

  2. 편집기에서 사용자 고유의 템플릿을 빌드합니다.를 선택합니다.

    편집기에서 템플릿을 빌드하기 위한 포털 화면을 보여 주는 스크린샷.

  3. 이 Azure Resource Manager 템플릿을 편집기에 붙여넣습니다.

    {
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "vmName": {
        "defaultValue": "[concat(resourceGroup().name, 'vm')]",
        "type": "String"
        },
        "location": {
        "type": "string",
        "defaultValue": "[resourceGroup().location]",
        "metadata": {
            "description": "Location for all resources."
        }
        },
        "dataCollectionRulesName": {
        "defaultValue": "[concat(resourceGroup().name, 'DCR')]",
        "type": "String",
        "metadata": {
            "description": "Data Collection Rule Name"
        }
        },
        "dcraName": {
        "type": "string",
        "defaultValue": "[concat(uniquestring(resourceGroup().id), 'DCRLink')]",
        "metadata": {
            "description": "Name of the association."
        }
        },
        "identityName": {
        "type": "string",
        "defaultValue": "[concat(resourceGroup().name, 'UAI')]",
        "metadata": {
            "description": "Managed Identity"
        }
        }
    },
    "resources": [
        {
        "type": "Microsoft.Compute/virtualMachines/providers/dataCollectionRuleAssociations",
        "name": "[concat(parameters('vmName'),'/microsoft.insights/', parameters('dcraName'))]",
        "apiVersion": "2021-04-01",
        "properties": {
            "description": "Association of data collection rule. Deleting this association will break the data collection for this virtual machine.",
            "dataCollectionRuleId": "[resourceID('Microsoft.Insights/dataCollectionRules',parameters('dataCollectionRulesName'))]"
        }
        },
        {
        "type": "Microsoft.Compute/virtualMachines/extensions",
        "name": "[concat(parameters('vmName'), '/AMAExtension')]",
        "apiVersion": "2020-06-01",
        "location": "[parameters('location')]",
        "dependsOn": [
            "[resourceId('Microsoft.Compute/virtualMachines/providers/dataCollectionRuleAssociations', parameters('vmName'), 'Microsoft.Insights', parameters('dcraName'))]"
        ],
        "properties": {
            "publisher": "Microsoft.Azure.Monitor",
            "type": "AzureMonitorWindowsAgent",
            "typeHandlerVersion": "1.0",
            "autoUpgradeMinorVersion": true,
            "settings": {
            "authentication": {
                "managedIdentity": {
                "identifier-name": "mi_res_id",
                "identifier-value": "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',parameters('identityName'))]"
                }
            }
            }
        }
        }
    ]
    }
    
  4. 저장을 선택합니다.

문제 해결

다음 섹션을 사용하여 Event Hubs 및 Storage로의 데이터 전송 문제를 해결합니다.

스토리지 계정 Blob Storage에서 데이터를 찾을 수 없음

  • 기본 제공 역할 Storage Blob Data Contributor가 스토리지 계정의 관리 ID와 함께 할당되어 있는지 확인합니다.
  • 시스템 할당 관리 ID가 VM에 할당되어 있는지 확인합니다.
  • AMA 설정에 관리 ID 매개 변수가 있는지 확인합니다.

스토리지 계정 Table Storage에서 데이터를 찾을 수 없음

  • 기본 제공 역할 Storage Table Data Contributor가 스토리지 계정의 관리 ID와 함께 할당되어 있는지 확인합니다.
  • 시스템 할당 관리 ID가 VM에 할당되어 있는지 확인합니다.
  • AMA 설정에 관리 ID 매개 변수가 있는지 확인합니다.

이벤트 허브로 데이터가 흐르지 않음

  • 기본 제공 역할 Azure Event Hubs Data Sender가 이벤트 허브 인스턴스의 관리 ID와 함께 할당되어 있는지 확인합니다.
  • 시스템 할당 관리 ID가 VM에 할당되어 있는지 확인합니다.
  • AMA 설정에 관리 ID 매개 변수가 있는지 확인합니다.

AMA 및 WAD/LAD 수렴

Azure Monitoring 에이전트에서 Application Insights에 대한 데이터 업로드를 지원하나요?

아니요, 이 지원은 로드맵의 일부가 아닙니다. Application Insights는 이제 Log Analytics 작업 영역에서 제공됩니다.

Azure Monitoring Agent는 업로드할 데이터 형식으로 Windows 크래시 덤프를 지원하나요?

아니요, 이 지원은 로드맵의 일부가 아닙니다. Azure Monitoring Agent는 대용량 파일 형식이 아닌 원격 분석 로그를 위한 것입니다.

LINux(LAD) 및 Windows(WAD) 진단 확장이 더 이상 지원되지 않고 사용 중단될 예정임을 의미하나요?

LAD와 WAD는 2026년 3월 31일에 은퇴합니다. 필요한 보안 패치 및 버그/회귀 수정 외에도 WAD/LAD에 대해 계획된 향상된 기능이나 기능 개발은 없습니다. 가능한 한 빨리 Azure Monitor 에이전트로 이동하는 것이 좋습니다.

이벤트 허브 및 스토리지 데이터 대상에 대한 AMA를 구성하는 방법

현재 구성 환경은 DCR API를 사용합니다.

WAD 및 LAD에서 계속 적극적으로 개발하려고 하나요?

WAD 및 LAD에는 앞으로 보안/패치만 제공됩니다. 대부분의 엔지니어링 비용은 Azure Monitoring Agent에 사용되었습니다. 모든 유용한 기능을 활용하려면 Azure Monitoring Agent로 마이그레이션하는 것이 좋습니다.

참고 항목