环境 redhat+syslog-ng+rsync+java/c我现在在做一个server。可能有上百台client通过syslog-ng直接写log到server上。#########################################################################
#我现在需要完成的目标一是:
#监控日志文件变化,一有新的error log就往一个web service 里push.
########################################################################
我现在的做法是通过"tail -f"监控一些log,然后把内容>>到某个文件里。然后用一个thread +randomaccessfile 死写逻辑分析log的增量。但是这样感觉不太妥当。想问问熟悉syslog-ng的朋友:有没有办法直接通过配置syslog-ng直接得到log增量,并去调用jar或者其他外部shell.如果有更好的思路也希望能够提供#########################################################################
#我现在需要完成的目标二是:
#写batch利用rsync让server和client同步。
########################################################################这个功能实现了 但是传输速度太慢了 只有0.Xkbps 根本不能接受。想问问如何处理?

解决方案 »

  1.   

    我也只是看过一点点syslog-ng方面的资料,能提供的帮助有限。我觉得一般系统不会提供增量的log记录,因为本身log就要求实时,增量算法会消耗部分时间,如果你觉得有必要,可以尝试一下svn(跟cvs差不多的东西),我只知道有java API可以用来实现增量存储,C就不熟悉了。还有,我觉得你的功能实现是有问题的,请仔细的检查你的代码及执行过程,否则用大拇指想想也不可能只有0.XK的速度。
    这个应该去Linux-Unix区提问去,这里的人只关心java多一点,大部分也仅懂一点java。