实时日志监控系统

2020-02-22 12:57

实时日志监控系统

目标:

实现对系统日志的实时监控,快速获取系统运行时异常日志,并以邮件的方式通知运维人员

关键技术:

flume、rocketmq、jstorm、hbase

整体架构图:

WebServerWebServerWebServerSourceSinkChannel flume-agentEmailServerEmailBoltIsErrorBoltHbaseBoltJstormSpoutLogTopicTag1Tag2Tag3 RocketMQTag1ErrorTableTag2ErrorTableTag3ErrorTableHbase

系统描述

系统采用三层:数据采集(flume+rocketmq)、数据计算层(jstorm)、数据存储层 flume对应用系统实时产生的日志逐条进行收集,发送到rocketmq消息队列

jstorm从rocketmq拉取日志,逐条对拉取到的日志进行分析,如果日志符合预警条件则给相关人员发送邮件,并且将日志信息写入hbase,方便查看。

hbase存储所有的满足预警条件的日志信息,为运维人员提供查询基础。 源码下载地址:http://pan.http://www.wodefanwen.com//s/1bnxt0dx

架构设计考虑

可用性

1:agent挂掉 1):机器挂掉导致agent挂点,这个没影响,机器挂了不会产生日志 2):agent进程挂点,按下面两种方式来提高系统的可用性。首先,所有的Agent 在supervise的方式下启动,如果进程死掉会被系统立即重启,以提供服务。其次, 对所有的Agent进行存活监控,发现Agent死掉立即报警

2:rocketmq、jstorm、hbase都是分布式的,具有高可靠性,可以不用考虑

可靠性

Flume 的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在

送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。Flume 使用事务性的方式保证传送Event整个过程的可靠性。Sink 必须在 Event 被存入 Channel 后,或者,已经被传达到下一站agent里,又或者,已经被存入外部数据目的地之后,才能把 Event 从 Channel 中 remove 掉。这样数据流里的 event 无论是在一个 agent 里还是多个 agent 之间流转,都能保证可靠,因为以上的事务保证了 event 会被成功存储起来。而 Channel 的多种实现在可恢复性上有不同的保证。也保证了 event 不同程度的可靠性。比如 Flume 支持在本地保存一份文件 channel 作为备份,而memory channel 将 event 存在内存 queue 里,速度快,但丢失的话无法恢复。

扩展性

1:agent,对于Agent这一层来说,每个机器部署一个Agent,可以水平扩展,不受限

制。一个方面,Agent收集日志的能力受限于机器的性能,正常情况下一个Agent可以为单机提供足够服务

2:rocketmq、jstorm、hbase具有高扩展性,可以不用考虑


实时日志监控系统.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工作心得:人民监督员制度与人民陪审员制度之比较及完善

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: