我们开始使用第三方平台(GigaSpaces)来帮助我们进行分布式计算。我们现在试图解决的一个主要问题是如何在这个分布式环境中管理我们的日志文件。我们目前的设置如下:
我们的平台分布在8台机器上。在每台机器上,我们有12-15个进程使用java.util.logging记录到单独的日志文件中。在此平台之上,我们有自己的应用程序,使用log4j并记录到单独的文件中。我们还将stdout重定向到单独的文件中以捕获线程转储和类似内容。
这导致大约有200个不同的日志文件。
目前我们没有任何工具来协助管理这些文件。在以下情况下,这给我们带来了严重的头疼:
1. 当我们事先不知道出现问题的进程时进行故障排除。在这种情况下,我们当前使用ssh登录每台机器并开始使用grep。
2. 试图通过定期检查日志来预防性地查找异常情况。在这种情况下,我们也会当前登录所有机器,并使用less和tail查看不同的日志。
3. 设置警报。我们正在寻求在超过阈值的事件上设置警报。这看起来很麻烦,因为要检查200个日志文件。
今天我们每秒只有大约5个日志事件,但随着我们将越来越多的代码迁移到新平台上,这个数字将增加。
我想问问社区以下问题:
1. 您如何处理分布在几台机器上、通过不同框架记录的许多日志文件的类似情况?
2. 为什么选择了那种特定的解决方案?
3. 您的解决方案如何运作?您发现了什么好处和坏处?
非常感谢。
更新
我们最终评估了Splunk的试用版。我们对它的工作方式非常满意,并决定购买它。易于设置,快速搜索,以及针对技术倾向的许多功能。我可以建议任何处于类似情况的人去尝试一下。
我们的平台分布在8台机器上。在每台机器上,我们有12-15个进程使用java.util.logging记录到单独的日志文件中。在此平台之上,我们有自己的应用程序,使用log4j并记录到单独的文件中。我们还将stdout重定向到单独的文件中以捕获线程转储和类似内容。
这导致大约有200个不同的日志文件。
目前我们没有任何工具来协助管理这些文件。在以下情况下,这给我们带来了严重的头疼:
1. 当我们事先不知道出现问题的进程时进行故障排除。在这种情况下,我们当前使用ssh登录每台机器并开始使用grep。
2. 试图通过定期检查日志来预防性地查找异常情况。在这种情况下,我们也会当前登录所有机器,并使用less和tail查看不同的日志。
3. 设置警报。我们正在寻求在超过阈值的事件上设置警报。这看起来很麻烦,因为要检查200个日志文件。
今天我们每秒只有大约5个日志事件,但随着我们将越来越多的代码迁移到新平台上,这个数字将增加。
我想问问社区以下问题:
1. 您如何处理分布在几台机器上、通过不同框架记录的许多日志文件的类似情况?
2. 为什么选择了那种特定的解决方案?
3. 您的解决方案如何运作?您发现了什么好处和坏处?
非常感谢。
更新
我们最终评估了Splunk的试用版。我们对它的工作方式非常满意,并决定购买它。易于设置,快速搜索,以及针对技术倾向的许多功能。我可以建议任何处于类似情况的人去尝试一下。