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

一篇运维老司机的大数据平台监控宝典(2)-联通大数据集群平台监控体系详解

发布时间:2019-05-16 11:34:44 所属栏目:教程 来源:中国联通大数据
导读:在上一篇文章【一篇运维老司机的大数据平台监控宝典(1)】中,我们介绍了目前联通大数据监控平台由Grafana+Influxdb+Prometheus+Alertmanager等组件组成,并且着重详述了以Grafana为核心的图形化展示功能。 本文继续针对运维监控体系的另一重要内容,即告警
副标题[/!--empirenews.page--]

在上一篇文章【一篇运维老司机的大数据平台监控宝典(1)】中,我们介绍了目前联通大数据监控平台由Grafana+Influxdb+Prometheus+Alertmanager等组件组成,并且着重详述了以Grafana为核心的图形化展示功能。

本文继续针对运维监控体系的另一重要内容,即告警分析、处理及发送功能进行分享。

一、为什么要选择Prometheus+Alertmanager

你的监控系统是否曾面临这些痛点:

  • 告警信息推送无法分类,无法针对某部分人进行特定告警
  • 重复告警或无用告警过多,重要告警易被埋没
  • 监控系统无法提供可视化展示,或仅能部分展示
  • 监控历史数据不能二次查询或多维度查询,故障排查缺少依据

对于业务量、平台主机量级较大的公司来说,使用以nagios+ganglia为首的传统的监控平台往往会遇到以上情况,显得力不从心。经过大量、丰富的实战工作后,我们最后选择Prometheus+Alertmanager+钉钉的搭配作为联通大数据监控平台的告警分析、处理及发送工具组合。这套组合不仅能够针对以上痛点一一解决,也可以说是运维人员保障集群平台稳定运行、故障排查、问题定位的一把利器。

在下面的章节中,笔者会对系统中的Prometheus、Alertmanager等组件逐一进行介绍。

二、Prometheus-数据存储及分析

1. Prometheus简介

一篇运维老司机的大数据平台监控宝典(2)-联通大数据集群平台监控体系详解

基于上图,大家可以清晰的看到,Prometheus实际上是一个tsdb型数据库,所有的采集数据以metric的形式保存在其中,且能够将数据落到本地磁盘中,供使用人员二次查询数据。

Prometheus同时附加了强大的计算与分析功能,能够利用各种labels与promql语句来完成多维度的监控数据查询,从而为故障排查与问题定位提供可靠的证据。

监控规则方面,Prometheus可以根据promql来获取数据,并且与固定阈值进行计算比较,若超出正常范围,则标记为告警信息,并且可以分组分标签定义告警描述,供后续Alertmanager使用。

在拓展性方面,Prometheus可以轻松的完成服务发现功能,并拥有每秒上万数据点的监控数据收集与分析的处理能力,完全摆脱了传统监控系统对监控主机数量的要求。目前联通大数据平台机器几千余台,监控实例过十万,监控实例指标过千万,Prometheus优良的性能可以做到完美支撑。

2. Prometheus特点

(1) 监控数据存储功能及多维度查询

下图中以一个简单例子说明:该条查询可以看到某集群接口机15分钟内的系统负载,涉及到的标签维度为集群、主机IP、主机类型等。在实际线上环境中,还可以添加多个标签来完成查询,并且可以利用promql特有的查询语句(sum、count_values、topk等)来完成更加丰富的多维度查询,提供可靠、便捷、直观的监控数据供运维人员使用。

一篇运维老司机的大数据平台监控宝典(2)-联通大数据集群平台监控体系详解

(2) 优秀的自定义及第三方监控拓展功能

Pushgateway是Prometheus环境中的一个data_collector。把它定义为采集者的原因很简单,标准的Prometheus会采用pull模式从target中获取监控数据,但当由于外力原因(如网络、硬件等)无法直接从target中拉取数据时,就要依靠Pushgateway了,请看下图:

一篇运维老司机的大数据平台监控宝典(2)-联通大数据集群平台监控体系详解

大致流程为client上部署的脚本(支持多语言shell、python等)会收集target中的数据,并且以metric形式传送到Pushgateway中,只要保证client和Pushgateway能够正常通信即可。Prometheus会按照配置时间,定时到Pushgateway上拉取监控数据,从而达到收集target的目的。

下图为Pushgetway发送数据的代码过程:

一篇运维老司机的大数据平台监控宝典(2)-联通大数据集群平台监控体系详解

那么是否可以这么理解:对于常见组件(redis、mysql、nginx、haproxy等),我们可以依靠现有的丰富client库,直接进行监控纳管;对于一些特殊组件或自定义业务,可通过多语言脚本采集监控数据或业务埋点方式,把Pushgateway作为一个data_collector来收集各方数据,从而完成监控纳管。

(3) 良好的监控生态圈之常见client库

由于近年Prometheus的兴起,开源社区中越来越多的人将自己的代码贡献出来,使得Prometheus拥有庞大的client库(redis、mysql、nginx、haproxy等),运维人员可以利用这些client实现即开即用即监控的功能。

3. 配置

  1. global: 
  2. scrape_interval: 15s 
  3. evaluation_interval: 15s 
  4. # scrape_timeout is set to the global default (10s). 
  5.  
  6. # Alertmanager configuration 
  7. alerting: 
  8. alertmanagers: 
  9. - static_configs: 
  10. - targets: ['IP:9093'] 
  11.  
  12. rule_files:   
  13. # - "first_rules.yml" 
  14. # - "second_rules.yml" 
  15.  
  16. # A scrape configuration containing exactly one endpoint to scrape: 
  17. - job_name: 'prometheus' 
  18.     scrape_interval: 15s   
  19. static_configs: 
  20.  - targets: ['localdns:9090'] 

三、Alertmanager-告警的分类搬运工

1. Alertmanager简介

(编辑:核心网)

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

热点阅读