分布式系统监控(二)- 平台设计
2018-08-22 本文已影响260人
do_young
背景
分布式系统使用的技术组件(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