大数据监控平台实践之路

大数据监控平台实践之路大数据监控平台实践之路一、监控体系业务层:应用层:系统层:二、架构设计Telegraf:input:output:调度频率:服务启动:InfluxDB:服务启动:常用命令:Grafana:Grafana主要特性:简单使用介绍:原文地址:大数据监控平台实践之路一、监控体系监控粒度、监控指标完整性、监控实时性是评价监控系统的三要素。从分层体系可以把监控系统分为三个层次:业务层:业务系统…

大家好,又见面了,我是你们的朋友全栈君。



原文地址:

大数据监控平台实践之路



一、监控体系

监控粒度、监控指标完整性、监控实时性是评价监控系统的三要素。从分层体系可以把监控系统分为三个层次:

业务层:

业务系统本质目的是为了达成业务目标,因此监控业务系统是否正常最有效的方式是从数据上监控业务目标是否达成。对业务运营数据进行监控,可及时发现程序bug或业务逻辑设计缺陷,比如注册失败率、登录失败率、付款失败率等。业务系统的多样性决定了应由各个业务系统实现监控指标开发。

应用层:

对应用的整体运行状况进行了解、把控,如果将应用当成黑盒子,开发、运维就无从知晓应用当前状态,不能及时发现潜在故障。应用监控不应局限于业务系统,还包括各种中间件、计算引擎,如Spark、Jstorm、redis、zookeeper、kafka等。常用监控数据:JVM堆内存、GC、CPU使用率、线程数、TPS、吞吐量等。一般通过抽象出的统一指标收集组件,收集应用级指标,比如不管是支付系统还是交易系统,都要监控jvm内存使用。

系统层:

实时掌握服务器工作状态,留意性能、内存消耗、容量和整体系统健康状态,保证服务器稳定运行。监控指标:内存、磁盘、CPU、网络流量、系统进程等系统级性能指标

二、架构设计

工欲善其事必先利其器,根据对现有监控产品的调研,以及我们对监控的分层介绍、所需解决的问题,可以发现监控系统从收集到分析的流程架构:采集-存储-展示-告警:

在这里插入图片描述

Telegraf:

插件化的指标收集和指标报告服务,能定制化开发并轻松添加所需插件。已经内置了很多常用服务的插件,这也是我们选择telegraf的原因之一,不用再重复造轮子。

Go语言编写的插件化指标收集agent,编译成一个没有外部依赖的二进制文件,安装部署很便捷,直接下载、解压就行,默认配置文件在$TELEGRAF_HOME/etc/telegraf/telegraf.conf目录下。telegraf插件分为两大类:input、output。

input:

收集inputs配置的所有指标,已内置的input插件:elasticsearch、redis、jolokia等。也可直接收集运行agent server的各种指标,比如内存、cpu、磁盘、磁盘IO、进程、swap等。input配置都很简明易用,一般只需配置服务IP地址就可以,如redis指标收集配置:

如果没有内置收集插件,有两种实现方案:

  1. 开发input插件,但这需要有GO语言基础
  2. 借助于httpjson input插件,该插件请求http url,返回json格式。url配置为自定义指标收集服务,在指标收集服务内实现指标收集功能,然后指标封装成json返回或指标数据直接在服务内入库。我们监控Kettle Carte、spark、jstorm等用的这种实现思路。

output:

将收集到的度量数据序列化存储,Telegraf指标由四个部分组成:度量、标签、字段、时间戳。支持以下存储结构:InfluxDB、Graphite、JSON,比如度量输出到InfluxDB的配置:

在这里插入图片描述

  • urls:InfluxDB端口
  • database:存储的数据库
  • retention_policy:数据保留策略

调度频率:

所有指标收集频率是一样的,在配置文件agent项下配置:
在这里插入图片描述

服务启动:

–config:配置文件

–config-directory:配置文件目录,如果有多个配置文件时使用

InfluxDB:

高性能的布式时间序列指标数据库。监控指标收集是非常频繁的,否则就失去了实时性,高频收集的结果就是大数据量,也要对时间序列进行分析,InfluxDB就能满足这种应用场景。

InfluxDB是为时间序列构建的高性能数据存储,提供类SQL的查询语言、特定分析时间序列的功能。通过设置数据保留策略,自动从系统中删除过期数据,释放存储空间。社区版只支持单台服务器,会有单点故障风险,商业版版支持高可用,对我们来说,单机InfluxDB已经能满足需求。选择InfluxDB的原因:

  1. InflluxDB是用GO写的,编译后是一个完全无依赖的二进制文件,安装部署非常便捷,解压缩包即可
  2. 高性能时间序列专有数据库,对时间序列的存储和查询都做了优化
  3. 类SQL查询语言,降低使用门槛
  4. 数据保留策略可以有效的自动清理过期数据

InfluxDB的数据是以shard groups形式存储,指定时间间隔的数据存储到一个shard groups里,这个时间间隔称为shardGroupDuration。

