我们已经开始使用第三方平台(GigaSpaces)来帮助我们进行分布式计算。我们现在试图解决的主要问题之一是如何在这个分布式环境中管理日志文件。我们目前有以下设置。
我们的平台分布在8台机器上。在每台机器上,我们都有12-15个进程,它们使用java.util.logging记录日志文件。在这个平台之上,我们有自己的应用程序,使用log4j和日志来分离文件。我们还将stdout重定向到一个单独的文件,以捕获线程转储和类似文件。
这将导致大约200个不同的日志文件。
到目前为止,我们还没有工具来帮助管理这些文件。在以下情况下,这会引起我们严重的头痛。
grep。less和tail查看不同的日志。今天,我们每秒只有大约5个日志事件,但是随着我们将越来越多的代码迁移到新的平台上,这种情况将会增加。
我想问社会人士以下几个问题。
非常感谢。
更新
我们最终评估了Splunk的试用版。我们对它的工作方式非常满意,并决定购买它。易于设置,快速搜索和大量的功能,技术上的倾斜。我可以推荐在类似情况下的任何人来检查它。
发布于 2010-10-25 13:40:31
我建议将所有java日志传输到Java的简单日志外观 ( SLF4J ),然后将所有日志从SLF4J重定向到LogBack。SLF4J特别支持处理所有流行的遗留API (log4j、commons、java.util.logging等),请参阅这里。
一旦您在LogBack中拥有了您的日志,您就可以使用它的多个附加程序之一在多台机器上对聚合日志进行添加,有关详细信息,请参阅手动关于追加者的章节。Socket、JMS和SMTP似乎是最明显的候选者。
LogBack还内置了对日志文件和过滤事件()发送到特定附录中特殊情况的监视支持。这样,每次日志中出现错误级别事件时,您都可以设置SMTP附录发送电子邮件。
最后,为了简化troubleshooting,,一定要在所有传入的“请求”中添加某种类型的requestID,有关详细信息,请参阅我对这个问题的答复。
编辑:您还可以实现自己的自定义LogBack ,并将所有日志重定向到文士。
发布于 2010-10-25 13:51:07
一个有趣的选择是在这些节点上运行Hadoop群,并编写一个定制的地图缩减作业来搜索和聚合特定于您的应用程序的结果。
发布于 2010-10-25 13:13:32
我建议看一看日志聚合工具,比如扣篮或文士。
(而且,我认为这更像是一个ServerFault问题,因为它与应用程序和数据的管理有关,而不是关于创建应用程序。)
https://stackoverflow.com/questions/4014794
复制相似问题