我们已经开始使用第三方平台(GigaSpaces)来帮助我们进行分布式计算。我们现在试图解决的主要问题之一是如何在这个分布式环境中管理我们的日志文件。我们目前有以下设置。
我们的平台分布在 8 台机器上。在每台机器上,我们有 12-15 个进程使用 java.util.logging 记录到单独的日志文件中。在这个平台之上,我们有自己的应用程序,它们使用 log4j 并记录到单独的文件。我们还将标准输出重定向到一个单独的文件以捕获线程转储和类似情况。
这会产生大约 200 个不同的日志文件。
到目前为止,我们还没有工具可以帮助管理这些文件。在以下情况下,这会让我们非常头疼。
当我们事先不知道问题发生在哪个进程时进行故障排除。在这种情况下,我们当前使用 ssh 登录到每台机器并开始使用
grep
.尝试通过定期检查日志是否有任何异常来积极主动。
less
在这种情况下,我们目前还登录到所有机器并使用和查看不同的日志tail
。设置警报。我们正在寻求对超过阈值的事件设置警报。这看起来很痛苦,需要检查 200 个日志文件。
今天,我们每秒只有大约 5 个日志事件,但随着我们将越来越多的代码迁移到新平台,这将会增加。
我想向社区提出以下问题。
- 您如何处理分布在通过不同框架记录的多台机器上的许多日志文件的类似情况?
- 你为什么选择那个特定的解决方案?
- 你的解决方案是如何奏效的?你觉得什么是好的,你觉得什么是坏的?
非常感谢。
更新
我们最终评估了 Splunk 的试用版。我们对它的工作方式非常满意,并决定购买它。易于设置,快速搜索和大量的技术倾向的功能。我可以推荐任何有类似情况的人来检查一下。