是否可以将 Windows 事件记录到应用程序洞察中?

Posted

技术标签:

【中文标题】是否可以将 Windows 事件记录到应用程序洞察中?【英文标题】:Is it possible to log windows events to application insights? 【发布时间】:2018-08-30 09:05:32 【问题描述】:

我们正在我们的一些网站上运行 Application Insights,我们希望从 Windows 事件日志中聚合日志。我们在 windows server 2016 上运行。

我知道像弹性这样的其他日志传送器可以从 Windows 事件日志中发送日志。 Application Insights 有可能吗?

编辑 22.10.2018

在@cijothomas 发表评论后,我尝试添加 Microsoft 的 EtwCollector nuget 包,并在配置中添加了一些提供程序。

<Add ProviderName="Microsoft-Windows-Crashdump" Level="Warning"/>
<Add ProviderName=".NET Common Language Runtime" Level="Warning" />
<Add ProviderName="ASP.NET Events" Level="Warning" />
<Add ProviderName="Microsoft-Windows-IIS-IISReset" Level="Warning" />
<Add ProviderName="Microsoft-Windows-HttpLog" Level="Warning" />

在 Application Insights 中,我现在可以从应用程序中获取跟踪信息。

AI: Failed to enable provider for the EtwTelemetryModule. Access Denied.

例如对于 Microsoft-Windows-IIS-IISReset 提供程序。

AI: Failed to enable provider Microsoft-Windows-IIS-IISReset for the EtwTelemetryModule.

我已将应用程序用户进程添加到 Windows 中的“性能日志用户”组。我需要添加任何其他设置以允许从该提供商发送日志吗?

【问题讨论】:

我建议仔细检查权限是否正确应用。 【参考方案1】:

您是说 ETW 事件吗?如果是,则 Application Insights 有一个适配器以将 ETW 事件作为 Application Insights Traces 发送。 https://docs.microsoft.com/en-us/azure/application-insights/app-insights-asp-net-trace-logs#using-etw-events

或者,您始终可以使用手动 TrackTrace() 方法将任何跟踪发送到 Application Insights。 https://docs.microsoft.com/en-us/azure/application-insights/app-insights-api-custom-events-metrics#tracktrace

【讨论】:

另一种发送 Windows 事件日志的解决方案是使用 Azure 中的 Log Analytics。 docs.microsoft.com/en-us/azure/log-analytics/…

以上是关于是否可以将 Windows 事件记录到应用程序洞察中?的主要内容,如果未能解决你的问题,请参考以下文章

将应用洞察跟踪日志记录添加到 .net 核心控制台应用程序

安装oracle11的时候 提示ORA-28056 未能将审计记录写入windows事件日志,这是怎么回事啊

如何导出 Windows 计划任务历史记录

C# Windows 服务无法将关闭事件记录到远程 API

远程 Windows 事件记录 - 授权

如何通过代码从 Azure 应用程序洞察中获取事务日志?