Udostępnij za pośrednictwem


przykłady szablonów Resource Manager dla agentów w usłudze Azure Monitor

Ten artykuł zawiera przykładowe szablony usługi Azure Resource Manager do wdrażania i konfigurowania agenta usługi Azure Monitor, starszego agenta usługi Log Analytics i rozszerzenia diagnostycznego dla maszyn wirtualnych w usłudze Azure Monitor. Każdy przykład zawiera plik szablonu i plik parametrów z przykładowymi wartościami w celu udostępnienia szablonu.

Uwaga

Zobacz Przykłady usługi Azure Resource Manager dla usługi Azure Monitor, aby uzyskać listę dostępnych przykładów i wskazówki dotyczące wdrażania ich w ramach subskrypcji platformy Azure.

Agent usługi Azure Monitor

Przykłady w tej sekcji instalują agenta usługi Azure Monitor na maszynach wirtualnych z systemem Windows i Linux oraz serwerach z obsługą usługi Azure Arc.

Wymagania wstępne

Aby użyć poniższych szablonów, potrzebne są następujące elementy:

Wymagane uprawnienia

Rola wbudowana Zakresy Przyczyna
  • Maszyny wirtualne, zestawy skalowania maszyn wirtualnych
  • Serwery z obsługą usługi Arc
