Azure Arc-enabled servers がプラットフォームの情報を集めるようになった

azure arc
Published: 2021-11-22

はじめに

Azure Arc-enabled servers のエージェントが、サーバの動作するプラットフォームの情報を集めるようになりました。現時点で収集される情報は次の通りです。

  • Hardware manufacturer
  • Hardware model
  • Cloud provider
  • Amazon Web Services (AWS) account ID, instance ID and region (if running in AWS)

参考:Overview of Azure Connected Machine agent

どのような情報が収集されるのかを実際に確認してみました。

収集される情報

Azure 上に作成される Azure Arc-enabled servers のリソースの detectedPropeties というプロパティに、収集されたプラットフォームの情報が格納されます。AWS の EC2 を Azure Arc-enabled servers に登録した結果が次の通りです。製造元とモデル、AWS のアカウント ID やインスタンス ID、リージョン名が記録されました。

{
    "provisioningState": "Succeeded",
    "displayName": "ip-172-16-1-7.ap-northeast-1.compute.internal",
    "status": "Disconnected",
    "osType": "linux",
    "osProfile": {
        "computerName": "ip-172-16-1-7.ap-northeast-1.compute.internal"
    },
    "osVersion": "5.10.75-79.358.amzn2.x86_64",
    "osName": "linux",
    "vmId": "2f26c01e-e35a-43dc-b5c9-45fafe4c4819",
    "detectedProperties": {
        "mssqldiscovered": "false",
        "cloudprovider": "AWS",
        "manufacturer": "Xen",
        "model": "HVM domU",
        "AWS-instanceId": "i-09d8db1ce5a51c3d2",
        "AWS-accountId": "xxxxxxxxxxxx",
        "AWS-region": "ap-northeast-1"
    },
    "lastStatusChange": "2021-11-20T11:53:36.3800579Z",
    "mssqlDiscovered": "false",
    "agentVersion": "1.13.21320.014",
    "errorDetails": [],
    "machineFqdn": "ip-172-16-1-7.ap-northeast-1.compute.internal",
    "domainName": "unknown",
    "dnsFqdn": "ip-172-16-1-7.ap-northeast-1.compute.internal",
    "adFqdn": "unknown",
    "vmUuid": "ec2e6566-6e94-77bb-c70f-c11bf9d51056",
    "osSku": "Amazon Linux 2"
}

ダッシュボードの作成

せっかくエージェントが情報を集めてくれているので Resource Graph を使って可視化してみました。次のようなクエリを利用して異なるプロパティを一つのプロパティにまとめれば、ハイブリッドクラウド・マルチクラウドのサーバ情報を Azure Monitor のダッシュボードで一覧化できます。

resources
| where type == "microsoft.compute/virtualmachines" or type == "microsoft.hybridcompute/machines"
| extend cloudprovider = case(
    type == "microsoft.compute/virtualmachines", "Microsoft Azure",
    properties.detectedProperties.cloudprovider
    )
| extend manufacturer = properties.detectedProperties.manufacturer
| extend model = properties.detectedProperties.model
| extend instanceId = case(
    cloudprovider == "AWS", properties.detectedProperties["AWS-instanceId"],
    cloudprovider == "Microsoft Azure", properties.vmId,
    type == "microsoft.hybridcompute/machines", properties.vmId,
    ""
    )
| extend accountId = case(
    cloudprovider == "AWS", properties.detectedProperties["AWS-accountId"],
    cloudprovider == "Microsoft Azure", subscriptionId,
    type == "microsoft.hybridcompute/machines", subscriptionId,
    ""
    )
| extend region = case(
    cloudprovider == "AWS", properties.detectedProperties["AWS-region"],
    cloudprovider == "Microsoft Azure", location,
    type == "microsoft.hybridcompute/machines", tags["CountryOrRegion"],
    ""
    )
| extend osSku = case(
    cloudprovider == "Microsoft Azure", strcat(properties.storageProfile.imageReference.offer, " ", properties.storageProfile.imageReference.sku) ,
    type == "microsoft.hybridcompute/machines", properties.osSku,
    ""
    )
| project name, osSku, region,cloudprovider, accountId, manufacturer,model

ダッシュボードの表示

まとめ

Azure Arc-enabled servers のエージェントが、サーバの動作するプラットフォームの情報を集めるようになったので試してみました。OS とクラウドサービスのインスタンスメタデータの両方から取集できるプラットフォームの情報を Azure Arc enabled servers が自動で集めてくれると、可視化がはかどりますね。