如何在Azure中从Automation帐户登录到Application Insights?

如何在Azure中从Automation帐户登录到Application Insights?,azure,azure-application-insights,azure-powershell,azure-runbook,Azure,Azure Application Insights,Azure Powershell,Azure Runbook,我正在使用Azure Automation帐户将我的生产数据库复制到暂存。我还用这个复制的db做了很多自定义工作,我用Azure存储帐户做了一些迁移工作总而言之,我的“主”runbook调用了另一个runbook,所有的工作流程都相当大,因此我想记录每个步骤。 是否有任何方法可以使用Application Insights实现此目的?如果您知道任何其他可能的解决方案,请告诉我!我正在寻找最简单和智能的解决方案 我找到了这个模块 但似乎没有cmdlet真正“记录”某些内容 我希望能够做到以下几点:

我正在使用Azure Automation帐户将我的生产数据库复制到暂存。我还用这个复制的db做了很多自定义工作,我用Azure存储帐户做了一些迁移工作总而言之,我的“主”runbook调用了另一个runbook,所有的工作流程都相当大,因此我想记录每个步骤。

是否有任何方法可以使用Application Insights实现此目的?如果您知道任何其他可能的解决方案,请告诉我!我正在寻找最简单和智能的解决方案

我找到了这个模块 但似乎没有cmdlet真正“记录”某些内容

我希望能够做到以下几点:

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

我想你的意思是这样的


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

Set-AzureRmDiagnosticSetting -ResourceId $automationAccountId -WorkspaceId $workspaceId -Enabled $true
基本上,您只需将整个自动化帐户配置为使用loganalytics工作区。
据我所知,您没有从runbook中进行日志记录。

假设您可以获得
Microsoft.ApplicationInsights.dll
。如果你不知道如何得到它,请让我知道

然后按照以下步骤操作:

1.将
Microsoft.ApplicationInsights.dll
放入一个zip文件(您可以右键单击.dll文件->发送到->压缩(压缩)文件夹),然后得到一个名为
Microsoft.ApplicationInsights.zip的zip文件

2.导航到azure门户->您的自动化帐户->模块->添加模块:在步骤1中上载zip文件。注意:这可能需要几分钟时间,当您看到状态可用于Microsoft.ApplicationInsights时,一切正常

3.导入模块后,Microsoft.ApplicationInsights.dll位于azure中的以下位置:
“C:\Modules\User\Microsoft.ApplicationInsights\Microsoft.ApplicationInsights.dll”

4.在runbook中编写代码,将遥测数据发送到application insights:

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.检查是否可以在应用程序洞察中看到数据:

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."

谢谢!它是否适合跟踪Runbook的工作流?如果我从“主”runbook调用的其中一个runbook抛出异常,它会显示在那里吗?我尝试了这个并。。。事实上,我无法用免费试用订阅来实现这一点。嗯,我仍然在寻找一种方法来记录从runbook到应用程序洞察的内容。这是一个非常接近我所寻找的,但我仍然希望能够运行它完全在云中,而不必下载任何东西到我的本地计算机,除了其他运行手册;是的,只要它们在同一个自动化帐户中。不幸的是,你有一个免费订阅。在这种情况下,除了我对你发现的东西的想法之外,我没有其他东西可以提供给你。我相信你可以使用一个存储帐户来存放你需要的文件。那么可能从那里使用吗?自动化可以访问Azure服务:如果没有导入app insights dll,您可以根据此编写powershell脚本以将数据发送到app insights,但这有点复杂。我不介意导入app insights dll,我确实尝试过,但从未成功导入。我尝试了此处、此处和此处列出的所有选项,但总是出现路径无效的错误。如果我在我的笔记本电脑上这样做,它可以正常工作,但当我在Azure runbook中这样做时,它会失败。如果您可以在您的自动化帐户中导入模块,您可以在下面看到我的答案。非常感谢!我会尽力让你知道事情的进展@SofiaBo,我只是想知道你验证过了吗?前几天我有另一个工作任务,但今天我要尝试实施它。我现在就给你!我终于可以试一下了!不幸的是,肯定出了问题。我还将上面列出的代码放在InlineScript{…}中,因为我遇到了错误。但当我转到应用程序洞察时,我看不到任何日志…哦,等等!它工作了,但是有很大的延迟…我的意思是,时间戳是准确的,但是我在另外4-5分钟内无法在日志中看到它