欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MongoDB与Log4J的日志集中化管理

程序员文章站 2024-02-20 11:59:46
...

客户跟我们合作快一年了,随着业务的增长,机器也在增长,刚刚开始的时候没有人去关注在多台机器上怎么查看日志,因为刚刚开始的时候才有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与Log4J的日志集中化管理
查看大图请点击这里

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

相关文章:
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