複数のLog AnalyticsワークスペースをARMテンプレートでまとめてデプロイ

ARM Template,Azure,Log Analytics,PowerShell/Azure CLI

Log Analyticsのワークスペースのデプロイを以下の2パターンでデプロイしてみました。

      • Azure Portalを使ってデプロイ
      • ARMテンプレート+CSVファイル+Power Shellで複数個一括デプロイ

まず最初に、Azure Portalを使ってデプロイしてみました。

その次に、ARMテンプレートを利用して実施してみました。パラメータをCSVファイルから読み込み、複数のLog Analyticsワークスペースを一括してデプロイ出来るようしてみました。

テンプレートを使ったデプロイは、下記条件で実施しています。

    • Log Analyticsワークスペースを3つ作成する
    • Log Analyticsワークスペースをテンプレートファイルを利用してデプロイする
    • パラメータはCSVファイルを利用する
    • パラメータはデプロイ時に指定する

※サンプルはGitHubにも公開しています。

スポンサーリンク

Azure Portalを使ってLog Analytics ワークスペースを作成

まず、Azure Portalを使ってLog Analyticsワークスペースをデプロイしてみます。

1)Log Analyticsワークスペースのメニュー画面で追加をクリックします。

2)作成画面になりますので、リソースグループ、名前、地域(Location)を設定します。地域はLog Analyticsの転送元のリソースがある地域(Location)と同じ場所を選択します。

3)価格レベルを設定します。価格レベルは従量課金制を選択します。

4)タグを設定する場合はタグの設定を行います。設定しない場合は確認および作成を選択し作成します。

これでLog Analyticsワークスペースの作成は完了です。

Log Analytics ワークスペースのARMテンプレートを作成

Log AnalyticsワークスペースのARMテンプレートを作成します。マイクロソフト公式サイトを参考にやってみました。

PowerShell を使用して Azure Monitor の Log Analytics ワークスペースを作成および構成する(公式サイト)

defaultValue値は環境に合わせて変更してください。

{

“$schema": “https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
“contentVersion": “1.0.0.0",
 "parameters": {
  "workspaceName": {
   "type": “String",
   "metadata": {}
 },
 "location": {
  "type": “String",
   "defaultValue": “eastus2",
    "metadata": {}
 },
 "sku": {
  "type": “String",
   "allowedValues": [
    "PerGB2018″
   ],
   "defaultValue": “PerGB2018",
    "metadata": {}
   }
 },
“resources": [
 {
 "type": “Microsoft.OperationalInsights/workspaces",
  "name": “[parameters('workspaceName’)]",
  "apiVersion": “2015-11-01-preview",
  "location": “[parameters('location’)]",
  "properties": {
  "sku": {
  "Name": “[parameters('sku’)]"
 },
 "features": {
 "searchVersion": 1
}}}]}

Log Analyticsのパラメータ設定用CSVファイルを作成

Azure Portalを使ってLog Analyticsワークスペースを作成した場合と同様に、パラメータは以下の3つになります。

      • ワークスペース名 (変数名;workspaceName)
      • ロケーション (変数名;location)
      • SKU (変数名;sku)

テスト用のパラメータCSVファイルは下記通り作成しています。

workspaceName,location,sku

test-201-20200328,eastus2,PerGB2018
test-202-20200328,eastus2,PerGB2018
test-203-20200328,japaneast,PerGB2018

Log AnalyticsワークスペースのARMテンプレートをパラメータCSV+Power Shell使ってデプロイ

デプロイ先のリソースグループ名、ARMテンプレートファイルのパス、CSVファイルのパスを指定してPower Shellを実行します。

#Log Analyitcs ワークスペースデプロイ用Power Shell

$resourceGroupName = “デプロイ先のリソースグループ名"
$TemplateFilePath = “テンプレートファイルのパス"
$ImportCSVPath = “CSVのファイルのパス"

# Import Parameter Csv
$csv = Import-Csv -path $ImportCSVPath

# Template Deploy
foreach( $c in $csv ){

New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
 -TemplateFile $TemplateFilePath `
 -workspaceName $c.workspaceName `
 -location $c.location `
 -sku $c.sku
}

作成が成功すると、以下の通りにLog Analyticsのワークスペースが作成されたログが表示されます。

Outputs :

DeploymentDebugLogLevel :

DeploymentName : LogAnalytics_WorkSpace
ResourceGroupName : リソースグループ名
ProvisioningState : Succeeded
Timestamp : 作成時刻
Mode : Incremental
TemplateLink :
Parameters :
Name        Type          Value
=============== ================= ==========
workspaceName    String          test-203-20200328
location       String         japaneast
sku         String                                  PerGB2018

CSVで指定した値で作成した値で作成されている事が確認できます。