Мониторинг экземпляров в масштабируемом наборе виртуальных машин Azure (VMSS) с помощью Python

Я хочу отслеживать и получать информацию о различных экземплярах в масштабируемом наборе виртуальных машин Azure (VMSS).

Я использовал команду (Python):

vmss = compute_client.virtual_machine_scale_sets.list (группа_ресурсов, имя_набора_масштабов)

Но я не могу получить ожидаемый результат.

Есть предложения, что делать?


comment
ну а использовать решения для мониторинга?   -  person 4c74356b41    schedule 25.07.2018
comment
Если вы не против использования сторонних продуктов, загляните на CloudMonix @ cloudmonix.com - он полностью поддерживает VMSS, любые счетчики производительности, восстановление и масштабирование экземпляров и многое другое ... HTH   -  person Igorek    schedule 27.07.2018


Ответы (3)


Если вы хотите получить информацию о виртуальных машинах, используйте следующий код.

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)

Результат теста:

введите здесь описание изображения

person Tom Sun - MSFT    schedule 26.07.2018
comment
Да, но это дает мне только имена экземпляров, которые фактически выполняются до или после масштабирования или масштабирования. Но я хочу получить информацию об этих случаях. Как IP-адрес, состояние экземпляра (запущен или остановлен) и т. Д. Итак, я хочу отслеживать те экземпляры, которые в настоящее время работают в VMSS. Я проверил следующую ссылку, но не смог получить требуемый результат: docs.microsoft.com/en-us/python/api/azure-mgmt-compute/ - person I am L; 26.07.2018
comment
Есть ли какая-то конкретная документация, которую я могу использовать для получения информации о таких экземплярах, как .id и .name, которые вы использовали? Потому что .ip или.discinfo, похоже, не работают. - person I am L; 26.07.2018

Вы можете использовать следующий код, чтобы получить 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
person axfd    schedule 27.07.2018
comment
и как я могу получить общий IP-адрес экземпляра в vmss? - person Omer Anisfeld; 07.07.2019

Есть классный инструмент, созданный парнем из Microsoft для мониторинга VMSS, см. Эту ссылку VMSS Dashboard.

Упомянутый инструмент помогает вам увидеть статус виртуальных машин в масштабируемом наборе: вы можете увидеть домен обновления и группировку виртуальных машин в домене сбоя. Он позволяет запускать или освобождать виртуальную машину. Код выпущен более двух лет назад.

person Benyamin Famili    schedule 29.11.2019
comment
Не могли бы вы кратко изложить здесь содержание ссылки? - person Roberto Caboni; 29.11.2019
comment
Упомянутый инструмент помогает вам видеть статус виртуальных машин в масштабируемом наборе, вы можете видеть домен обновления и группировку виртуальных машин в домене сбоя. Это позволяет запускать или освобождать виртуальную машину. Код выпущен более двух лет назад. - person Benyamin Famili; 02.12.2019