Вот моя установка Azure:
subscription1:
virtualmachine01 --> linked to log_analytics_workspace01 in subscription01
virtualmachine02 --> linke to log_analytics_workspace02 in subscription02
log_analytics_workspace01
subscription2:
virtualmachine03 --> linked to log_analytics_workspace02 in subscription02
log_analytics_workspace02
Обе подписки принадлежат одному клиенту, и мой идентификатор пользователя имеет доступ к обеим подпискам. Чтобы регистрировать метрики всех виртуальных машин под клиентом в одной рабочей области аналитики журналов для целей отчетности / аудита, я связал все виртуальные машины virtualmachine01 и virtualmachine02 с единым рабочим пространством аналитики журнала log_analytics_workspace02, используя шаблон руки.
Моя автоматизация требует, чтобы я привязал идентификатор рабочей области ко всем виртуальным машинам в подписке. Например, подписка1 здесь.
Я мог бы связать идентификатор рабочей области с виртуальной машиной с помощью python sdk. Вот фрагмент кода:
compute_client = ComputeManagementClient(credentials, subscription_id)
vm_list = compute_client.virtual_machines.list_all()
for vm in vm_list:
vm_name = vm.id.split('/')[-1]
vm_rg = vm.id.split('/')[4]
for extn in vm.resources:
if extn.id.split('/')[-1] in ['MicrosoftMonitoringAgent', 'MMAExtension', 'OMSExtension', 'OmsAgentForLinux']:
customer_id = compute_client.virtual_machine_extensions.get(
vm_rg,
vm_name,
extn.id.split('/')[-1]).settings['workspaceId']
law_client = LogAnalyticsManagementClient(credentials, subscription_id)
workspaces = law_client.workspaces.list()
for w in workspaces:
if w.customer_id == customer_id:
workspace_id = w.id
print('Workspace_id '+workspace_id)
Сценарий проходит через несколько подписок, к которым у меня есть доступ, и извлекает идентификатор рабочей области аналитики журнала для каждой виртуальной машины в этой подписке. Проблема с приведенным выше кодом заключается в том, что он извлекает только идентификатор рабочей области vm, прикрепленной к рабочей области в той же подписке, что и vm (subscription1), но терпит неудачу, когда пытается получить идентификатор рабочей области vm, которая связана с рабочей областью в другом подписка, чем vm.
Как я могу получить идентификатор рабочей области Log Analytics виртуальной машины, которая связана с рабочей областью аналитики журналов в подписке, отличной от той, в которой работает виртуальная машина.
Спасибо.