안녕하세요.

 

이번 포스팅은 Log Analytics에서 사용할 Azure 서비스 로그 및 메트릭 수집에 대한 내용입니다. Log Analytics에서 Azure 서비스에 대한 로그와 메트릭을 수집하는 방법에는 다음과 같이 4가지 방법이 있습니다.

1. 로그 분석 직접 전달 (다음 표의 진단 참조).
2. Analytics 분석을 위해 Azure 스토리지에 대한 진단 수행 (다음 표에 저장 참조)
3. Azure 서비스용 커넥터 (다음 표의 커넥터 참조)
4. 로그 분석을 수집하고 데이터를 게시하는 스크립트 (다음 표의 공란과 나열되지 않은 서비스)

 

Service Resource Type Logs Metrics Solution
Application gateways Microsoft.Network/applicationGateways Diagnostics Diagnostics Azure Application Gateway Analytics
Application insights   Connector Connector Application Insights Connector (Preview)
Automation accounts Microsoft.Automation/AutomationAccounts Diagnostics   More information
Batch accounts Microsoft.Batch/batchAccounts Diagnostics Diagnostics  
Classic cloud services   Storage   More information
Cognitive services Microsoft.CognitiveServices/accounts   Diagnostics  
Data Lake analytics Microsoft.DataLakeAnalytics/accounts Diagnostics    
Data Lake store Microsoft.DataLakeStore/accounts Diagnostics    
Event Hub namespace Microsoft.EventHub/namespaces Diagnostics Diagnostics  
IoT Hubs Microsoft.Devices/IotHubs   Diagnostics  
Key Vault Microsoft.KeyVault/vaults Diagnostics   KeyVault Analytics
Load Balancers Microsoft.Network/loadBalancers Diagnostics    
Logic Apps Microsoft.Logic/workflows Diagnostics Diagnostics  
Microsoft.Logic/integrationAccounts
Network Security Groups Microsoft.Network/networksecuritygroups Diagnostics   Azure Network Security Group Analytics
Recovery vaults Microsoft.RecoveryServices/vaults     Azure Recovery Services Analytics (Preview)
Search services Microsoft.Search/searchServices Diagnostics Diagnostics  
Service Bus namespace Microsoft.ServiceBus/namespaces Diagnostics Diagnostics Service Bus Analytics (Preview)
Service Fabric   Storage   Service Fabric Analytics (Preview)
SQL (v12) Microsoft.Sql/servers/databases   Diagnostics Azure SQL Analytics (Preview)
Microsoft.Sql/servers/elasticPools
Storage     Script Azure Storage Analytics (Preview)
Virtual Machines Microsoft.Compute/virtualMachines Extension Extension  
Diagnostics
Virtual Machines scale sets Microsoft.Compute/virtualMachines   Diagnostics  
Microsoft.Compute/virtualMachineScaleSets/virtualMachines
Web Server farms Microsoft.Web/serverfarms   Diagnostics  
Web Sites Microsoft.Web/sites   Diagnostics Azure Web Apps Analytics (Preview)
Microsoft.Web/sites/slots

 

중요: Azure 가상 시스템 (Linux 및 Windows 모두)을 모니터링하려면 Log Analytics VM 확장을 설치하는 것이 좋습니다. 에이전트는 가상 시스템 내에서 수집 된 통찰력을 제공하며 가상 시스템 스케일 세트에 확장을 사용할 수도 있습니다. 

Log Analytics VM 확장

 

 

 

 

Azure 진단을 Log Analytics으로 바로 연결

 

많은 Azure 리소스는 진단 로그 및 메트릭을 Log Analytics에 직접 기록 할 수 있으며, 분석을 위해 데이터를 수집하는 기본 방법입니다. Azure 진단을 사용하면 데이터가 Log Analytics에 즉시 기록되므로 데이터를 먼저 저장 장치에 쓸 필요가 없습니다.

Azure 모니터를 지원하는 Azure 리소스는 로그 및 메트릭을 Log Analytics로 직접 보낼 수 있습니다

 

• 사용 가능한 메트릭에 대한 자세한 내용은 Azure Monitor에서 지원되는 메트릭을 참조

• 사용 가능한 로그에 대한 자세한 내용은 진단 로그에 대한 지원되는 서비스 및 스키마를 참조

 

 

PowerShell로 진단 기능 사용

 

 

Azure PowerShell의 2016 년 11월 이후 릴리스(v2.3.0 이상)가 필요합니다.

다음 PowerShell 예제에서는 Set-AzureRmDiagnosticSetting을 사용하여 네트워크 보안 그룹에서 진단을 사용하는 방법을 보여줍니다. 동일한 접근 방식이 지원되는 모든 자원에 대해 작동합니다. $resourceId를 진단을 활성화하려는 자원의 자원 ID로 설정하십시오.

 

$workspaceId = "/subscriptions/d2e37fee-1234-40b2-5678-0b2199de3b50/resourcegroups/oi-default-east-us/providers/microsoft.operationalinsights/workspaces/rollingbaskets"

$resourceId = "/SUBSCRIPTIONS/ec11ca60-1234-491e-5678-0ea07feae25c/RESOURCEGROUPS/DEMO/PROVIDERS/MICROSOFT.NETWORK/NETWORKSECURITYGROUPS/DEMO"

Set-AzureRmDiagnosticSetting -ResourceId $ResourceId  -WorkspaceId $workspaceId -Enabled $true

 

예를 들어 리소스에 진단을 사용하는 경우 먼저 다음 Powershell을 통해 workspaceID를 확인합니다.

 Get-AzureRmResource |where-object {$_.Name -eq "Log Analytics 이름"}

 

따라서, 다음과 같이 변수에 workspaceID를 저장할 수 있습니다. 

