当前位置:首页 > PHP教程 > PHP总结归纳

MongoDB与Log4J的日志集中化管理

客户跟我们合作快一年了,随着业务的增长,机器也在增长,刚刚开始的时候没有人去关注在多台机器上怎么查看日志,因为刚刚开始的时候才有2台应用服务器,现在光是glassfish(web app) 就有25台,还有jms的服务器/消息收发 12台,现在30几台机器光是查看日志就

客户跟我们合作快一年了,随着业务的增长,机器也在增长,刚刚开始的时候没有人去关注在多台机器上怎么查看日志,因为刚刚开始的时候才有2台应用服务器,现在光是glassfish(web app) 就有25台,还有jms的服务器/消息收发 12台,现在30几台机器光是查看日志就能忙死,就好比你电脑中打开了30个窗口,需要一个一个查看,你说能不杯具吗?

现在有 30几台机器,将来也许还会更多,但我们需要查看java程序在每台机器上运行的情况,如果还跟以前一样的方式似乎不太可行了,需要想想其他办法。
所以设想出3种方案:
1.通过log4j jdbc插件直接写入 数据库,
2.通过log4j jms 插件先向jms服务器发送消息,jms服务器接收到消息以后,再向数据库写入
3.通过改装后的 log4j mongodb插件 向 mongodb数据库写入

这样,我们只需要查看一台机器上的log数据就可以知道每台机器的运行状态,将来需要对日志进行分析的话还可以进行二次开发,并且操作方便,可扩展性强。

所以最后选择了第三种向mongodb写入,从以往大量的测试和经验中得到的实践告诉我们mongodb和mysql在执行大量的插入数据的过程中mongodb更有效。

目前采用了这样的技术架构,如图所示:

查看大图请点击这里

下载测试代码,请点击这里

相关文章:
mongodb 客户端工具,不断收集ing(图)
mongodb java orm 的设想
mongodb 入门 介绍
mongodb 集群
mongodb 主(master)/从(slave)数据同步

口水:
这个想法和实践要感谢 jozef sevcik 先生和他的开源项目给我带来的灵感,我上面提供的代码例子也发送给jozef sevcik 先生的邮箱了,并且很快得到了他的回复,他在来信中说道:

hello h.e,

i'm sorry for delayed response.
thank you for your contribution, i'm glad to see people using the project are contributing code back, great !

i'll review your changes during this weekend and let you know,

thanks,
jozef

这位国外友人说话非常客气,呵呵

–end–


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!