在本地记录 Azure Service Fabric 服务
Logging Azure Service Fabric Services on Premise
我正在创建一个由多个微服务组成的应用程序,这些微服务 运行 在 Azure Service Fabric on Premises 上。我将在 Windows 服务器上托管它。
推荐的记录方式是什么?
我阅读了有关使用 Windows (ETW) 事件跟踪的内容。我应该用这个吗?我将如何集中收集日志记录数据?
或者我应该使用 ASP.NET MVC Core Logging 并将日志保存到中央文件共享中吗?
您可以使用 Azure Diagnostics EventFlow 来获取由您的 Service Dabric 服务生成的 ETW 事件。通过在新的 SF 服务中使用(并向其中添加自定义事件)为您准备的 Service/ActorEventSources,您可以在底层 Service Fabric 框架生成的 ETW 事件之上记录来自您的服务的 ETW 事件。
然后,您可以在 EventFlow 中设置输入(ETW 事件)和输出。您可以在这里选择适合您的输出。例如,如果您在 运行 本地并且有一个 Elastic 设置,您可以将您的 ETW 事件路由到它并使它们在那里可搜索。例如,如果您想登录到自己的数据库,您还可以使用自己的输出扩展 EventFlow。
老实说,我会删除所有默认的 SF 日志记录,只使用您会在普通应用程序中使用的标准内容。 ETW 引入了一种笨拙的非标准日志记录方法,使用起来很痛苦。如果您打算将来使用 .NET Core,则不能在 Windows 以外的平台上使用 ETW。查看具有适当接收器的 Log4Net、Serilog、NLog 等。您必须使用 SF 上下文丰富日志记录,以了解它的来源,因为同一服务有许多实例。我在本地和 Azure 中将 Serilog + Seq (http://getseq.net) 用于生产应用 运行,因为这是理解日志的最简单方法。
Seq 似乎有一个围绕它的成本结构,您可以建立一个由 Elastic 搜索提供的 ELK stack as per yoape's answer. However to enrich the answer a little more you can push ETW events to Logstash via Data Shippers,在我的案例中,为 Service Fabric Events 执行此操作非常简单。
我正在创建一个由多个微服务组成的应用程序,这些微服务 运行 在 Azure Service Fabric on Premises 上。我将在 Windows 服务器上托管它。
推荐的记录方式是什么? 我阅读了有关使用 Windows (ETW) 事件跟踪的内容。我应该用这个吗?我将如何集中收集日志记录数据?
或者我应该使用 ASP.NET MVC Core Logging 并将日志保存到中央文件共享中吗?
您可以使用 Azure Diagnostics EventFlow 来获取由您的 Service Dabric 服务生成的 ETW 事件。通过在新的 SF 服务中使用(并向其中添加自定义事件)为您准备的 Service/ActorEventSources,您可以在底层 Service Fabric 框架生成的 ETW 事件之上记录来自您的服务的 ETW 事件。
然后,您可以在 EventFlow 中设置输入(ETW 事件)和输出。您可以在这里选择适合您的输出。例如,如果您在 运行 本地并且有一个 Elastic 设置,您可以将您的 ETW 事件路由到它并使它们在那里可搜索。例如,如果您想登录到自己的数据库,您还可以使用自己的输出扩展 EventFlow。
老实说,我会删除所有默认的 SF 日志记录,只使用您会在普通应用程序中使用的标准内容。 ETW 引入了一种笨拙的非标准日志记录方法,使用起来很痛苦。如果您打算将来使用 .NET Core,则不能在 Windows 以外的平台上使用 ETW。查看具有适当接收器的 Log4Net、Serilog、NLog 等。您必须使用 SF 上下文丰富日志记录,以了解它的来源,因为同一服务有许多实例。我在本地和 Azure 中将 Serilog + Seq (http://getseq.net) 用于生产应用 运行,因为这是理解日志的最简单方法。
Seq 似乎有一个围绕它的成本结构,您可以建立一个由 Elastic 搜索提供的 ELK stack as per yoape's answer. However to enrich the answer a little more you can push ETW events to Logstash via Data Shippers,在我的案例中,为 Service Fabric Events 执行此操作非常简单。