こんにちは、サイオステクノロジーの山田です。
今回は 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名"]'
上記をコマンドを実行することで、現状問題なく登録できることを確認しております。
ただし、非公式の情報ですので、通知なく利用できなくなる可能性があることをご注意ください。

