こんにちは、サイオステクノロジーの山田です。
今回は Azure CLI で OMS Agent の自動インストールと Log Analytics に仮想マシンを自動登録する方法をご紹介します。OMS Agent は Azure のモニタリングサービス Log Analytics を利用するために必要なエージェントです。
公式HPでも以下のような記事があり、登録する方法が記載されています。
Linux 用の Log Analytics 仮想マシン拡張機能
上記記事では拡張機能スキーマのJSONファイルで「workspaceId」と「workspaceKey」を置換する必要があるとの記載があります。しかしながら、「workspaceId」は Azure CLI で取得可能ですが、現状「workspaceKey」は取得できないため、WEBポータル上で確認し、手動で置換する必要があります。また、「workspaceKey」は秘匿情報ですので、あまり原文を記入したくないところですね。
これでは完全自動で仮想マシンを Log Analytics に登録することはできないなと思い、調査したところ以下のように拡張機能スキーマを設定することで、「workspaceKey」を手動で置換する必要がないことを確認しました。
拡張機能スキーマ
どうしても、以下のようにインデント削除されてしまうので、参考ファイルを添付します。
{ "$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "workspaceResourceId": { "type": "string" }, "virtualMachines": { "type": "array" } }, "resources": [ { "copy": { "name": "VMMonitoringExtensionsCopy", "count": "[length(parameters('virtualMachines'))]" }, "type": "Microsoft.Compute/virtualMachines/extensions", "apiVersion": "2015-06-15", "location": "[resourceGroup().location]", "name": "[concat(parameters('virtualMachines')[copyIndex()], '/Microsoft.EnterpriseCloud.Monitoring')]", "properties": { "publisher": "Microsoft.EnterpriseCloud.Monitoring", "type": "OmsAgentForLinux", "typeHandlerVersion": "1.7", "autoUpgradeMinorVersion": true, "settings": { "workspaceId": "[reference(parameters('workspaceResourceId'), '2015-11-01-preview').customerId]" }, "protectedSettings": { "workspaceKey": "[listKeys(parameters('workspaceResourceId'), '2015-11-01-preview').primarySharedKey]" } } } ] }
Azure CLI コマンド
以下コマンドを実行する前にワークスペースを作成してください。
■ ワークスペースID取得(参考)
# az resource show --resource-group [myResourceGroup] \ --resource-type "Microsoft.OperationalInsights/workspaces" \ --name [workspaceName] | jq '.id'
jqコマンドは JSONファイルを操作する上で非常に便利なツールですので、導入することをオススメします。
■ OMS Agent の自動インストールと Log Analytics 登録
# az group deployment create --resource-group [myResourceGroup] \ --template-file [上記JSONファイルパス] \ --parameters workspaceResourceId=[workspaceId(上記参考)] \ --parameters virtualMachines='["VM名","VM名"]'
上記をコマンドを実行することで、現状問題なく登録できることを確認しております。
ただし、非公式の情報ですので、通知なく利用できなくなる可能性があることをご注意ください。