监控系统Metis方案设计

监控系统Metis方案设计

 

一、概述
对于一个业务系统而言,不同的角色关注的点会有一定差异。领导或负责人系统获取系统的SLA,系统间的相互作用,展示资源消耗情况;运维人员需要获取基础设施和服务的实时状态信息,各种软硬件错误,性能变化及性能瓶颈;开发人员需要知道系统主要性能瓶颈,经常出现的错误,便于着力解决重要问题。要满足这些需求,一套可扩展,易使用的监控系统便非常必要了。它可以对系统监控指标、应用监控指标进行获取、存储、计算,同时也要能根据预先设置的规则进行报警。基于此,并结合**大数据平台的监控需求,拟设计一套监控系统Metis

 

主要功能:

 

n 可以获取服务器硬件监控指标(disk, net, mem, cpu etc.)

n 可以获取业务自定义监控指标(click, upload, dispatch etc.)

n 可以获取应用JVM监控指标(ygc, fullgc, perm etc.)

n 可以获取主机是否存活

n 可以获取端口是否存活

n 可以获取URL是否存活

n 可人为干预停止、启动相关应用监控指标获取

n 基于grafana完成灵活的指标图形展现

n 可配置的监控报警功能

n 整合Nagios、短信平台、EDM平台完成报警功能

 


整体架构设计

 监控系统Metis方案设计_第1张图片

 

 

Metis Agent:

负责接收web端操作命令,获取业务服务器上日志中的监控数据,发送到Kafla集群等;

Kafka:

负责存储从各个业务机器中采集到的监控数据,缓冲供Metis Collector消费等;

Metis Collector:

负责消费Kafka集群中缓冲的监控数据,并经过简单处理后发送给后端TSD等;

Metis Nginx:

负责对Metis Collector的存储put请求,根据负载情况选择相应TSD等;

   OpenTSDB TSD:

负责将接收到的监控数据持久化到HBase,并响应客户端的查询请求等;

HBase Cluster:

负责作为OpenTSDB的数据存储层等;

Metis Grafana:

负责根据用户的监控展现需求,通过OpenTSDBHBase获取相关监控数据;


二、详细设计

 

1.监控日志

通过提供的SDK,可以打印出标准的json格式监控日志。日志路径需要预先配置好Log4j的配置文件中定义名为“METIS-APPENDER”的appender和“METIS-LOGGER”的logger

目前暂时支持的监控类型有:

A: gauge-代表的某个被监控的数据某个时间点的状态值,比如内存耗用量、磁盘空闲量等。

B:counter-代表的在指定时间粒度范围上的次数累计值

C:timer-代表的是在某个事件发生的耗时情况

 

 

2.数据入库

3.指令下发 

通过界面操作,控制对某台机器上某个监控日志的采集与否,同时可调整采集数据的上报间隔 

4.权限控制

整合公司自己的auth系统作为权限部分,这边需要记录

5.监控报警

额外开发定制化worker,当统计到预先配置的阀值时,调用短信或者邮件发送报警信息。

6.图表展现

使用grafana作为图表展现绘制框架。

你可能感兴趣的:(kafka)