处理跨多个 Windows 服务器的日志文件

处理跨多个 Windows 服务器的日志文件

我有一个应用程序,它随时可能在 4 个服务器中的 1 个上运行Windows 服务器。因此,如果我要查找特定日志项,它可能位于 4 个日志文件中的任何一个中。我希望找到一个解决方案,只需在一个地方查找即可找到 4 个服务器中每个服务器的所有组合日志。

我希望在不使用商业产品的情况下实现这一点,并且希望这样做不会对性能产生重大影响。

我正在使用 log4net 将日志记录到服务器上的指定文件。一种解决方案是将 log4net 日志路由到 MS SQL 数据库,但我担心这里的性能。有没有办法独立于 log4net 代码合并各个文件?

我最初在 stackoverflow 上发布了这个问题,其中一个建议是 "Configure log4net to log to the eventlog, and configure log forwarding of the relevant events to a central log server on all 4 application servers."

我该如何实现这一点或者您建议什么其他解决方案?

答案1

考虑保留日志解决方案,例如 log4net。它增加了灵活性,您无需开发该实用程序代码。

MS SQL 可以作为中央解决方案。除非您向其投入大量日志条目,否则不要太担心性能。

Graylog 是另一种进行集中日志记录的方法,免费且开源。收集器可以获取 Windows 事件日志或文件,也可以获取系统日志输入。基于 Elasticsearch,是一种横向扩展搜索平台。

相关内容