集中式Java日志记录

Seb*_*ern 29 java logging log4j distributed-computing logback

我正在寻找一种集中分布式软件(用Java编写)的日志问题的方法,这很容易,因为有问题的系统只有一台服务器.但请记住,特定服务器的更多实例很可能在未来运行(并且需要更多应用程序),必须有类似Logging-Server的东西,处理传入的日志,并使其可供支持团队访问.

现在的情况是,几个java应用程序使用log4j将其数据写入本地文件,因此如果客户端遇到问题,支持团队必须要求提供日志,这并不总是很容易并且需要花费大量时间.在服务器故障的情况下,诊断问题并不大,因为无论如何都存在远程访问,但即使通过Logging-Server监控所有内容仍然很有意义.

当我查看有关"集中式日志记录"的问题时,我发现了另一个问题(实际上是唯一一个带有(在这种情况下)可用答案的问题.问题是,所有应用程序都在封闭环境中运行(在一个网络内)和安全指南不允许有关内部软件的任何内容走出环境网络.

我还发现了一篇关于如何实现这样一个Logging-Server 的精彩文章.由于这篇文章写于2001年,我原本以为有人可能已经解决了这个特殊问题.但我的搜索结果没有任何结果.

我的问题:是否有一个日志框架可以通过支持团队访问的集中式服务器来处理网络登录?

规格:

  • 可用性
  • 服务器必须由我们运行.
  • Java 1.5兼容性
  • 与异构网络的兼容性.
  • 最佳案例:协议使用HTTP发送日志(以避免防火墙问题)
  • 最佳案例:使用log4j或LogBack或基本上任何实现slf4j的东西

没必要,但很高兴

  • 身份验证和安全性当然是一个问题,但可以至少暂时退出(如果它是开放式软件,我们会将其扩展到我们的需求OT:我们总是回馈项目).
  • 数据挖掘和分析对于使软件更好有所帮助,但也可以是外部应用程序.

我最糟糕的情况是他们不是那样的软件.对于这种情况,我们可能会自己实现.但是,如果有这样的客户端 - 服务器应用程序,我将非常感谢不需要做这个特别有问题的工作.

提前致谢

更新:解决方案必须在几个支持java的平台上运行.(主要是Windows,Linux,一些HP Unix)

更新:经过更多的研究,我们实际上找到了一个我们能够获得的解决方案.clusterlog.net(至少自2015年中起离线)为分布式软件提供日志服务,并兼容log4j和logback(与slf4j兼容).它允许我们通过应用程序分析每个用户的方式.因此,很容易重现报告的错误(甚至是未报告的错误).它还通过电子邮件通知我们重要事件,并且报告系统将相同来源的日志汇总为易于访问的格式.他们在几天前就在这里部署了(它完美无瑕)并且运行良好.

更新(2016):这个问题仍然有很多流量,但我提到的网站不再存在.

Arc*_*ien 6

您可以将Log4j与SocketAppender一起使用,因此您必须将服务器部分编写为LogEvent处理.见http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SocketAppender.html


hB0*_*hB0 5

NXLOGLogStashGraylogs2

要么

LogStash + ElasticSearch(+(可选)Kibana)

例:

1)http://logstash.net/docs/1.3.3/tutorials/getting-started-simple

2)http://logstash.net/docs/1.3.3/tutorials/getting-started-centralized