加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

基于时序数据库做监控,这里有超风行的开源方案

发布时间:2019-09-18 03:29:23 所属栏目:编程 来源:dbaplus社群
导读:在微处事架构下,我们对处事举办了拆分,以是用户的每次哀求不再是由某一个处事独立完成了,而是酿成了多个处事一路共同完成。这种环境下,一旦哀求呈现非常,我们必需得知道是在哪个处事环节出了妨碍,就必要对每一个处事,以及各个指标都举办全面的监控
副问题[/!--empirenews.page--]

在微处事架构下,我们对处事举办了拆分,以是用户的每次哀求不再是由某一个处事独立完成了,而是酿成了多个处事一路共同完成。这种环境下,一旦哀求呈现非常,我们必需得知道是在哪个处事环节出了妨碍,就必要对每一个处事,以及各个指标都举办全面的监控。

基于时序数据库做监控,这里有超风行的开源方案

一、什么是「 监控体系 」?

在微处事架构中,监控体系凭证道理和浸染大抵可以分为三类(并非严酷分类,仅从一般行使角度来看):

  • 日记类(Log);
  • 挪用链类(Tracing);
  • 怀抱类(Metrics)。

下面来别离对这三种常见的监控模式举办声名。

1、日记类

日记类较量常见,我们的框架代码、体系情形,以及营业逻辑中一样平常城市产出一些日记,这些日记我们凡是把它记录后同一网络起来,利便在必要的时辰举办查询。

日记类记录的信息一样平常是一些变乱、非布局化的一些文本内容。日记的输出和处理赏罚的办理方案较量多,各人熟知的有ELK Stack方案(Elasticseach + Logstash + Kibana),如图:

基于时序数据库做监控,这里有超风行的开源方案

行使Beats(可选)在每台处事器上安装后,作为日记客户端网络器,然后通过Logstash举办同一的日记网络、理会、过滤等处理赏罚,再将数据发送给Elasticsearch中举办存储说明,最后行使Kibana来举办数据的展示。

虽然还可以进级方案为:

基于时序数据库做监控,这里有超风行的开源方案

这些方案都较量成熟,搭建起来也较量简朴,除了用作监控体系以外,还可以作为日记查询体系行使,很是合用于做说明、以及题目调试行使。

2、挪用链类(Tracing)

挪用链类监控首要是指记录一个哀求的所有流程。一个哀求从开始进入,在微处事中挪用差异的处事节点后,再返回给客户端,在这个进程中通过挪用链参数来追寻全链路举动。通过这个方法可以很利便的知道哀求在哪个环节出了妨碍,体系的瓶颈在哪儿。

这一类的监控一样平常回收CAT器材 来完成,一样平常在大中型项目较多用到,由于搭建起来有必然的本钱。后头会有单独文章来讲授这个挪用链监控体系。

这也是简朴的容错方法。就是指在处事之间挪用时,配置一个主动超时时刻,高出了这个时刻阈值后,假如“被依靠的处事”还没有返回数据的话,“挪用者”就主动放弃,防备因“被依靠的处事”的妨碍所影响。

3、怀抱类(Metrics)

怀抱类首要回收时序数据库的办理方案。它是以变乱产生时刻以及当前数值的角度来记录的监控信息,是可以聚合运算的,用于查察一些指标数据和指标趋势。以是这类监控首要不是用来盘查题的,首要是用来看趋势的。

Metrics一样平常有5种根基的怀抱范例:

  • Gauges(怀抱);
  • Counters(计数器);
  • Histograms(直方图);
  • Meters(TPS计较器);
  • Timers(计时器)。

基于时刻序列数据库的监控体系长短常得当做监控诉警行使的,以是此刻也较量风行这个方案,假如我们要搭建一套新的监控体系,我也提议参考这类方案举办。

因此本文接下来也会重点以时刻序列数据库的监控体系为主角来描写。

二、「 监控体系 」存眷的工具和指标都是什么?

一样平常我们做「监控体系」都是必要做分层式监控的,也就是说将我们要监控的工具举办分层,一样平常首要分为:

  • 体系层:体系层首要是指CPU、磁盘、内存、收集等处事器层面的监控,这些一样平常也是运维同窗较量存眷的工具;
  • 应用层:应用层指的是处事角度的监控,好比接口、框架、某个处事的康健状态等,一样平常是处事开拓或框架开拓职员存眷的工具;
  • 用户层:这一层首要是与用户、与营业相干的一些监控,属于成果层面的,大大都是项目司理或产物司分析较量存眷的工具。

知道了监控的分层后,我们再来看一下监控的指标一样平常有哪些:

  • 耽误时刻:首要是相应一个哀求所耗损的耽误,好比某接口的HTTP哀求均匀相应时刻为100ms;
  • 哀求量:是指体系的容量吞吐手段,譬喻每秒处理赏罚几多次哀求(QPS)作为指标;
  • 错误率:首要是用来监控错误产生的比例,好比将某接口一段时刻内挪用时失败的比例作为指标。

三、基于时序数据库的「 监控体系 」有哪些?

下面先容几款今朝业内较量风行的基于时刻序列数据库的开源监控方案。

1、Prometheus

Promethes是一款2012年开源的监控框架,其本质是时刻序列数据库,由Google前员工所开拓。

Promethes回收拉的模式(Pull)从应用中拉取数据,并还支持Alert模块可以实现监控预警。它的机能很是强劲,单机可以斲丧百万级时刻序列。

架构如下:

基于时序数据库做监控,这里有超风行的开源方案

从看图的左下角可以看到,Prometheus可以通过在应用里举办埋点后Pull到Prometheus Server里,假如应用不支持埋点,也可以回收exporter方法举办数据收罗。

从图的左上角可以看到,对付一些按时使命模块,由于是周期性运行的,以是回收拉的方法无法获取数据,那么Prometheus也提供了一种推数据的方法,可是并不是推送到Prometheus Server中,而是中间搭建一个Pushgateway,按时使命模块将metrics信息推送到这个Pushgateway中,然后Prometheus Server再依然回收拉的方法从Pushgateway中获取数据。

必要拉取的数据既可以回收静态方法设置在Prometheus Server中,也可以回收处事发明的方法(即图的中上方Service discovery所示)。

PromQL:是Prometheus自带的查询语法,通过编写PromQL语句可以查询Prometheus内里的数据。

Alertmanager:是用于数据的预警模块,支持通过多种方法去发送预警。

WebUI:是用来展示数据和图形的,可是一样平常大大都是与Grafana团结,回收Grafana来展示。

2、OpenTSDB

OpenTSDB是在2010年开源的一款漫衍式时序数据库,虽然其首要用于监控方案中。

OpenTSDB回收的是HBase的漫衍式存储,它获取数据的模式与Prometheus差异,回收的是推模式(Push)。

在展示层,OpenTSDB自带有WebUI视图,也可以与Grafana很好的集成,提供富厚的展示界面。

但OpenTSDB并没有自带预警模块,必要本身去开拓可能与第三方组件团结行使。

可以通过下图来相识一下OpenTSDB的架构:

基于时序数据库做监控,这里有超风行的开源方案

3、InfluxDB

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读