Как войти из учетной записи службы автоматизации в Application Insights в Azure?

Я использую учетную запись Azure Automation для копирования своей производственной базы данных в промежуточную. Я также делаю много настраиваемых вещей с этим скопированным db + Я делаю некоторые вещи по миграции с учетными записями хранилища Azure. Подводя итог, мой "главный" модуль Runbook вызывает другие модули Runbook, и весь рабочий процесс довольно большой, поэтому я хотел бы регистрировать каждый шаг.

Есть ли способ использовать Application Insights для этой цели? Если вам известны другие возможные решения, дайте мне знать! Ищу самое простое и умное решение.

Я нашел этот модуль https://docs.microsoft.com/en-us/powershell/module/azurerm.applicationinsights/?view=azurermps-6.13.0 Но похоже, что нет командлетов для фактического «протоколирования» чего-либо.

Я бы хотел сделать что-то вроде этого:

New-AzureRmApplicationInsightsLog -Name "myAppInsights" -LogText "Step 1. Start copying db"

person Sofia Bo    schedule 21.08.2019    source источник
comment
без импорта dll app Insights вы можете написать сценарий PowerShell в соответствии с этим doc для отправки данных в аналитику приложений, но это немного сложно.   -  person Ivan Yang    schedule 22.08.2019
comment
Я не против импортировать dll App Insights, и я действительно пытался, но у меня ничего не получалось. Я попробовал все перечисленные здесь варианты vnextengineer.azurewebsites.net/powershell-application-insights а здесь stackoverflow. com / questions / 35870749 / и здесь stackoverflow.com/questions/43265741/ Но я всегда получаю сообщение об ошибке, что путь недействителен. Он работает нормально, если я делаю это на своем ноутбуке, но когда я делаю это в Runbook Azure, он не работает   -  person Sofia Bo    schedule 22.08.2019
comment
Если вы можете импортировать модуль в свою учетную запись автоматизации, вы можете увидеть мой ответ ниже.   -  person Ivan Yang    schedule 23.08.2019


Ответы (2)


Предположим, вы можете получить Microsoft.ApplicationInsights.dll. Если вы не знаете, как его получить, дайте мне знать.

Затем выполните следующие действия:

1. Поместите Microsoft.ApplicationInsights.dll в zip-файл (вы можете щелкнуть правой кнопкой мыши файл .dll-> отправить в -> сжатую (zip) папку), затем вы получите zip-файл с именем Microsoft.ApplicationInsights.zip

2.Перейдите на портал Azure -> ваша учетная запись автоматизации -> Модули -> Добавить модуль: загрузите zip-файл на шаге 1. Примечание: это может занять несколько минут, когда вы увидите, что статус доступен для Microsoft.ApplicationInsights, затем Ничего страшного.

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

3.После импорта модуля Microsoft.ApplicationInsights.dll находится в этом месте в лазурном состоянии: "C:\Modules\User\Microsoft.ApplicationInsights\Microsoft.ApplicationInsights.dll"

4. Напишите свой код в модуле Runbook для отправки данных телеметрии в аналитические данные приложения:

Add-Type -Path "C:\Modules\User\Microsoft.ApplicationInsights\Microsoft.ApplicationInsights.dll"

    $InstrumentationKey = "xxxx"
    $TelClient = New-Object "Microsoft.ApplicationInsights.TelemetryClient"
    $TelClient.InstrumentationKey = $InstrumentationKey

    $TelClient.TrackEvent("PowerShell rocks!")
    $TelClient.Flush()

    write-output "ok it is finished."

5.Убедитесь, можете ли вы видеть данные в аналитике приложений:

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

person Ivan Yang    schedule 23.08.2019
comment
Большое спасибо! Я постараюсь и дам знать, как это происходит! - person Sofia Bo; 23.08.2019
comment
@SofiaBo, просто хочешь знать, ты это проверил? - person Ivan Yang; 27.08.2019
comment
В предыдущие дни у меня было еще одно рабочее задание, но сегодня я попробую его выполнить. Я позволю тебе прямо сейчас! - person Sofia Bo; 27.08.2019
comment
Наконец-то я смог попробовать это! К сожалению, что-то определенно пошло не так. Я также поместил указанный выше код в InlineScript {...}, потому что я получал ошибки. Но когда я перешел к анализу приложений, я не смог увидеть никаких журналов ... - person Sofia Bo; 27.08.2019
comment
Ой, подожди! Это сработало, но с довольно большой задержкой ... Я имею в виду, что метка времени точная, но я не мог видеть ее в журналах еще 4-5 минут - person Sofia Bo; 27.08.2019
comment
@SofiaBo, задержка - намеренная. Данные телеметрии не отправляются немедленно, и серверу также требуется время для агрегирования данных. - person Ivan Yang; 28.08.2019
comment
Это нормально, если метка времени точна. - person Sofia Bo; 28.08.2019

Я думаю вы имеете в виду что-то вроде этого?


$workspaceId = (Get-AzureRmOperationalInsightsWorkspace -ResourceGroupName $ResourceGroupLA -Name $WorkspaceName).ResourceId

Set-AzureRmDiagnosticSetting -ResourceId $automationAccountId -WorkspaceId $workspaceId -Enabled $true

По сути, вы просто настраиваете всю свою учетную запись автоматизации для использования рабочей области логаналитики. Насколько мне известно, вы не ведете журнал из модуля Runbook.

person Marco    schedule 21.08.2019
comment
Спасибо! Подходит ли он для отслеживания рабочего процесса модулей Runbook? Если один из модулей Runbook, который я вызываю из «главного» модуля Runbook, выдает исключение, будет ли он там отображаться? - person Sofia Bo; 21.08.2019
comment
Я попробовал это и ... На самом деле я не мог этого сделать с подпиской на бесплатную пробную версию. Что ж, я все еще ищу способ записать что-нибудь из модуля Runbook в Application Insights. Это очень близко к тому, что я ищу stackoverflow.com/questions/37039586/ Но я по-прежнему хочу иметь возможность полностью запускать его в облаке, не загружая что-либо на свой локальный компьютер. - person Sofia Bo; 21.08.2019
comment
Что касается исключения других модулей Runbook; Да, если они находятся в одной учетной записи автоматизации. К сожалению, у вас есть бесплатная подписка. В этом случае мне больше нечего предоставить, кроме моих мыслей о том, что вы нашли. Я считаю, что вы можете использовать учетную запись хранения, чтобы разместить нужный файл. Тогда, возможно, использовать его оттуда? Автоматизация может иметь доступ к службам Azure: docs.microsoft. ru / en-us / azure / automation / - person Marco; 22.08.2019