分布式系统中如何记录日志的?

王二北 2014-07-28 06:31:05
各位好,俺以前从没搞过分布式的系统,但是俺现在遇到一个涉及到分布式系统,web应用服务器部署在三台不同的物理主机上。在一般的单服务器项目中,我们用个log4j日志框架就完成日志的记录了。但是在分布式应用中,还要考虑各个系统之间日志同步的问题,有没有什么日志框架可以解决整个问题?
网上搜了一圈,发现一个叫“分布式日志收集系统”的名词,按着这个名词搜到了scribe、chukwa 、kafka 等几个技术,资料不太多,不太理解,不知道是不是我需要的东西。
请做过这个的朋友指点一下,感激不尽。
...全文
912 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_35178514 2016-05-31
  • 打赏
  • 举报
回复
你好,最近我也在弄分布式打印日记。写已经弄出来了,但是读的时候一直读取不出来,我使用的是logback ,博主,我的QQ是597095989,加上一起探讨一下吧
liangtu 2014-07-30
  • 打赏
  • 举报
回复
引用 7 楼 yonghudengluzhonging 的回复:
[quote=引用 6 楼 liangtu33 的回复:] 目前没有在项目中针对分布式系统的统一日志控制。 如果仅仅是错误日志的监控,可以在log4j中配置有error则发送邮件。
系统要求是这样的,记录日志主要有两个方面,一个是记录用户的操作行为,这个要记录的数据库中,如果记录到日志文件上,我感觉不便于统计分析。另外一个主要是记录错误日志,错误日志发邮件是个不错的方法,谢谢你的回答。 另外我看很多人都推崇logback,这个是log4j的作者搞的另外一个日志框架,据说性能各方面比log4j要好很多,具体没用过,回去研究一下。[/quote] 记录用户的行为可以加切面,监测操作。
致知Fighting 2014-07-29
  • 打赏
  • 举报
回复
引用 3 楼 yonghudengluzhonging 的回复:
[quote=引用 2 楼 ygycomon 的回复:] 日志不需要同步,分布式节点自己写自己的日志。 有几种方案做解析: 1. 每天把当天的日志增量拿到分析服务器上,内网批量同步的效率很高,几百G都不在话下。要留档要解析都可以。 2. 如果要实时持久,就写日志的时候写进消息队列,由分析服务器异步从消息队列里读(kafka就是这么个东西)
多谢你的回答。 我们用的负载均衡器分发策略是使用cookie来保证一个用户自始至终访问同一台服务器的,因此我一开始有个想法是这样的,每台服务器自己记录自己的日志,每条日志都带着各个服务器的标识,在日志之前加上一个[服务器:ipxxxxx]之类的标识,并将这个错误提示展现到用户看到的错误界面上,如果用户在使用过程中报错了,只需把这个错误提示发给我,我就知道去哪个服务器上查看日志了。但是这样做的好处是我不用考虑日志同步的问题,但缺点就是,如果错误只出现了一次,而用户又没有截取到服务器的标识,那么我就得把每台服务器的日志挨个看一遍。不知道我的想法对不对,请指教啊,哈哈。 以前只听说过有分布式,集群这个东西,真到有机会碰到了真是一头雾水啊,最细小的地方都得想半天。上司忙,没时间管我的事儿,让我自己搭建环境,还要分布式、集群的架构,我也就刚工作两年,以前从未接触过这些,说实话,真的有点力不从心啊,不过不管怎样,对我都是一个大的考验和提升,继续查资料,继续工作。 [/quote] 一般本机的日志用来排错,我上面说的是日志的归档管理和日志数据的大规模分析用的。 你如果只是要debug排错的话,就别搞这么复杂的东西了,老老实实去本机上找吧
王二北 2014-07-29
  • 打赏
  • 举报
回复
引用 2 楼 ygycomon 的回复:
日志不需要同步,分布式节点自己写自己的日志。 有几种方案做解析: 1. 每天把当天的日志增量拿到分析服务器上,内网批量同步的效率很高,几百G都不在话下。要留档要解析都可以。 2. 如果要实时持久,就写日志的时候写进消息队列,由分析服务器异步从消息队列里读(kafka就是这么个东西)
多谢你的回答。 我们用的负载均衡器分发策略是使用cookie来保证一个用户自始至终访问同一台服务器的,因此我一开始有个想法是这样的,每台服务器自己记录自己的日志,每条日志都带着各个服务器的标识,在日志之前加上一个[服务器:ipxxxxx]之类的标识,并将这个错误提示展现到用户看到的错误界面上,如果用户在使用过程中报错了,只需把这个错误提示发给我,我就知道去哪个服务器上查看日志了。但是这样做的好处是我不用考虑日志同步的问题,但缺点就是,如果错误只出现了一次,而用户又没有截取到服务器的标识,那么我就得把每台服务器的日志挨个看一遍。不知道我的想法对不对,请指教啊,哈哈。 以前只听说过有分布式,集群这个东西,真到有机会碰到了真是一头雾水啊,最细小的地方都得想半天。上司忙,没时间管我的事儿,让我自己搭建环境,还要分布式、集群的架构,我也就刚工作两年,以前从未接触过这些,说实话,真的有点力不从心啊,不过不管怎样,对我都是一个大的考验和提升,继续查资料,继续工作。
王二北 2014-07-29
  • 打赏
  • 举报
回复
引用 6 楼 liangtu33 的回复:
目前没有在项目中针对分布式系统的统一日志控制。 如果仅仅是错误日志的监控,可以在log4j中配置有error则发送邮件。
系统要求是这样的,记录日志主要有两个方面,一个是记录用户的操作行为,这个要记录的数据库中,如果记录到日志文件上,我感觉不便于统计分析。另外一个主要是记录错误日志,错误日志发邮件是个不错的方法,谢谢你的回答。 另外我看很多人都推崇logback,这个是log4j的作者搞的另外一个日志框架,据说性能各方面比log4j要好很多,具体没用过,回去研究一下。
liangtu 2014-07-29
  • 打赏
  • 举报
回复
目前没有在项目中针对分布式系统的统一日志控制。 如果仅仅是错误日志的监控,可以在log4j中配置有error则发送邮件。
新铺村长 2014-07-29
  • 打赏
  • 举报
回复
定一个 如果有有上百台机器的集群呢?也是一个一个找?
致知Fighting 2014-07-28
  • 打赏
  • 举报
回复
日志不需要同步,分布式节点自己写自己的日志。 有几种方案做解析: 1. 每天把当天的日志增量拿到分析服务器上,内网批量同步的效率很高,几百G都不在话下。要留档要解析都可以。 2. 如果要实时持久,就写日志的时候写进消息队列,由分析服务器异步从消息队列里读(kafka就是这么个东西)
王二北 2014-07-28
  • 打赏
  • 举报
回复
下班已经到家,自顶一个

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