Azure CLI で Log Analytics に仮想マシンを自動登録する方法

こんにちは、サイオステクノロジーの山田です。

今回は 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名"]'

上記をコマンドを実行することで、現状問題なく登録できることを確認しております。
ただし、非公式の情報ですので、通知なく利用できなくなる可能性があることをご注意ください。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です