一直在搜索这个问题的解决方案:我需要从多台机器上运行的应用程序中的日志条目发送到远程服务器上并进行聚合。要求:
我正在考虑使用log4j和JMSAppender。假设这是一个合适的解决方案,是否有可用的例子?在这种情况下,在集中式服务器上运行什么进程来接收日志条目?
谢谢。
发布于 2012-06-15 20:05:00
我想到的一个简单的设置就是使用Apache ActiveMQ
它是一个开源消息代理(与JMS兼容),能够在多台物理机器之间集群队列,而且ActiveMQ安装相当轻量级。您可以简单地在每个应用程序机器上安装一个ActiveMQ。然后,在日志服务器(图片中的物理服务器C)上,将有另一个ActiveMQ。您的应用程序将使用JMS (在这里读更多),您可以使用包含的阿帕奇骆驼从队列中读取数据,并在不需要为该任务编写应用程序的情况下写入文件或数据库。
它可以简单到在activemq /conf安装中向/conf添加如下内容,并在activemq.xml配置中导入camel.xml。
<route>
<from uri="activemq:queue:LogQueue"/>
<to uri="file:target/folder/?fileName=logfile.log&fileExist=Append"/>
</route>

您可以使用大量的其他框架、JMS服务器和技术,但我认为这是一种成本非常低、稳定性很高的非常容易实现的方法。
https://stackoverflow.com/questions/11004898
复制相似问题