$workspaceId = (Get-AzureRmResource |where-object {$_.Name -eq "Log Analytics 이름"}).ResourceId

 

이제 진단을 활성화하려는 리소스의 자원ID를 확인합니다.

Get-AzureRmResource |where-object {$_.Name -eq "리소스 이름"} 

 

이후, 위와 마찬가지의 방법으로 리소스 ID를 저장합니다.

$resourceId = (Get-AzureRmResource |where-object {$_.Name -eq "리소스 이름"}).ResourceId 

 

이제 명령어를 통해 진단을 활성화합니다.

Set-AzureRmDiagnosticSetting -ResourceId $ResourceId  -WorkspaceId $workspaceId -Enabled $true 

 

 

 

 

 

 

 

 

Resource Manager 템플릿에 진단 사용

 

리소스가 생성 될 때 진단 기능을 활성화하고 진단 도구를 Log Analytics 작업 영역으로 보내도록 구성하려먼 다음 예제 형식과 유사한 템플릿을 사용할 수 있습니다. 이 예제는 자동화 계정용이지만 지원되는 모든 리소스 유형에서 작동합니다.

 

[템플릿 예] 

{
            "type": "Microsoft.Automation/automationAccounts/providers/diagnosticSettings",
            "name": "[concat(parameters('omsAutomationAccountName'), '/', 'Microsoft.Insights/service')]",
            "apiVersion": "2015-07-01",
            "dependsOn": [
                "[concat('Microsoft.Automation/automationAccounts/', parameters('omsAutomationAccountName'))]",
                "[concat('Microsoft.OperationalInsights/workspaces/', parameters('omsWorkspaceName'))]"
            ],
            "properties": {
                "workspaceId": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('omsWorkspaceName'))]",
                "logs": [
                    {
                        "category": "JobLogs",
                        "enabled": true
                    },
                    {
                        "category": "JobStreams",
                        "enabled": true
                    }
                ]
            }
        } 

 

 

 

 

 

 

 

 

 

Azure 진단 문제 해결

 

만약 진단 설정 시 다음과 같은 문제가 발생되는 경우  Microsoft.insights 리소스 공급자가 등록되지 않은 것입니다.

 

Failed to update diagnostics for 'resource'. {"code":"Forbidden","message":"Please register the subscription 'subscription id' with Microsoft.Insights."} 

 

 

리소스 공급자를 등록하려면 Azure 포털에 로그인한 후 왼쪽 탐색 메뉴에서 구독을 클릭하여 오류가 나타난 구독을 선택합니다.

 

 

리소스 공급자를 클릭하여 Microsoft.insights 공급자를 검색하여 등록 버튼을 클릭합니다.

 

<등록 후 화면>

 

 

또는 다음 Powershell 스크립트를 통해서도 해당 구독에 리소스 공급자를 등록할 수 있습니다.

 

 Get-AzureRmResourceProvider | Where-Object {$_.ProviderNamespace -like "Microsoft.OperationalInsights"} | Register-AzureRmResourceProvider

 

 

 

Microsoft.insights 리소스 공급자가 등록되면 다시 진단 구성을 시도하십시오.

만일, PowerShell에서 다음과 같은 오류 메시지가 나타나면 PowerShell 버전을 2016 년 11 월 버전 또는 그 이후 릴리스(v2.3.0 이상)로 업데이트 후 다시 시도해야 합니다. 

Set-AzureRmDiagnosticSetting : A parameter cannot be found that matches parameter name 'WorkspaceId' 

 



 

 

저장소에 저장된 Azure 진단에 대한 로그 분석

 

일부 리소스에서 로그를 수집하려면 로그를 Azure 스토리지로 전송한 다음 로그 분석이 스토리지에서 로그를 읽도록 구성 할 수 있습니다. Log Analytics는이 방법을 사용하여 Azure 저장소에서 다음 리소스와 로그에 대한 진단 정보를 수집 할 수 있습니다.

 

리소스 로그
Service Fabric ETWEvent
Operational Event
Reliable Actor Event
Reliable Service Event
Virtual Machines Linux Syslog
Windows Event
IIS Log
Windows ETWEvent
Web Roles
Worker Roles
Linux Syslog
Windows Event
IIS Log
Windows ETWEvent

 

중요:  Log Analytics에서 이러한 로그를 수집하는 방법에 대한 자세한 내용은 로그 분석을 사용하여 IIS 용 Azure blob 스토리지 및 Azure 테이블 스토리지 사용 참조하십시오.

 

 

 

 

 

Azure 서비스용 커넥터

 

Log Analytics에는 Application Insights 전용 커넥터가 있어 Application Insights에서 수집한 데이터를  바로 Log Analytics로 보낼 수 있습니다. 자세한 내용은 다음 페이지를 참고하여야 합니다.

 
Application Insights Connector in OMS

 

 

 

 

Log Analytics에 데이터를 수집하고 게시하는 스크립트

Log Analytics에 로그 및 메트릭을 전송하는 직접적인 방법을 제공하지 않는 Azure 서비스의 경우 Azure 자동화 스크립트를 사용하여 로그 및 메트릭을 수집할 수 있습니다. 스크립트는 Data Collector API를 사용하여 로그 분석에 데이터를 전송할 수 있습니다

Azure 템플릿 갤러리를 통해 Azure Automation을 사용하여 서비스에서 데이터를 수집하고이를 Log Analytics로 보내는 예제를 참고할 수 있습니다.

 

Azure Automation 템플릿 갤러리

 

 

이상으로 Log Analytics에서 사용할 Azure 서비스 로그 및 메트릭 수집에 대한 포스팅을 마칩니다.

 

감사합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

이 포스팅은 다음 페이지의 글을 번역 및 참고하여 작성하였습니다.

 

https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-azure-storage


+ Recent posts