日志不需要同步,分布式节点自己写自己的日志。有几种方案做解析:
1. 每天把当天的日志增量拿到分析服务器上,内网批量同步的效率很高,几百G都不在话下。要留档要解析都可以。
2. 如果要实时持久,就写日志的时候写进消息队列,由分析服务器异步从消息队列里读(kafka就是这么个东西)

解决方案 »

  1.   


    多谢你的回答。
    我们用的负载均衡器分发策略是使用cookie来保证一个用户自始至终访问同一台服务器的,因此我一开始有个想法是这样的,每台服务器自己记录自己的日志,每条日志都带着各个服务器的标识,在日志之前加上一个[服务器:ipxxxxx]之类的标识,并将这个错误提示展现到用户看到的错误界面上,如果用户在使用过程中报错了,只需把这个错误提示发给我,我就知道去哪个服务器上查看日志了。但是这样做的好处是我不用考虑日志同步的问题,但缺点就是,如果错误只出现了一次,而用户又没有截取到服务器的标识,那么我就得把每台服务器的日志挨个看一遍。不知道我的想法对不对,请指教啊,哈哈。以前只听说过有分布式,集群这个东西,真到有机会碰到了真是一头雾水啊,最细小的地方都得想半天。上司忙,没时间管我的事儿,让我自己搭建环境,还要分布式、集群的架构,我也就刚工作两年,以前从未接触过这些,说实话,真的有点力不从心啊,不过不管怎样,对我都是一个大的考验和提升,继续查资料,继续工作。
      

  2.   


    多谢你的回答。
    我们用的负载均衡器分发策略是使用cookie来保证一个用户自始至终访问同一台服务器的,因此我一开始有个想法是这样的,每台服务器自己记录自己的日志,每条日志都带着各个服务器的标识,在日志之前加上一个[服务器:ipxxxxx]之类的标识,并将这个错误提示展现到用户看到的错误界面上,如果用户在使用过程中报错了,只需把这个错误提示发给我,我就知道去哪个服务器上查看日志了。但是这样做的好处是我不用考虑日志同步的问题,但缺点就是,如果错误只出现了一次,而用户又没有截取到服务器的标识,那么我就得把每台服务器的日志挨个看一遍。不知道我的想法对不对,请指教啊,哈哈。以前只听说过有分布式,集群这个东西,真到有机会碰到了真是一头雾水啊,最细小的地方都得想半天。上司忙,没时间管我的事儿,让我自己搭建环境,还要分布式、集群的架构,我也就刚工作两年,以前从未接触过这些,说实话,真的有点力不从心啊,不过不管怎样,对我都是一个大的考验和提升,继续查资料,继续工作。
    一般本机的日志用来排错,我上面说的是日志的归档管理和日志数据的大规模分析用的。
    你如果只是要debug排错的话,就别搞这么复杂的东西了,老老实实去本机上找吧
      

  3.   

    目前没有在项目中针对分布式系统的统一日志控制。
    如果仅仅是错误日志的监控,可以在log4j中配置有error则发送邮件。
      

  4.   

    系统要求是这样的,记录日志主要有两个方面,一个是记录用户的操作行为,这个要记录的数据库中,如果记录到日志文件上,我感觉不便于统计分析。另外一个主要是记录错误日志,错误日志发邮件是个不错的方法,谢谢你的回答。
    另外我看很多人都推崇logback,这个是log4j的作者搞的另外一个日志框架,据说性能各方面比log4j要好很多,具体没用过,回去研究一下。
      

  5.   

    系统要求是这样的,记录日志主要有两个方面,一个是记录用户的操作行为,这个要记录的数据库中,如果记录到日志文件上,我感觉不便于统计分析。另外一个主要是记录错误日志,错误日志发邮件是个不错的方法,谢谢你的回答。
    另外我看很多人都推崇logback,这个是log4j的作者搞的另外一个日志框架,据说性能各方面比log4j要好很多,具体没用过,回去研究一下。
    记录用户的行为可以加切面,监测操作。