Aby wdrożyć rozszerzenie agenta
Dowolna rola obejmująca akcję Microsoft.Resources/deployments/*
  • Subskrypcja i/lub
  • Grupa zasobów i/lub
  • Istniejąca reguła zbierania danych
Aby wdrożyć szablony usługi ARM

Maszyna wirtualna platformy Azure z systemem Windows

Poniższy przykład instaluje agenta usługi Azure Monitor na maszynie wirtualnej z systemem Windows platformy Azure. Użyj poniższego odpowiedniego szablonu na podstawie wybranej metody uwierzytelniania.

param vmName string
param location string
param userAssignedManagedIdentity string

resource windowsAgent 'Microsoft.Compute/virtualMachines/extensions@2021-11-01' = {
  name: '${vmName}/AzureMonitorWindowsAgent'
  location: location
  properties: {
    publisher: 'Microsoft.Azure.Monitor'
    type: 'AzureMonitorWindowsAgent'
    typeHandlerVersion: '1.0'
    autoUpgradeMinorVersion: true
    enableAutomaticUpgrade: true
    settings: {
      authentication: {
        managedIdentity: {
          'identifier-name': 'mi_res_id'
          'identifier-value': userAssignedManagedIdentity
        }
      }
    }
  }
}
Plik parametrów
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "value": "my-windows-vm"
    },
    "location": {
      "value": "eastus"
    },
    "userAssignedManagedIdentity": {
      "value": "/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<my-user-assigned-identity>"
    }
  }
}

Tożsamość zarządzana przypisana przez system

Plik szablonu
param vmName string
param location string

resource windowsAgent 'Microsoft.Compute/virtualMachines/extensions@2021-11-01' = {
  name: '${vmName}/AzureMonitorWindowsAgent'
  location: location
  properties: {
    publisher: 'Microsoft.Azure.Monitor'
    type: 'AzureMonitorWindowsAgent'
    typeHandlerVersion: '1.0'
    autoUpgradeMinorVersion: true
    enableAutomaticUpgrade: true
  }
}
Plik parametrów
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "value": "my-windows-vm"
    },
    "location": {
      "value": "eastus"
    }
  }
}

Maszyna wirtualna z systemem Linux platformy Azure

Poniższy przykład instaluje agenta usługi Azure Monitor na maszynie wirtualnej z systemem Linux platformy Azure. Użyj poniższego odpowiedniego szablonu na podstawie wybranej metody uwierzytelniania.

Plik szablonu
param vmName string
param location string
param userAssignedManagedIdentity string

resource linuxAgent 'Microsoft.Compute/virtualMachines/extensions@2021-11-01' = {
  name: '${vmName}/AzureMonitorLinuxAgent'
  location: location
  properties: {
    publisher: 'Microsoft.Azure.Monitor'
    type: 'AzureMonitorLinuxAgent'
    typeHandlerVersion: '1.21'
    autoUpgradeMinorVersion: true
    enableAutomaticUpgrade: true
    settings: {
      authentication: {
        managedIdentity: {
          'identifier-name': 'mi_res_id'
          'identifier-value': userAssignedManagedIdentity
        }
      }
    }
  }
}
Plik parametrów
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "value": "my-linux-vm"
    },
    "location": {
      "value": "eastus"
    },
    "userAssignedManagedIdentity": {
      "value": "/subscriptions/<my-subscription-id>/resourceGroups/<my-resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<my-user-assigned-identity>"
    }
  }
}

Tożsamość zarządzana przypisana przez system

Plik szablonu
param vmName string
param location string

resource linuxAgent 'Microsoft.Compute/virtualMachines/extensions@2021-11-01' = {
  name: '${vmName}/AzureMonitorLinuxAgent'
  location: location
  properties: {
    publisher: 'Microsoft.Azure.Monitor'
    type: 'AzureMonitorLinuxAgent'
    typeHandlerVersion: '1.21'
    autoUpgradeMinorVersion: true
    enableAutomaticUpgrade: true
  }
}
Plik parametrów
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "value": "my-linux-vm"
    },
    "location": {
      "value": "eastus"
    }
  }
}

Serwer z systemem Windows z obsługą usługi Azure Arc

Poniższy przykład instaluje agenta usługi Azure Monitor na serwerze z systemem Windows z obsługą usługi Azure Arc.

Plik szablonu

param vmName string
param location string

resource windowsAgent 'Microsoft.HybridCompute/machines/extensions@2021-12-10-preview' = {
  name: '${vmName}/AzureMonitorWindowsAgent'
  location: location
  properties: {
    publisher: 'Microsoft.Azure.Monitor'
    type: 'AzureMonitorWindowsAgent'
    autoUpgradeMinorVersion: true
  }
}

Plik parametrów

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "vmName": {
        "value": "my-windows-vm"
      },
      "location": {
        "value": "eastus"
      }
  }
}

Serwer z systemem Linux z obsługą usługi Azure Arc

Poniższy przykład instaluje agenta usługi Azure Monitor na serwerze z systemem Linux z obsługą usługi Azure Arc.

Plik szablonu

param vmName string
param location string

resource linuxAgent 'Microsoft.HybridCompute/machines/extensions@2021-12-10-preview'= {
  name: '${vmName}/AzureMonitorLinuxAgent'
  location: location
  properties: {
    publisher: 'Microsoft.Azure.Monitor'
    type: 'AzureMonitorLinuxAgent'
    autoUpgradeMinorVersion: true
  }
}

Plik parametrów

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "value": "my-linux-vm"
    },
    "location": {
      "value": "eastus"
    }
  }
}

Agent usługi Log Analytics

Przykłady w tej sekcji instalują starszego agenta usługi Log Analytics na maszynach wirtualnych z systemem Windows i Linux na platformie Azure i łączą go z obszarem roboczym usługi Log Analytics.

Windows

Poniższy przykład instaluje agenta usługi Log Analytics na maszynie wirtualnej platformy Azure. Jest to wykonywane przez włączenie rozszerzenia maszyny wirtualnej usługi Log Analytics dla systemu Windows.

Plik szablonu

@description('Name of the virtual machine.')
param vmName string

@description('Location of the virtual machine')
param location string = resourceGroup().location

@description('Id of the workspace.')
param workspaceId string

@description('Primary or secondary workspace key.')
param workspaceKey string

resource vm 'Microsoft.Compute/virtualMachines@2021-11-01' = {
  name: vmName
  location: location
  properties:{}
}

resource logAnalyticsAgent 'Microsoft.Compute/virtualMachines/extensions@2021-11-01' = {
  parent: vm
  name: 'Microsoft.Insights.LogAnalyticsAgent'
  location: location
  properties: {
    publisher: 'Microsoft.EnterpriseCloud.Monitoring'
    type: 'MicrosoftMonitoringAgent'
    typeHandlerVersion: '1.0'
    autoUpgradeMinorVersion: true
    settings: {
      workspaceId: workspaceId
    }
    protectedSettings: {
      workspaceKey: workspaceKey
    }
  }
}

Plik parametrów

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "value": "my-windows-vm"
    },
    "location": {
      "value": "westus"
    },
    "workspaceId": {
      "value": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    },
    "workspaceKey": {
      "value": "Tse-gj9CemT6A80urYa2hwtjvA5axv1xobXgKR17kbVdtacU6cEf+SNo2TdHGVKTsZHZd1W9QKRXfh+$fVY9dA=="
    }
  }
}

Linux

Poniższy przykład instaluje agenta usługi Log Analytics na maszynie wirtualnej platformy Azure z systemem Linux. Jest to realizowane przez włączenie rozszerzenia maszyny wirtualnej usługi Log Analytics dla systemu Linux.

Plik szablonu

@description('Name of the virtual machine.')
param vmName string

@description('Location of the virtual machine')
param location string = resourceGroup().location

@description('Id of the workspace.')
param workspaceId string

@description('Primary or secondary workspace key.')
param workspaceKey string

resource vm 'Microsoft.Compute/virtualMachines@2021-11-01' = {
  name: vmName
  location: location
}

resource logAnalyticsAgent 'Microsoft.Compute/virtualMachines/extensions@2021-11-01' = {
  parent: vm
  name: 'Microsoft.Insights.LogAnalyticsAgent'
  location: location
  properties: {
    publisher: 'Microsoft.EnterpriseCloud.Monitoring'
    type: 'OmsAgentForLinux'
    typeHandlerVersion: '1.7'
    autoUpgradeMinorVersion: true
    settings: {
      workspaceId: workspaceId
    }
    protectedSettings: {
      workspaceKey: workspaceKey
    }
  }
}

Plik parametrów

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "value": "my-linux-vm"
    },
    "location": {
      "value": "westus"
    },
    "workspaceId": {
      "value": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    },
    "workspaceKey": {
      "value": "Tse-gj9CemT6A80urYa2hwtjvA5axv1xobXgKR17kbVdtacU6cEf+SNo2TdHGVKTsZHZd1W9QKRXfh+$fVY9dA=="
    }
  }
}

Rozszerzenie diagnostyczne

Przykłady w tej sekcji instalują rozszerzenie diagnostyczne na maszynach wirtualnych z systemem Windows i Linux na platformie Azure i konfigurują je na potrzeby zbierania danych.

Windows

Poniższy przykład włącza i konfiguruje rozszerzenie diagnostyczne na maszynie wirtualnej platformy Azure. Aby uzyskać szczegółowe informacje na temat konfiguracji, zobacz Schemat rozszerzenia diagnostyki systemu Windows.

Plik szablonu

@description('Name of the virtual machine.')
param vmName string

@description('Location for the virtual machine.')
param location string = resourceGroup().location

@description('Name of the storage account.')
param storageAccountName string

@description('Resource ID of the storage account.')
param storageAccountId string

@description('Resource ID of the workspace.')
param workspaceResourceId string

resource vm 'Microsoft.Compute/virtualMachines@2021-11-01' = {
  name: vmName
  location: location
}

resource vmDiagnosticsSettings 'Microsoft.Compute/virtualMachines/extensions@2021-11-01' = {
  parent: vm
  name: 'Microsoft.Insights.VMDiagnosticsSettings'
  location: location
  properties: {
    publisher: 'Microsoft.Azure.Diagnostics'
    type: 'IaaSDiagnostics'
    typeHandlerVersion: '1.5'
    autoUpgradeMinorVersion: true
    settings: {
      WadCfg: {
        DiagnosticMonitorConfiguration: {
          overallQuotaInMB: 10000
          DiagnosticInfrastructureLogs: {
            scheduledTransferLogLevelFilter: 'Error'
          }
          PerformanceCounters: {
            scheduledTransferPeriod: 'PT1M'
            sinks: 'AzureMonitorSink'
            PerformanceCounterConfiguration: [
              {
                counterSpecifier: '\\Processor(_Total)\\% Processor Time'
                sampleRate: 'PT1M'
                unit: 'percent'
              }
            ]
          }
          WindowsEventLog: {
            scheduledTransferPeriod: 'PT5M'
            DataSource: [
              {
                name: 'System!*[System[Provider[@Name=\'Microsoft Antimalware\']]]'
              }
              {
                name: 'System!*[System[Provider[@Name=\'NTFS\'] and (EventID=55)]]'
              }
              {
                name: 'System!*[System[Provider[@Name=\'disk\'] and (EventID=7 or EventID=52 or EventID=55)]]'
              }
            ]
          }
        }
        SinksConfig: {
          Sink: [
            {
              name: 'AzureMonitorSink'
              AzureMonitor: {
                ResourceId: workspaceResourceId
              }
            }
          ]
        }
      }
      storageAccount: storageAccountName
    }
    protectedSettings: {
      storageAccountName: storageAccountName
      storageAccountKey: listkeys(storageAccountId, '2021-08-01').key1
      storageAccountEndPoint: 'https://${environment().suffixes.storage}'
    }
  }
}

resource managedIdentity 'Microsoft.Compute/virtualMachines/extensions@2021-11-01' = {
  parent: vm
  name: 'ManagedIdentityExtensionForWindows'
  location: location
  properties: {
    publisher: 'Microsoft.ManagedIdentity'
    type: 'ManagedIdentityExtensionForWindows'
    typeHandlerVersion: '1.0'
    autoUpgradeMinorVersion: true
    settings: {
      port: 50342
    }
  }
}

Plik parametrów

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "vmName": {
        "value": "my-windows-vm"
      },
      "location": {
        "value": "westus"
      },
      "storageAccountName": {
        "value": "mystorageaccount"
      },
      "storageAccountId": {
        "value": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/my-windows-vm"
      },
      "workspaceResourceId": {
        "value": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace"
      }
  }
}

Linux

Poniższy przykład włącza i konfiguruje rozszerzenie diagnostyczne na maszynie wirtualnej platformy Azure z systemem Linux. Aby uzyskać szczegółowe informacje na temat konfiguracji, zobacz Schemat rozszerzenia diagnostyki systemu Windows.

Plik szablonu

@description('Name of the virtual machine.')
param vmName string

@description('Resource ID of the virtual machine.')
param vmId string

@description('Location for the virtual machine.')
param location string = resourceGroup().location

@description('Name of the storage account.')
param storageAccountName string

@description('Resource ID of the storage account.')
param storageSasToken string

@description('URL of the event hub.')
param eventHubUrl string

resource vm 'Microsoft.Compute/virtualMachines@2021-11-01' = {
  name: vmName
  location: location
}

resource vmDiagnosticsSettings 'Microsoft.Compute/virtualMachines/extensions@2021-11-01' = {
  parent: vm
  name: 'Microsoft.Insights.VMDiagnosticsSettings'
  location: location
  properties: {
    publisher: 'Microsoft.Azure.Diagnostics'
    type: 'LinuxDiagnostic'
    typeHandlerVersion: '3.0'
    autoUpgradeMinorVersion: true
    settings: {
      StorageAccount: storageAccountName
      ladCfg: {
        sampleRateInSeconds: 15
        diagnosticMonitorConfiguration: {
          performanceCounters: {
            sinks: 'MyMetricEventHub,MyJsonMetricsBlob'
            performanceCounterConfiguration: [
              {
                unit: 'Percent'
                type: 'builtin'
                counter: 'PercentProcessorTime'
                counterSpecifier: '/builtin/Processor/PercentProcessorTime'
                annotation: [
                  {
                    locale: 'en-us'
                    displayName: 'Aggregate CPU %utilization'
                  }
                ]
                condition: 'IsAggregate=TRUE'
                class: 'Processor'
              }
              {
                unit: 'Bytes'
                type: 'builtin'
                counter: 'UsedSpace'
                counterSpecifier: '/builtin/FileSystem/UsedSpace'
                annotation: [
                  {
                    locale: 'en-us'
                    displayName: 'Used disk space on /'
                  }
                ]
                condition: 'Name="/"'
                class: 'Filesystem'
              }
            ]
          }
          metrics: {
            metricAggregation: [
              {
                scheduledTransferPeriod: 'PT1H'
              }
              {
                scheduledTransferPeriod: 'PT1M'
              }
            ]
            resourceId: vmId
          }
          eventVolume: 'Large'
          syslogEvents: {
            sinks: 'MySyslogJsonBlob,MyLoggingEventHub'
            syslogEventConfiguration: {
              LOG_USER: 'LOG_INFO'
            }
          }
        }
      }
      perfCfg: [
        {
          query: 'SELECT PercentProcessorTime, PercentIdleTime FROM SCX_ProcessorStatisticalInformation WHERE Name=\'_TOTAL\''
          table: 'LinuxCpu'
          frequency: 60
          sinks: 'MyLinuxCpuJsonBlob,MyLinuxCpuEventHub'
        }
      ]
      fileLogs: [
        {
          file: '/var/log/myladtestlog'
          table: 'MyLadTestLog'
          sinks: 'MyFilelogJsonBlob,MyLoggingEventHub'
        }
      ]
    }
    protectedSettings: {
      storageAccountName: 'yourdiagstgacct'
      storageAccountSasToken: storageSasToken
      sinksConfig: {
        sink: [
          {
            name: 'MySyslogJsonBlob'
            type: 'JsonBlob'
          }
          {
            name: 'MyFilelogJsonBlob'
            type: 'JsonBlob'
          }
          {
            name: 'MyLinuxCpuJsonBlob'
            type: 'JsonBlob'
          }
          {
            name: 'MyJsonMetricsBlob'
            type: 'JsonBlob'
          }
          {
            name: 'MyLinuxCpuEventHub'
            type: 'EventHub'
            sasURL: eventHubUrl
          }
          {
            name: 'MyMetricEventHub'
            type: 'EventHub'
            sasURL: eventHubUrl
          }
          {
            name: 'MyLoggingEventHub'
            type: 'EventHub'
            sasURL: eventHubUrl
          }
        ]
      }
    }
  }
}

Plik parametrów

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "value": "my-linux-vm"
    },
    "vmId": {
      "value": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/my-resource-group/providers/Microsoft.Compute/virtualMachines/my-linux-vm"
    },
    "location": {
      "value": "westus"
    },
    "storageAccountName": {
      "value": "mystorageaccount"
    },
    "storageSasToken": {
      "value": "?sv=2019-10-10&ss=bfqt&srt=sco&sp=rwdlacupx&se=2020-04-26T23:06:44Z&st=2020-04-26T15:06:44Z&spr=https&sig=1QpoTvrrEW6VN2taweUq1BsaGkhDMnFGTfWakucZl4%3D"
    },
    "eventHubUrl": {
      "value": "https://my-eventhub-namespace.servicebus.windows.net/my-eventhub?sr=my-eventhub-namespace.servicebus.windows.net%2fmy-eventhub&sig=4VEGPTg8jxUAbTcyeF2kwOr8XZdfgTdMWEQWnVaMSqw=&skn=manage"
    }
  }
}

Następne kroki