次の方法で共有


Azure Monitor のエージェント用の Resource Manager テンプレートのサンプル

この記事には、Azure Monitor で仮想マシンに対して Azure Monitor エージェント、レガシ Log Analytics エージェント診断拡張機能をデプロイして構成するためのサンプルの Azure Resource Manager テンプレートが含まれています。 各サンプルには、テンプレート ファイルと、テンプレートに指定するサンプル値を含むパラメーター ファイルが含まれています。

利用可能なサンプルのリスト、および Azure サブスクリプションへの各サンプルのデプロイ方法については、Azure Monitor の Azure Resource Manager のサンプルに関するページを参照してください。

Azure Monitor エージェント

このセクションのサンプルでは、Windows および Linux の仮想マシンと Azure Arc 対応サーバーに Azure Monitor エージェントをインストールします。

前提条件

以下のテンプレートを使用するには、次のことが必要です。

必要なアクセス許可

必要なアクセス許可については、 Azure Monitor エージェントの要件データ収集規則 (DCR) の作成に関するページを参照してください。

Azure Windows 仮想マシン

次のサンプルでは、Azure Windows 仮想マシンに Azure Monitor エージェントをインストールします。 選択した認証方法に基づいて、以下の適切なテンプレートを使用します。

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
        }
      }
    }
  }
}
パラメーター ファイル
{
  "$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>"
    }
  }
}

システムによって割り当てられた管理ID

テンプレート ファイル
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
  }
}
パラメーター ファイル
{
  "$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"
    }
  }
}

Azure Linux 仮想マシン

次のサンプルでは、Azure Linux 仮想マシンに Azure Monitor エージェントをインストールします。 選択した認証方法に基づいて、以下の適切なテンプレートを使用します。

テンプレート ファイル
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
        }
      }
    }
  }
}
パラメーター ファイル
{
  "$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>"
    }
  }
}

システムによって割り当てられた管理ID

テンプレート ファイル
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
  }
}
パラメーター ファイル
{
  "$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"
    }
  }
}

Windows Azure Arc 対応 Windows サーバー

次のサンプルでは、Azure Arc 対応 Windows サーバーに Azure Monitor エージェントをインストールします。

テンプレート ファイル

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
  }
}

パラメーター ファイル

{
  "$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"
      }
  }
}

Azure Arc 対応 Linux サーバー

次のサンプルでは、Azure Arc 対応 Linux サーバーに Azure Monitor エージェントをインストールします。

テンプレート ファイル

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
  }
}

パラメーター ファイル

{
  "$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"
    }
  }
}

Log Analytics エージェント

このセクションのサンプルでは、Azure の Windows 仮想マシンおよび Linux 仮想マシンにレガシ Log Analytics エージェントをインストールして、Log Analytics ワークスペースにそれを接続します。

ウィンドウズ

次のサンプルでは、Azure 仮想マシンに Log Analytics エージェントをインストールします。 これは、Windows 用の Azure Log Analytics 仮想マシン拡張機能を有効にすることで実現されます。

テンプレート ファイル

@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
    }
  }
}

パラメーター ファイル

{
  "$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

次のサンプルでは、Linux Azure 仮想マシンに Log Analytics エージェントをインストールします。 これは、Linux 用の Azure Log Analytics 仮想マシン拡張機能を有効にすることで実現されます。

テンプレート ファイル

@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
    }
  }
}

パラメーター ファイル

{
  "$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=="
    }
  }
}

診断拡張機能

このセクションのサンプルでは、Azure の Windows 仮想マシンおよび Linux 仮想マシンに診断拡張機能をインストールし、データ収集のための構成を行います。

ウィンドウズ

次のサンプルでは、Azure 仮想マシンで診断拡張機能を有効にして構成します。 構成の詳細については、「Windows Diagnostics 拡張機能のスキーマ」を参照してください。

テンプレート ファイル

@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
    }
  }
}

パラメーター ファイル

{
  "$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

次のサンプルでは、Linux Azure 仮想マシンで診断拡張機能を有効にして構成します。 構成の詳細については、「Windows Diagnostics 拡張機能のスキーマ」を参照してください。

テンプレート ファイル

@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
          }
        ]
      }
    }
  }
}

パラメーター ファイル

{
  "$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"
    }
  }
}

次のステップ