免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8185 | 回复: 10

讨论下为一个现有的系统增加日志的设计问题 [复制链接]

论坛徽章:
0
发表于 2011-01-02 20:33 |显示全部楼层
【背景】
一个所谓的协同办公系统。
目前的组成是 IBM Domino + IBM Websphere Portal群集 + DB2 ,分别安装在不同的虚拟机中。
对于Domino 不熟悉的朋友,可以把她当成是一个性能一般的HTTP服务器。

【目标】
为了满足用户在安全和审计方面的一些需要,准备增加多种日志记录。比如:
1,事件日志。如用户登录,打开页面(流程、文件等)
2,操作日志。如在某界面上传附件,在页面中修改了某字段的值。

【其他】
1,因为协同办公系统是现有的,因此希望对其的改动能尽量小。
2,希望在性能方面的影响尽可能小。

论坛徽章:
0
发表于 2011-01-02 20:48 |显示全部楼层
补充下:
在现有的系统中,有少量简单的日志功能。
但因为是靠在特定页面打开前的,和特定按钮点击后激活的代码中加调用的。

一方面,把这种现有的日志调用,加到系统的其他地方去,工作量很不小。
另一方面,现有的日志是在Domino中创建一个文档来记录日志内容,
因为当前Domino的负载感觉已经比较高了,部分操作的响应速度已经有点慢了,
再增加这个日志的话,估计性能方面很可能会出现问题。


我的一个粗略的想法是:
在系统公共调用的js中加点内容
在页面中添加调用js的语句。js中调用位于portal上的日志工程。

论坛徽章:
0
发表于 2011-01-02 21:21 |显示全部楼层
呵呵,我做了个简单的web系统,做日志记录时是这么做的:做一个通用的函数,比如给它传递类型和数据两个参数,然后在通用函数中记录日志。
比如php的代码,完全可以做一个通用的日志接口,调用时,就把类型和数据通过syslog扔出去。然后后台专门有个syslog服务器来处理日志,入库等。。。
呵呵,不通过修改现有系统而增加日志功能的做法应该没有吧?从原则上讲,要增加新功能,你总得在某些地方做点修改。
不知道还有没有更专业的做法?

论坛徽章:
0
发表于 2011-01-03 07:37 |显示全部楼层
谢谢参与讨论。


我也觉得完全不修改现有系统就想要增加日志功能是不太可能的。
我只是想怎么能减少修改。
或者在同样修改的基础上,有更好的扩展性和性能。

论坛徽章:
0
发表于 2011-01-03 07:52 |显示全部楼层
我是不是可以这样理解。你是通过调用syslog来达到相对比较高效的日志记录的。
然后通过“然后后台专门有个syslog服务器来处理日志,入库等”来确保这些附加的日志处理不会影响应用的性能表现。

在Domino的代理中,可以msgbox日志信息到domino的日志中。
但是从我的开发经验看,要是这样输出日志,对性能的影响还是比较明显的。
当然好处也有,差不多只要domino没宕机,这个日志就能记录下来。


我之前是在想,如果像下面简略描述的这样调用的话。不知道是不是会有架构、性能或者其他某个方面的风险。

1,在系统公共调用的js中加点内容,比如包括一个ajax_syslog()等等。

2,在系统的页面中添加调用ajax_syslog()的语句。比如ajax_syslog(1,“日志信息”)。

3,ajax_syslog()中通过类似 ActiveXObject("Msxml2.XMLHTTP") 调用位于portal上的日志工程。


我现在有点担心的几点是:
1,js调用的话,是否会大量增加服务器上的HTTP连接数。是否有新的瓶颈或者风险产生。
2,js调用的话,貌似会有一些记录不下来的风险吧?

论坛徽章:
0
发表于 2011-01-03 10:31 |显示全部楼层
呵呵,js在客户端执行,个人感觉不管是性能上还是安全上都值得商榷吧?web程序只是业余搞过一点点,对这个不太精通,发表点粗俗的看法。
    另外,关于syslog记录日志或者别的非阻塞的方式,应该不会对性能造成多大影响的。
   比如,你做了个日志接口,调用时就是把信息写到内存中,看看它实际的行为,并没有什么很复杂或者阻塞的操作,因此不会多么慢的。这样搞成异步的日志记录,既能提高性能,又能在一定程度上保证数据存储的可靠性。

论坛徽章:
0
发表于 2011-01-03 18:09 |显示全部楼层
如果直接调用log4j记录到数据库的话,是否就比syslog()输出,后台再入库的方式,性能低一些啊?

论坛徽章:
0
发表于 2011-01-03 21:46 |显示全部楼层
如果直接调用log4j记录到数据库的话,是否就比syslog()输出,后台再入库的方式,性能低一些啊?
kiss2003 发表于 2011-01-03 18:09



    两个操作异步入库,应该比直接入库性能好吧,最起码记录日志的这个操作过程很快,不影响界面

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2011-01-05 12:53 |显示全部楼层
可以通过自省来拿到一些信息,这样就可以简化日志调用时的语句。

论坛徽章:
0
发表于 2011-01-06 09:58 |显示全部楼层
可以通过自省来拿到一些信息,这样就可以简化日志调用时的语句。
flw 发表于 2011-01-05 12:53



    flw能否具体点说说?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP