簡體   English   中英

使用 Python 監視 Azure 虛擬機規模集 (VMSS) 中的實例

[英]Monitoring instances in Azure Virtual Machine Scale Set (VMSS) using Python

我想監視和獲取有關 Azure 虛擬機規模集 (VMSS) 中不同實例的信息。

我使用了命令(Python):

vmss = compute_client.virtual_machine_scale_sets.list(resource_group, scale_set_name)

但我無法得到我期望的結果。

有什么建議該怎么做?

可以使用以下代碼獲取ip和powerstate。

compute_client = ComputeManagementClient(credentials, subscription_id)
vmss = compute_client.virtual_machine_scale_set_vms.list(resource_group_name="", vmss="")
for item in vmss:
    print("name: ", item.name)
    ni_reference = item.network_profile.network_interfaces[0].id
    resource_client = ResourceManagementClient(credentials, subscription_id)
    nic = resource_client.resources.get_by_id(
        ni_reference,
        api_version='2017-12-01')
    ip_reference = nic.properties['ipConfigurations'][0]['properties']
    print("ip info: ", ip_reference)

    instance_view = compute_client.virtual_machine_scale_set_vms.get_instance_view(resource_group_name="", vmss="", instance_id=item.instance_id)
    print(instance_view.statuses[1].code)

結果:

name:  yangtestvmss_1
ip info:  {'provisioningState': 'Succeeded', 'privateIPAddress': '10.0.0.5', 'privateIPAllocationMethod': 'Dynamic', 'subnet': {'id': '/subscriptions/e5b0fcfa-e859-43f3-8d84-5e5fe29f4c68/resourceGroups/yangtestvmss/providers/Microsoft.Network/virtualNetworks/yangtestvmssVnet/subnets/default'}, 'primary': True, 'privateIPAddressVersion': 'IPv4', 'isInUseWithService': False}
PowerState/running
name:  yangtestvmss_3
ip info:  {'provisioningState': 'Succeeded', 'privateIPAddress': '10.0.0.7', 'privateIPAllocationMethod': 'Dynamic', 'subnet': {'id': '/subscriptions/e5b0fcfa-e859-43f3-8d84-5e5fe29f4c68/resourceGroups/yangtestvmss/providers/Microsoft.Network/virtualNetworks/yangtestvmssVnet/subnets/default'}, 'primary': True, 'privateIPAddressVersion': 'IPv4', 'isInUseWithService': False}
PowerState/running

如果您想獲取虛擬機信息,請使用以下代碼。

subscription_id = 'subscription Id'
credentials = ServicePrincipalCredentials(client_id=CLIENT, secret=KEY, tenant=TENANT_ID)
client = ComputeManagementClient(credentials, subscription_id)
vmss = client.virtual_machine_scale_set_vms.list("resourcegroup Name","VMSS name")
for item in vmss:  
    print("id:",item.id)
    print("name",item.name)

測試結果:

在此處輸入圖片說明

有一個很酷的工具,來自微軟的一個人已經構建了用於監控 VMSS 看到這個鏈接VMSS 儀表板

上述工具可幫助您查看規模集中 VM 的狀態:您可以查看 VM 的更新域和容錯域分組。 它允許您啟動或取消分配 VM。 代碼是兩年多前的了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM