如何使用Azure Image Builder为自定义镜像添加Log Analytics虚拟机扩展
为自定义Windows镜像添加Log Analytics虚拟机扩展的实现方法
你可以根据实际需求选择以下两种方案操作:
方案1:将Log Analytics代理预打包到自定义镜像中
该方案会直接把代理安装到AIB构建的镜像里,后续使用该镜像创建的所有虚拟机默认自带Log Analytics代理,无需再单独安装。
操作步骤:
- 新增脚本参数
在现有脚本开头的param参数块中,新增两个参数用于传递Log Analytics工作区配置:
param ( # 原有参数保持不变 [Parameter(Mandatory = $true)] [string]$imageResourceGroup, # ...... 其余原有参数全部保留 # 新增Log Analytics相关参数 [Parameter(Mandatory = $true)] [string]$logAnalyticsWorkspaceId, [Parameter(Mandatory = $true)] [string]$logAnalyticsWorkspaceKey )
- 新增AIB自定义安装步骤
在原有两个Customizer定义的后面,新增第三个PowerShell自定义器,用于安装Log Analytics代理:
## 新增:Log Analytics代理安装自定义步骤 $ImgCustomParams03 = @{ PowerShellCustomizer = $true CustomizerName = 'InstallLogAnalyticsAgent' RunElevated = $true Inline = @( # 下载Windows版Log Analytics代理安装包,安装包地址可在Azure门户Log Analytics工作区的代理管理页面获取 'Invoke-WebRequest -Uri "<Log Analytics代理64位安装包地址>" -OutFile "$env:TEMP\MMASetup-AMD64.exe" -UseBasicParsing', # 静默安装代理并绑定工作区 "& ""$env:TEMP\MMASetup-AMD64.exe"" /c:""setup.exe /qn ADD_OPINSIGHTS_WORKSPACE=1 OPINSIGHTS_WORKSPACE_ID=$logAnalyticsWorkspaceId OPINSIGHTS_WORKSPACE_KEY=$logAnalyticsWorkspaceKey AcceptEndUserLicenseAgreement=1""", # 等待安装完成 'Start-Sleep -Seconds 60', # 清理安装包 'Remove-Item "$env:TEMP\MMASetup-AMD64.exe" -Force' ) } $Customizer03 = New-AzImageBuilderCustomizerObject @ImgCustomParams03
- 更新AIB模板配置
把新增的自定义器添加到镜像模板的Customize数组中:
$ImgTemplateParams = @{ # 原有配置保持不变 Customize = $Customizer01, $Customizer02, $Customizer03 # 新增$Customizer03 # 其余原有配置全部保留 }
之后重新运行脚本构建镜像即可。
方案2:创建虚拟机时附加Log Analytics扩展
如果不需要把代理打包进镜像,也可以在使用自定义镜像创建虚拟机时,直接添加Log Analytics扩展,操作如下:
在原有脚本的New-AzVM命令执行完成后,新增扩展安装代码:
# 安装Log Analytics VM扩展 $extensionParams = @{ ResourceGroupName = $imageResourceGroup VMName = "myWinVM01" Name = "MicrosoftMonitoringAgent" Publisher = "Microsoft.EnterpriseCloud.Monitoring" ExtensionType = "MicrosoftMonitoringAgent" TypeHandlerVersion = "1.0" Location = $location Settings = @{ workspaceId = $logAnalyticsWorkspaceId } ProtectedSettings = @{ workspaceKey = $logAnalyticsWorkspaceKey } } Set-AzVMExtension @extensionParams
注意:两种方案用到的Log Analytics工作区ID和密钥,都可以在Azure门户对应Log Analytics工作区的「代理管理」页面查询获取。
内容的提问来源于stack exchange,提问作者Pradeep
相关产品推荐
相关产品推荐

