既にデプロイされている Azure Kubernetes Service (AKS) クラスターの監視を有効にする
この記事では、既に自分のサブスクリプションにデプロイされている、Azure Kubernetes Service でホストされているマネージド Kubernetes クラスターを監視するように Container insights を設定する方法について説明します。
サポートされている次のいずれかの方法を使用して、既にデプロイされている AKS クラスターの監視を有効にすることができます。
- Azure CLI
- Terraform
- Azure Portal で Azure Monitor から、または AKS クラスターから直接
- Azure PowerShell コマンドレット
New-AzResourceGroupDeployment
または Azure CLI を使用して、提供されている Azure Resource Manager テンプレートで。
既存の AKS クラスターを別のサブスクリプションの Azure Log Analytics ワークスペースに接続している場合は、Microsoft.ContainerService リソース プロバイダーを、Log Analytics ワークスペースが作成されたサブスクリプションに登録する必要があります。 詳細については、「リソース プロバイダーを登録する」 を参照してください。
Azure portal にサインインする
Azure portal にサインインします。
Azure CLI を使用して有効にする
Azure CLI を使用して AKS クラスターの監視を有効にするには、次の手順のようにします。 この例では、ワークスペースを事前に作成したり、既存のワークスペースを指定したりする必要はありません。 このコマンドでは、リージョンにワークスペースがまだ存在しない場合、AKS クラスター サブスクリプションの既定のリソース グループに既定のワークスペースが作成されるので、プロセスが簡単になります。 作成される既定のワークスペースは、DefaultWorkspace-<GUID>-<Region> のような形式になります。
az aks enable-addons -a monitoring -n MyExistingManagedCluster -g MyExistingManagedClusterRG
出力は次のようになります。
provisioningState : Succeeded
既存のワークスペースと統合する
既存のワークスペースと統合する場合は、次の手順を実行して、最初に --workspace-resource-id
パラメーターに必要な Log Analytics ワークスペースの完全なリソース ID を特定し、コマンドを実行して、指定されたワークスペースに対して監視アドオンを有効にします。
次のコマンドを使用して、アクセス権のあるすべてのサブスクリプションを一覧表示します。
az account list --all -o table
出力は次のようになります。
Name CloudName SubscriptionId State IsDefault ------------------------------------ ----------- ------------------------------------ ------- ----------- Microsoft Azure AzureCloud 68627f8c-91fO-4905-z48q-b032a81f8vy0 Enabled True
SubscriptionId の値をコピーします。
次のコマンドを使用して、Log Analytics ワークスペースをホストしているサブスクリプションに切り替えます。
az account set -s <subscriptionId of the workspace>
次の例では、既定の JSON 形式で、サブスクリプション内のワークスペースの一覧が表示されます。
az resource list --resource-type Microsoft.OperationalInsights/workspaces -o json
出力で、ワークスペース名を見つけて、フィールド id の下にあるその Log Analytics ワークスペースの完全なリソース ID をコピーします。
次のコマンドを使用して、クラスターをホストしているサブスクリプションに切り替えます。
az account set -s <subscriptionId of the cluster>
次のコマンドを実行して、監視アドオンを有効にし、
--workspace-resource-id
パラメーターの値を置き換えます。 文字列値は二重引用符で囲む必要があります。az aks enable-addons -a monitoring -n ExistingManagedCluster -g ExistingManagedClusterRG --workspace-resource-id "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.OperationalInsights/workspaces/<WorkspaceName>"
出力は次のようになります。
provisioningState : Succeeded
Terraform を使用して有効にする
oms_agent アドオン プロファイルを既存の azurerm_kubernetes_cluster リソース に追加します。
addon_profile { oms_agent { enabled = true log_analytics_workspace_id = "${azurerm_log_analytics_workspace.test.id}" } }
azurerm_log_analytics_solution を、Terraform のドキュメントに記載されている手順に従って追加します。
メトリックはTerraformを使用して既定で収集されないため、オンボード後は、メトリックを有効にするために必要な監視メトリックパブリッシャーロールを割り当てる追加の手順があります。
ポータルで Azure Monitor から有効にする
Azure portal で Azure Monitor からの AKS クラスターの監視を有効にするには、次のようにします。
Azure portal で、 [モニター] を選択します。
一覧から [コンテナー] を選択します。
[モニター - コンテナー] ページで、 [Unmonitored clusters](監視対象外のクラスター) を選択します。
監視対象外のクラスターの一覧でコンテナーを検索し、 [有効にする] をクリックします。
[Onboarding to Container insights](Container insights のオンボード) ページにクラスターと同じサブスクリプションの既存の Log Analytics ワークスペースが存在する場合は、ドロップダウン リストからそれを選択します。 このリストでは、サブスクリプションで AKS コンテナーがデプロイされている既定のワークスペースと場所が事前に選択されています。
Note
クラスターからの監視データを格納するための新しい Log Analytics ワークスペースを作成する場合は、「Log Analytics ワークスペースの作成」の手順に従います。 必ず、AKS コンテナーがデプロイされるのと同じサブスクリプションでワークスペースを作成してください。
監視を有効にした後、クラスターの正常性メトリックが表示されるまで、約 15 分かかる場合があります。
ポータルで AKS クラスターから直接有効にする
Azure Portal でいずれかの AKS クラスターから直接監視を有効にするには、次の操作を行います。
Azure Portal で [すべてのサービス] を選択します。
リソースの一覧で、「Containers」と入力を開始します。 入力内容に基づいて、一覧がフィルター処理されます。
[Kubernetes サービス] を選択します。
Kubernetes サービスの一覧で、サービスを選択します。
Kubernetes サービスの概要ページで、 [監視] - [分析情報] を選択します。
[Onboarding to Container insights](Container insights のオンボード) ページにクラスターと同じサブスクリプションの既存の Log Analytics ワークスペースが存在する場合は、ドロップダウン リストでそれを選択します。 このリストでは、サブスクリプションで AKS コンテナーがデプロイされている既定のワークスペースと場所が事前に選択されています。
Note
クラスターからの監視データを格納するための新しい Log Analytics ワークスペースを作成する場合は、「Log Analytics ワークスペースの作成」の手順に従います。 必ず、AKS コンテナーがデプロイされるのと同じサブスクリプションでワークスペースを作成してください。
監視を有効にした後、クラスターのオペレーショナル データが表示されるまで、約 15 分かかる場合があります。
Azure Resource Manager テンプレートを使用して有効にする
この方法には、2 つの JSON テンプレートが含まれます。 1 つのテンプレートでは監視を有効にする構成が指定され、もう 1 つのテンプレートには、次を指定するために構成するパラメーター値が含まれています。
- AKS コンテナー リソース ID。
- クラスターがデプロイされるリソース グループ。
Note
テンプレートはクラスターと同じリソース グループ内に展開する必要があります。
Azure PowerShell または CLI を使用して監視を有効にするには、その前に Log Analytics ワークスペースが作成されている必要があります。 ワークスペースを作成するには、Azure Resource Manager、PowerShell、Azure portal のいずれかを使用して設定できます。
テンプレートを使用するリソースのデプロイの概念について馴染みがない場合は、以下を参照してください。
Azure CLI を使用する場合は、まず、ローカルに CLI をインストールして使用する必要があります。 Azure CLI バージョン 2.0.59 以降を実行している必要があります。 ご利用のバージョンを識別するには、az --version
を実行します。 Azure CLI をインストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
テンプレートを作成して実行する
以下の JSON 構文をコピーして、ファイルに貼り付けます。
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "aksResourceId": { "type": "string", "metadata": { "description": "AKS Cluster Resource ID" } }, "aksResourceLocation": { "type": "string", "metadata": { "description": "Location of the AKS resource e.g. \"East US\"" } }, "aksResourceTagValues": { "type": "object", "metadata": { "description": "Existing all tags on AKS Cluster Resource" } }, "workspaceResourceId": { "type": "string", "metadata": { "description": "Azure Monitor Log Analytics Resource ID" } } }, "resources": [ { "name": "[split(parameters('aksResourceId'),'/')[8]]", "type": "Microsoft.ContainerService/managedClusters", "location": "[parameters('aksResourceLocation')]", "tags": "[parameters('aksResourceTagValues')]", "apiVersion": "2018-03-31", "properties": { "mode": "Incremental", "id": "[parameters('aksResourceId')]", "addonProfiles": { "omsagent": { "enabled": true, "config": { "logAnalyticsWorkspaceResourceID": "[parameters('workspaceResourceId')]" } } } } } ] }
このファイルを existingClusterOnboarding.json としてローカル フォルダーに保存します。
以下の JSON 構文をファイルに貼り付けます。
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "aksResourceId": { "value": "/subscriptions/<SubscriptionId>/resourcegroups/<ResourceGroup>/providers/Microsoft.ContainerService/managedClusters/<ResourceName>" }, "aksResourceLocation": { "value": "<aksClusterLocation>" }, "workspaceResourceId": { "value": "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroup>/providers/Microsoft.OperationalInsights/workspaces/<workspaceName>" }, "aksResourceTagValues": { "value": { "<existing-tag-name1>": "<existing-tag-value1>", "<existing-tag-name2>": "<existing-tag-value2>", "<existing-tag-nameN>": "<existing-tag-valueN>" } } } }
AKS クラスターの [AKS Overview](AKS の概要) ページの値を使用して、aksResourceId と aksResourceLocation の値を編集します。 workspaceResourceId の値は、ワークスペース名を含む Log Analytics ワークスペースの完全なリソース ID です。
AKS クラスターに指定されている既存のタグ値に一致するように、aksResourceTagValues の値を編集します。
このファイルを existingClusterParam.json としてローカル フォルダーに保存します。
これでこのテンプレートをデプロイする準備が整いました。
Azure PowerShell を使用してデプロイするには、そのテンプレートを含むフォルダーで次のコマンドを使用します。
New-AzResourceGroupDeployment -Name OnboardCluster -ResourceGroupName <ResourceGroupName> -TemplateFile .\existingClusterOnboarding.json -TemplateParameterFile .\existingClusterParam.json
設定の変更が完了するまで数分かかります。 完了すると、次のような結果を含むメッセージが表示されます。
provisioningState : Succeeded
Azure CLI を使用してデプロイするには、次のコマンドを実行します。
az login az account set --subscription "Subscription Name" az deployment group create --resource-group <ResourceGroupName> --template-file ./existingClusterOnboarding.json --parameters @./existingClusterParam.json
設定の変更が完了するまで数分かかります。 完了すると、次のような結果を含むメッセージが表示されます。
provisioningState : Succeeded
監視を有効にした後、クラスターの正常性メトリックが表示されるまで、約 15 分かかる場合があります。
エージェントとソリューションのデプロイを確認する
バージョン 06072018 以降のエージェントでは、エージェントとソリューションの両方が正常にデプロイされていることを確認することができます。 これより前のバージョンのエージェントでは、エージェントのデプロイしか確認できません。
エージェント バージョン 06072018 以降
エージェントが正常にデプロイされていることを確認するには、次のコマンドを実行します。
kubectl get ds omsagent --namespace=kube-system
出力は次のようになり、適切にデプロイされたことが示されます。
User@aksuser:~$ kubectl get ds omsagent --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
omsagent 2 2 2 2 2 beta.kubernetes.io/os=linux 1d
クラスターに Windows Server ノードがある場合は、次のコマンドを実行して、エージェントが正常にデプロイされていることを確認できます。
kubectl get ds omsagent-win --namespace=kube-system
出力は次のようになり、適切にデプロイされたことが示されます。
User@aksuser:~$ kubectl get ds omsagent-win --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
omsagent-win 2 2 2 2 2 beta.kubernetes.io/os=windows 1d
ソリューションのデプロイを確認するには、次のコマンドを実行します。
kubectl get deployment omsagent-rs -n=kube-system
出力は次のようになり、適切にデプロイされたことが示されます。
User@aksuser:~$ kubectl get deployment omsagent-rs -n=kube-system
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
omsagent 1 1 1 1 3h
06072018 より前のバージョンのエージェント
06072018 より前にリリースされたバージョンの Log Analytics エージェントが適切にデプロイされていることを確認するには、次のコマンドを実行します。
kubectl get ds omsagent --namespace=kube-system
出力は次のようになり、適切にデプロイされたことが示されます。
User@aksuser:~$ kubectl get ds omsagent --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
omsagent 2 2 2 2 2 beta.kubernetes.io/os=linux 1d
CLI で構成を表示する
ソリューションが有効かどうか、Log Analytics ワークスペースのリソース ID、クラスターに関するサマリー詳細などの詳細を取得するには、aks show
コマンドを使用します。
az aks show -g <resourceGroupofAKSCluster> -n <nameofAksCluster>
数分してコマンドが完了すると、ソリューションに関する情報が JSON 形式で表示されます。 コマンドの結果では監視アドオン プロファイルが表示され、次の出力例のようになります。
"addonProfiles": {
"omsagent": {
"config": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/<WorkspaceSubscription>/resourceGroups/<DefaultWorkspaceRG>/providers/Microsoft.OperationalInsights/workspaces/<defaultWorkspaceName>"
},
"enabled": true
}
}
次のステップ
ソリューションのオンボードを試みた際に問題が発生した場合は、トラブルシューティング ガイドを確認してください。
AKS クラスターと実行中のワークロードの正常性とリソース使用率を収集するための監視を有効にしたうえで、Container insights を使用する方法について学習します。