Azureカスタムテンプレートは、Microsoft Azureにデプロイするリソースを定義するJSONファイルです。Azureポータルでオプションを手動で選択する代わりに、VM、ストレージアカウント、またはネットワークコンポーネントを一貫して作成するためのより迅速な方法です。Azureカスタムテンプレートは、Oktaなどのソースからのログをリッスンする必要なリソース(Azure FunctionsやEvent Hubsなど)をデプロイするために必要です。 

コネクタで現在サポートされていないカスタムデータを必要とするデプロイメントでは、カスタムテンプレートが必要になる場合もあります。例えば、Sentinel by Microsoft は Okta ログの取り込みをサポートしていますが、Okta システムログのみが対象です。デプロイメントで Okta からの他の種類のデータが必要な場合、または Okta から取り込むログをフィルター処理したい場合は、カスタム Azure テンプレートをデプロイする必要があります。 

Azure テンプレートのデプロイ要件

Azure Function と Event Hub をデプロイするには、次のものが必要です。

  • LogicMonitorポータルで作成されたAzureクラウドアカウント。詳細については、 Microsoft Azure クラウド監視の追加
  • LogicMonitor APIトークンは、ログ取り込みAPIへのすべてのリクエストを認証します。詳細については、 API トークンの追加
  • ログを転送するマシンにインストールされているAzure CLIツール。詳細については、 Azure CLI のインストール方法 マイクロソフトから
  • Azure リソース ログにアクセスするマネージド ID を作成するための Azure のユーザー管理者ロール

注意: Azureデバイスは、同じリージョン内のイベントハブにのみログを送信できます。 各Azureリージョンには、個別のAzureFunctionデプロイメントが必要です。

Azure テンプレートのデプロイ

  1. Azureクラウドアカウントを使用してカスタムテンプレートをデプロイします。詳細な手順については、 カスタムテンプレートからリソースをデプロイする マイクロソフトから。
  2. ソフトウェア設定ページで、下図のように テンプレートを編集 ページで、次のパラメータを指定します。
詳細説明 必須
地域デプロイメントメタデータを保存する場所。Azureでは事前定義されていますが、値を変更できます。表示名によるAzureリージョンの一覧については、以下を参照してください。 Azure の地域 マイクロソフトから。あり
リソースグループリージョンリソース グループを作成し、リソース (Event Hub や Function App など) をデプロイするリージョンを入力します。

Azure リージョンの一覧をプレーン テキストで表示するには、Azure CLI ツールがインストールされている PowerShell から次のコマンドを実行します。
az account list-locations -o table
あり
LM_会社名ターゲットURLにLogicMonitorの会社名またはアカウント名を入力してください。これは  値であり、完全修飾ドメイン名 (FQDN) ではありません。
例:  https://<account>.logicmonitor.com
あり
LM_ドメイン名LM ポータルのドメイン。
デフォルトでは、 "logicmonitor.com"この変数でサポートされているドメインは次のとおりです。
– lmgov.us
– qa-lmgov.us
– logicmonitor.com
あり
LM_アクセスIDLM APIトークンのアクセスID。この統合にはAPI専用ユーザーを使用する必要があります。あり
LM_アクセスキーLM API トークンのアクセス キー。あり
Azure_クライアントIDLogicMonitor ポータルで Azure クラウド アカウントを作成するときに使用するアプリケーション (クライアント) ID。 

注意: この ID は、Azure クラウド アカウントに接続したときに作成されているはずです。 ID は、アプリの登録の下の Azure Active Directory にあります。

あり
Enable Activity LogsAzure Functionsで作成されたイベントハブにアクティビティログを送信するかどうかを指定します。「はい」(デフォルト)または「いいえ」を選択できます。いいえ
Azure_Account_Nameこのフィールドを使用して、Azureアカウントログとクラウドアカウントリソース間のマッピングを確立します。Azureアカウント名は、 system.displayname 内のフィールド クラウドアカウント情報 タブには何も表示されないことに注意してください。いいえ
LM_Bearer_TokenLM APIベアラートークン。両方使用できます。 access_id   access_key、または単に bearer_token
すべてのパラメータが指定された場合、LMv1トークン(access_id   access_key) は LogicMonitor での認証に使用されます。
いいえ
Include_Metadata_keyslm-logイベントにイベントメタデータとして追加するコンマ区切りのキー。ネストされたJSONの場合は「.」を指定します(例: properties.functionName,properties.messageいいえ
LM テナント IDLogicMonitor テナント識別子は、イベント メタデータとして LogicMonitor に送信されます。いいえ
TLSVersionStorageAccount (TLS バージョン ストレージ アカウント)ストレージ アカウントの TLS バージョンを x_x の形式で指定します。例 1.2 は 1_2 として提供されます。デフォルトは 1_2 です。 あり
TLSVersionFunctionApp (TLSバージョン機能アプリ)関数アプリの TLS バージョンを XX の形式で指定します。デフォルトは 1.3 です。あり

サンプル パラメーターを含む Azure カスタム テンプレートで使用される JSON コードの例については、以下を参照してください。

{

 "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",

 "contentVersion": "1.0.0.0",

 "variables": {

   "sourceCodeBranch": "master",

   "templateBaseUri": "[concat('https://raw.githubusercontent.com/logicmonitor/lm-logs-azure/',variables('sourceCodeBranch'),'/arm-template-deployment/')]",

   "deploymentResourceGroupName": "[concat('lm-logs','-',parameters('LM_Company_Name'), '-', replace(parameters('Resource_Group_Region'),' ',''),'-group')]",

   "eventhubNamespace": "[concat('lm-logs','-',parameters('LM_Company_Name'), '-', replace(parameters('Resource_Group_Region'),' ',''))]",

   "eventhubLogsName": "log-hub",

   "subscriptionId": "[subscription().subscriptionId]",

   "eventHubAuthorizationRuleId": "[concat('/subscriptions/', variables('subscriptionId'), '/resourceGroups/', variables('deploymentResourceGroupName'), '/providers/Microsoft.EventHub/namespaces/', variables('eventhubNamespace'), '/authorizationRules/RootManageSharedAccessKey')]"

 },

 "parameters": {

   "Resource_Group_Region": {

     "type": "String"

   },

   "LM_Company_Name": {

     "type": "String"

   },

   "LM_Domain_Name": {

     "type": "string",

     "defaultValue": "logicmonitor.com",

     "allowedValues": [

       "logicmonitor.com",

       "lmgov.us",

       "qa-lmgov.us"

     ],

     "metadata": {

       "description": "Domain of LM Platform where logs are to be sent."

     }

   },

   "LM_Access_Id": {

     "type": "String",

     "defaultValue": "",

     "metadata": {

       "description": "LogicMonitor API Token access ID."

     }

   },

   "LM_Access_Key": {

     "type": "String",

     "defaultValue": "",

     "metadata": {

       "description": "LogicMonitor API Token access Key."

     }

   },

   "LM_Bearer_Token": {

     "type": "String",

     "defaultValue": "",

     "metadata": {

       "description": "LM API Bearer Token.\nEither specify access_id and access_key both or bearer_token. If all specified, LMv1 token(access_id and access_key) will be used for authentication with LogicMonitor."

     }

   },

   "Azure_Client_Id": {

     "type": "string",

     "metadata": {

       "description": "Application Client Id provided during the creation of azure account in LM"

     }

   },

   "Azure_Account_Name": {

     "type": "string",

     "defaultValue": "",

     "metadata": {

       "description": "Azure Account Name created during the creation of azure account in LM"

     }

   },

   "Include_Metadata_keys": {

     "type": "string",

     "defaultValue": "resourceId",

     "metadata": {

       "description": "comma separated keys to add as event metadata in a lm-log event. for nested json specify '.' eg - properties.functionName,properties.message "

     }

   },

   "LM_Tenant_Id": {

     "type": "string",

     "defaultValue": "",

     "metadata": {

       "description": "LogicMonitor Tenant Identifier sent as event metadata to LogicMonitor"

     }

   },

   "Enable_Activity_Logs": {

     "type": "String",

     "allowedValues": [

       "Yes",

       "No"

     ],

     "metadata": {

       "description": "Enable Activity logs to be sent to the event hub that will get created in this deployment"

     },

     "defaultValue": "Yes"

   },

   "TLSVersionStorageAccount": {

     "type": "string",

     "defaultValue": "1_2",

     "metadata": {

       "description": "Provide an appropriate TLS version for storage account. Format - X_X"

     }

   },

   "TLSVersionFunctionApp": {

     "type": "string",

     "defaultValue": "1.3",

     "metadata": {

       "description": "Provide an appropriate TLS version for function app. Format - X.X"

     }

   }







 },

 "resources": [

   {

     "condition": "[or(and(not(empty(parameters('LM_Access_Id'))), not(empty(parameters('LM_Access_Key')))), not(empty(parameters('LM_Bearer_Token'))))]",

     "type": "Microsoft.Resources/resourceGroups",

     "apiVersion": "2018-05-01",

     "location": "[parameters('Resource_Group_Region')]",

     "name": "[variables('deploymentResourceGroupName')]",

     "properties": {}

   },

   {

     "apiVersion": "2017-05-10",

     "name": "linkedTemplatedeployment",

     "type": "Microsoft.Resources/deployments",

     "resourceGroup": "[variables('deploymentResourceGroupName')]",

     "comments": "Deploy resources within the group",

     "properties": {

       "mode": "Incremental",

       "templateLink": {

         "uri": "[concat(variables('templateBaseUri'), 'deployResourcesInRG.json')]",

         "contentVersion": "1.0.0.0"

       },

       "parameters": {

         "Location": {

           "value": "[parameters('Region')]"

         },

         "Azure_Region": {

           "value": "[parameters('Resource_Group_Region')]"

         },

         "LM_Company_Name": {

           "value": "[parameters('LM_Company_Name')]"

         },

         "LM_Domain_Name": {

           "value": "[parameters('LM_Domain_Name')]"

         },

         "LM_Access_Id": {

           "value": "[parameters('LM_Access_Id')]"

         },

         "LM_Access_Key": {

           "value": "[parameters('LM_Access_Key')]"

         },

         "LM_Bearer_Token": {

           "value": "[parameters('LM_Bearer_Token')]"

         },

         "Azure_Client_Id": {

           "value": "[parameters('Azure_Client_Id')]"

         },

         "Azure_Account_Name": {

           "value": "[parameters('Azure_Account_Name')]"

         },

         "sourceCodeBranch": {

           "value": "[variables('sourceCodeBranch')]"

         },

         "Include_Metadata_keys": {

           "value": "[parameters('Include_Metadata_keys')]"

         },

         "LM_Tenant_Id" : {

           "value": "[parameters('LM_Tenant_Id')]"

         },

         "TLSVersionStorageAccount": {

           "value": "[parameters('TLSVersionStorageAccount')]"

         },

         "TLSVersionFunctionApp": {

           "value": "[parameters('TLSVersionFunctionApp')]"

         }

       }

     },

     "dependsOn": [

       "[resourceId('Microsoft.Resources/resourceGroups/', variables('deploymentResourceGroupName'))]"

     ]

   },

   {

     "condition": "[equals(parameters('Enable_Activity_Logs'), 'Yes')]",

     "type": "Microsoft.Insights/diagnosticSettings",

     "apiVersion": "2017-05-01-preview",

     "name": "[variables('deploymentResourceGroupName')]",

     "properties": {

       "eventHubAuthorizationRuleId": "[variables('eventHubAuthorizationRuleId')]",

       "eventHubName": "[variables('eventhubLogsName')]",

       "logs": [

         {

           "category": "Administrative",

           "enabled": true

         },

         {

           "category": "Security",

           "enabled": true

         },

         {

           "category": "ServiceHealth",

           "enabled": true

         },

         {

           "category": "Alert",

           "enabled": true

         },

         {

           "category": "Recommendation",

           "enabled": true

         },

         {

           "category": "Policy",

           "enabled": true

         },

         {

           "category": "Autoscale",

           "enabled": true

         },

         {

           "category": "ResourceHealth",

           "enabled": true

         }

       ]

     },

     "dependsOn": [

       "[resourceId('Microsoft.Resources/resourceGroups/', variables('deploymentResourceGroupName'))]",

       "linkedTemplatedeployment"

     ]

   }

 ],

 "outputs": {}

}

14日間フルアクセス LogicMonitor プラットフォーム