服务启动:

输入influx进入shell命令行:

常用命令:

show databases:查看所有数据库

use db_name:进入数据库

show measurements:显示数据库下所有度量

select *from cpu limit 10:查询一个度量的数据

Telegraf默认是将收集的数据持久化到telegraf这个数据库下,每个input对应一个度量表,比如zookeeper的指标数据就在zookeeper这个度量下:

在这里插入图片描述

查询数据保留策略:
在这里插入图片描述
duration:数据保留时间,0表示无限制,InfluxDB默认30分钟检查一次保留策略。ALTER RETENTION语句修改保留7天数据。

replicaN:每个度量在集群里的副本数,副本保证数据高可用性,社区版(单节点)不支持副本数设置。

Grafana:

时间序列分析和监控的开放平台,支持多种数据源(InfluxDB、OpenTSDB时间序列数据库)、丰富的展现形式、支持email/dingding报警。

Grafana是一个指标查询、可视化、监控的开源应用,有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。

Grafana主要特性:

  1. 灵活丰富的图形化组件,包括热力图、直方图、地图等
  2. 在同一dashboard内可以混合多种展示组件
  3. 开源社区有大量的插件可供选择,包括数据源插件、图形插件、通知插件
  4. 可以在同一个视图里使用多个不同数据源

简单使用介绍:

  1. 安装:下载&解压二进制包
  2. 配置:配置文件: G R A F A N A H O M E GRAFANA_HOME GRAFANAHOME/conf配置端口号、Email、登录用户
  3. start:命令:/opt/grafana/bin/grafana-server start
  4. 访问:http://ip:port
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140762.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月27日 上午10:40
下一篇 2022年5月27日 上午10:40


相关推荐

  • qmake中文官方文档

    qmake中文官方文档qmakeQMake提供了一个用于管理应用程序,库,其他组件的构建过程的面向工程系统QMake扩展了每个工程文件的信息,生成一个执行编译和连接过程的Makefile本文翻译自Qt4.8官方文档。一、QMake使用QMake提供了一个用于管理应用程序、库、其它组件的构建过程的面向工程系统。QMake扩展了每个工程文件的信息,生成一个执行编译和链接过程的必须命令的MakeFile。1、描述工程工程文件.pro描述了工程信息。工程文件信息会被qmake用于生成包含构建过程中所需的所有命令的Mak

    2022年5月19日
    47
  • 恢复默认pycharm快捷键设置

    恢复默认pycharm快捷键设置Files gt setting

    2026年3月18日
    2
  • 数据结构——查分数组

    数据结构——查分数组介绍查分数组是一个数据结构。相当于前缀和的逆运算。查分数组的功能是修改区间,查询点。修改区间的时间复杂度是O(1).查询点的时间复杂度是O(n)。若配合树状数组时间复杂度可达到O(logn)。修改区间操作x位置加上修改量,y+1位置减去修改量。这样就相当于整个区间的元素都修改了。staticvoidupdate(intx,inty,intz){ b[x]+=z; b[y+1]-=z;}查询刚刚修改方便了,但是查询的时候就需要全部都加一遍了。staticint

    2022年4月29日
    53
  • SQLite数据库中文乱码处理「建议收藏」

    SQLite数据库中文乱码处理「建议收藏」通过SQLiteAdministrator等工具生成的数据库文件,放入到Android中,查询记录怎么也查不出来,后来发现是编码错误,SQLiteAdministrator不支持utf编码,所以存储的中文会出现乱码的情况,处理方法如下:SQLiteDatabasedb=dbHelper.getWritableDatabase();Cursorcursor

    2025年8月26日
    7
  • 防抖节流函数解析

    防抖节流函数解析防抖节流函数的解析认识防抖和节流函数防抖和节流的概念其实最早并不是出现在软件工程中 防抖是出现在电子元件中 节流出现在流体流动中而 JavaScript 是事件驱动的 大量的操作会触发事件 加入到事件队列中处理 而对于某些频繁的事件处理会造成性能的损耗 我们就可以通过防抖和节流来限制事件频繁的发生 防抖和节流函数目前已经是前端实际开发中两个非常重要的函数 也是面试经常被问到的面试题 但是很多前端开发者面对这两个功能 有点摸不着头脑 某些开发者根本无法区分防抖和节流有什么区别 面试经常会被问到

    2026年3月19日
    2
  • MySQL 常用语句_MySQL常用命令

    MySQL 常用语句_MySQL常用命令数据库#查看所有的数据库SHOWDATABASES;#创建一个数据库CREATEDATABASEk;#删除一个数据库DROPDATABASEk;#使用这个数据库USEk;表#查看所有的表SHOWTABLES;#创建一个表CREATETABLEn(idINT,nameVARCHAR(10));CREATETABLEm(idINT,…

    2025年9月13日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号