分布式系统监控(二)- 平台设计

背景

分布式系统使用的技术组件(nginx,reids,mq,db....)
基于高可用的考虑,还需要部署多个结点等。
需要对分布式系统的运行状况进行准时实的监控。

方案

主要参考主流的分布式系统监控平台的方案,再结合自己应用的考虑。决定采用以下方案:
flume+rocketmq+storm+redis+elasticsearch

flume

主要用于系统结点或应用结点的日志信息的收集。

rocketmq

主要用于归集flume收集的日志信息,放在各自的主题或队列中。

storm

从rocketmq中获取日志信息,对日志信息进行统计分析。

elasticsearch

从rocketmq中获取日志信息,对日志信息创建全文索引。
主要用于收集集群环境下应用系统中业务日志中的关键日志信息,方便系统维护人员通过关键字检索日志信息。

实施

后面将会介绍如何实现对系统资源和应用结点的监控。
大致思路如下:
通过系统的计划任务(crontab),执行shell脚本 ,脚本会生成系统资源或应用结点的监控数据信息日志文件。
通过flume监测日志文件的变化,当有新的日志信息产生,将信息推送到rocketmq对应的主题队列中。
通过storm运行rocketmq的消息消费端,监测主题最新的数据信息,并对数据流进行实时分析。
通过storm的时候分析,将分析结果存储到redis中,方便运维人员查询。

*备注:该应用场景暂时没有使用到elasticsearch

你可能感兴趣的:(分布式系统监控(二)- 平台设计)