安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

一文吃透监控系统

4月24日 心碎巷投稿
  作者:后端元宇宙
  来源:后端元宇宙(ID:binron3)
  全文共1096个字,建议阅读3分钟
  谈数据聚焦数据治理,数字化转型,数据中台等领域专业知识总结和实战分享,做你身边最有价值的数据号!144篇原创内容
  公众号
  这篇文章,我将对监控体系的基础知识、原理和架构做一次系统性整理,同时还会对几款最常用的开源监控产品做下介绍,以便大家选型时参考。内容包括3部分:
  必知必会的监控基础知识主流监控系统介绍监控系统的选型建议
  一、必知必会的监控基础知识
  我们可以理解监控系统就像我们古代打战的哨兵一样,哨兵的角色非常重要,敌人来了,哨兵会第一时间发出预警(吹笛、打鼓、放烟),让守城的战士能够最快的时间处理,应对。
  那对于我们应用系统而言,监控系统就像我们第三只眼,如果有应用系统出现问题,我们可以通过监控系统看是哪里出现问题,是redis挂了,还是说服务器内存满了,有监控系统我们可以很轻松、快速的定位问题。
  甚至我们可以设置预警,对一些将要出现的问题进行提前预防处理,及时避免问题的发生。
  1、监控系统的作用
  1)帮助定位故障
  在发生故障时,我们可以通过查看监控系统的各项指标数据,辅助故障分析和定位。
  2)预警减少故障率
  对于即将可能产生的故障能够及时发出预警信息,做好提前预防处理。
  3)辅助容量规划
  为服务器、中间件以及应用集群的容量规划提供数据支撑。
  4)辅助性能调优
  JVM垃圾回收次数、接口响应时间、慢SQL等等都可以监控优化。
  2、常见的监控对象和指标都有哪些?
  1)服务器监控
  CPU使用率、内存使用率、磁盘使用率、磁盘读写的吞吐量、网络出入流量等等。
  2)MySQL监控
  TPS、QPS、数据库连接数、慢SQL、InnoDB缓冲池命中率等等。
  3)Redis监控
  内存使用率、缓存命中率、key值总数、Redis响应请求时间、客户端连接数、持久性指标等等。
  4)MQ监控
  连接数、队列数、生产速率、消费速率、消息堆积量等等。
  5)应用监控
  HTTP接口:URL存活、请求量、耗时、异常量。JVM:GC次数、GC耗时、各个内存区域的大小、当前线程数、死锁线程数。线程池:活跃线程数、任务队列大小、任务执行耗时、拒绝任务数。
  3、监控系统的基本流程
  1)数据采集
  采集的方式有很多种,包括日志埋点进行采集,JMX标准接口输出监控指标,被监控对象提供RESTAPI进行数据采集(如Hadoop、ES),系统命令行,统一的SDK进行侵入式的埋点和上报等。
  2)数据传输
  将采集的数据以TCP、UDP或者HTTP协议的形式上报给监控系统,有主动Push模式,也有被动Pull模式。
  3)数据存储
  有使用MySQL、Oracle等关系数据库存储的,也有使用时序数据库RRDTool、OpentTSDB、InfluxDB存储的,还有使用HBase存储的。
  4)数据展示
  数据指标的图形化展示。
  5)监控告警
  灵活的告警设置,以及支持邮件、短信、IM等多种通知通道。
  二、市面上的一些常见监控系统比较
  下面再来认识下主流的开源监控系统,由于篇幅有限,我挑选了3款使用最广泛的监控系统:Zabbix、OpenFalcon、Prometheus,会对它们的架构进行介绍,同时总结下各自的优劣势。
  1、Zabbix介绍
  Zabbix1998年诞生,核心组件采用C语言开发,Web端采用PHP开发。它属于老牌监控系统中的优秀代表,监控功能很全面,使用也很广泛,差不多有70左右的互联网公司都曾使用过Zabbix作为监控解决方案。
  先来了解下Zabbix的架构设计:
  ZabbixServer
  核心组件,C语言编写,负责接收Agent、Proxy发送的监控数据。同时,它还负责数据的汇总存储以及告警触发等。
  ZabbixProxy
  可选组件,对于被监控机器较多的情况下,可使用Proxy进行分布式监控,它能代理Server收集部分监控数据,以减轻Server的压力。
  ZabbixAgentd
  部署在被监控主机上,用于采集本机的数据并发送给Proxy或者Server。数据收集方式同时支持主动Push和被动Pull两种模式。
  Database
  用于存储配置信息以及采集到的数据,支持MySQL、Oracle等关系型数据库。同时,最新版本的Zabbix已经开始支持时序数据库,不过成熟度还不高。
  WebServer
  Zabbix的GUI组件,PHP编写,提供监控数据的展现和告警配置。
  1)Zabbix的优势
  产品成熟
  由于诞生时间长且使用广泛,拥有丰富的文档资料以及各种开源的数据采集插件,能覆盖绝大部分监控场景。
  采集方式丰富
  支持Agent、SNMP、JMX、SSH等多种采集方式,以及主动和被动的数据传输方式。
  2)Zabbix的劣势
  需要在被监控主机上安装Agent,所有的数据都存在数据库里,产生的数据很大,瓶颈主要在数据库。
  2、OpenFalcon(小米出品,国内流行)
  Openfalcon是小米2015年开源的企业级监控工具,采用Go和Python语言开发,这是一款灵活、高性能且易扩展的新一代监控方案,目前小米、美团、滴滴等超过200家公司在使用它。
  小米初期也使用的Zabbix进行监控,但是机器量和业务量上来后,Zabbix就有些力不从心了。因此,后来自主研发了OpenFalcon,在架构设计上吸取了Zabbix的经验,同时很好地解决了Zabbix的诸多痛点。
  架构看去比Zabbix复杂多了,其实它也是基于ServerAgent的模式,只不过Server又给他划分了好几个组件,这个耦合性和扩展性都得到了明显提高。
  Falconagent
  数据采集器和收集器,Go开发,部署在被监控的机器上。就相当于Agent,用于采集机器负载监控指标数据如:CPU、内存、磁盘、IO、网络、端口等等大概有200多个这些都可以自定是否收集。
  Transfer
  数据分发组件,接收客户端发送的数据,分别发送给数据存储组件Graph和告警判定组件Judge,Graph和Judge均采用一致性hash做数据分片,以提高横向扩展能力。同时Transfer还支持将数据分发到OpenTSDB,用于历史归档。
  Graph
  数据存储组件,底层使用RRDTool(时序数据库)做单个指标的存储,并通过缓存、分批写入磁盘等方式进行了优化。据说一个graph实例能够处理8W每秒的写入速率。
  Judge和Alarm
  告警组件,Judge对Transfer组件上报的数据进行实时计算,判断是否要产生告警事件,Alarm组件对告警事件进行收敛处理后,将告警消息推送给各个消息通道。
  API
  面向终端用户,收到查询请求后会去Graph中查询指标数据,汇总结果后统一返回给用户,屏蔽了存储集群的分片细节。
  1)OpenFalcon优势
  自动采集能力
  Falconagent能自动采集服务器的200多个基础指标(比如CPU、内存等),无需在server上做任何配置,这一点可以秒杀Zabbix。
  强大的存储能力
  底层采用RRDTool,并且通过一致性hash进行数据分片,构建了一个分布式的时序数据存储系统,可扩展性强。
  灵活的数据模型
  借鉴OpenTSDB,数据模型中引入了tag,这样能支持多维度的聚合统计以及告警规则设置,大大提高了使用效率。
  插件统一管理
  OpenFalcon的插件机制实现了对用户自定义脚本的统一化管理,可通过HeartBeatServer分发给agent,减轻了使用者自主维护脚本的成本。
  个性化监控支持
  基于Proxygateway,很容易通过自主埋点实现应用层的监控(比如监控接口的访问量和耗时)和其他个性化监控需求,集成方便。
  2)OpenFalcon缺点
  监控类型较少
  不支持常用应用服务器如tomcat、apache、jetty等的监控。
  整体发展一般,社区活跃度低
  没有专门的运维支持,代码更新较少,没有一个较大的社区来维护,后续想要有什么新的能力基本只能指望自己扩展。
  3、Prometheus(号称下一代监控系统)
  我们知道zabbix在监控界占有不可撼动的地位,功能强大。但是对容器监控显得力不从心。为解决监控容器的问题,引入了Prometheus技术。
  Prometheus是一套开源的系统监控报警框架。是由前google员工2015年正式发布的开源监控系统,采用Go语言开发。它不仅有一个很酷的名字,同时它有Google与k8s的强力支持,开源社区异常火爆。
  先来了解下Prometheus的架构设计:
  Exporter
  主要用来采集数据,并通过HTTP服务的形式暴露给PrometheusServer,PrometheusServer通过访问该Exporter提供的接口,即可获取到需要采集的监控数据。常见的Exporter有很多,例如nodeexporter、mysqldexporter、redisexporter等
  PrometheusServer
  核心组件,负责实现对监控数据的获取,存储以及查询。PrometheusServer也是一个时序数据库,它将监控数据保存在本地磁盘中,并对外提供自定义的PromQL语言实现对数据的查询和分析。
  Pushgateway
  由于Prometheus数据采集采用pull方式进行设置的,内置必须保证prometheusserver和对应的exporter必须通信,当网络情况无法直接满足时,可以使用pushgateway来进行中转,可以通过pushgateway将内部网络数据主动push到gateway里面去,而prometheus采用pull方式拉取pushgateway中数据。
  AlertManager
  当支持基于PromQL创建告警规则,如果满足定义的规则,则会产生一条告警信息,进入AlertManager进行处理。可以集成邮件,微信或者通过webhook自定义报警。
  WebUI
  Prometheus内置了一个简单的web控制台,可以查询配置信息和指标等,而实际应用中我们通常会将Prometheus作为Grafana的数据源,创建仪表盘以及查看指标。
  1)Prometheus优点
  社区活跃度高
  githubstart超过40k,且一直在维护。
  基于时序数据库,存储效率高
  Prometheus核心部分只有一个单独的二进制文件,不存在任何的第三方依赖(数据库,缓存等等)。唯一需要的就是本地磁盘,因此不会有潜在级联故障的风险。
  很好地支持容器监控
  能自动发现容器,同时k8s和etcd等项目都提供了对Prometheus的原生支持,是目前容器监控最流行的方案。
  基于Pull模型的架构
  Prometheus基于Pull模型的架构方式,可以在任何地方(本地电脑,开发环境,测试环境)搭建我们的监控系统。
  2)Prometheus缺点
  Prometheus是基于Metric的监控,不适用于日志(Logs)、事件(Event)、调用链(Tracing)。
  由于Prometheus采用的是Pull模型拉取数据,意味着所有被监控的endpoint必须是可达的,需要合理规划网络的安全配置。
  指标众多,需进行适当裁剪。
  三、选型建议
  通过上面的介绍,大家对主流的监控系统应该有了一定的认识。面对选型问题,我的建议是:
  1)先明确清楚你的监控需求:要监控的对象有哪些?机器数量和监控指标有多少?需要具备什么样的告警功能?
  2)监控是一项长期建设的事情,一开始就想做一个AllInOne的监控解决方案,我觉得没有必要。从成本角度考虑,在初期直接使用开源的监控方案即可,先解决有无问题。
  3)从系统成熟度上看,Zabbix属于老牌的监控系统,资料多,功能全面且稳定,如果机器数量在几百台以内,不用太担心性能问题,另外,采用数据库分区、SSD硬盘、Proxy架构、Push采集模式都可以提高监控性能。
  4)Zabbix在服务器监控方面占绝对优势,可以满足90以上的监控场景,但是应用层的监控似乎并不擅长,比如要监控线程池的状态、某个内部接口的执行时间等,这种通常都要做侵入式埋点。相反,新一代的监控系统OpenFalcon和Prometheus在这一点做得很好。
  5)从整体表现上来看,新一代监控系统也有明显的优势,比如:灵活的数据模型、更成熟的时序数据库、强大的告警功能,如果之前对zabbix这种传统监控没有技术积累,建议使用OpenFalcon或者Prometheus。
  6)OpenFalcon的核心优势在于数据分片功能,能支撑更多的机器和监控项;Prometheus则是容器监控方面的标配,有Google和k8s加持。
  7)Zabbix、OpenFalcon和Prometheus都支持和Grafana做快速集成,想要美观且强大的可视化体验,可以和Grafana进行组合。
  8)用合适的监控系统解决相应的问题即可,可以多套监控同时使用,这种在企业初期很常见。
  9)到中后期,随着机器数据增加和个性化需求增多(比如希望统一监控平台、打通公司的CMDB和组织架构关系),往往需要二次开发或者通过监控系统提供的API做集成,从这点来看,OpenFalcon或者Prometheus更合适。
  10)如果非要自研,可以多研究下主流监控系统的架构方案,借鉴它们的优势。
  PS:1。3万字详解,吃透ES!
  据统计,99的数据大咖都关注了这个公众号
  谈数据聚焦数据治理,数字化转型,数据中台等领域专业知识总结和实战分享,做你身边最有价值的数据号!144篇原创内容
  公众号
投诉 评论

她是扮演伟人的女演员,因为太像,丈夫和儿子感觉十分苦恼她是扮演毛主席的女演员,因为扮相太像,丈夫和儿子感觉十分苦恼毛主席是我国最伟大的革命家、战略家、理论家,也是最让人敬畏的领袖。如今距离他离开我们也有几十年的时间,但……勇士42夺冠,库里喜极而泣,G6汤神奇不再,塔图姆彻底迷失北京时间6月17日,NBA总决赛G6开打,赛前勇士队系列赛32领先手握赛点。首节比赛,绿军先声夺人,打出122的梦幻开局,此后两队交替涨分,绿军来到22分以后突然进攻断电,勇士……娱乐圈要变天了张一山工作室:网传吸毒、嫖娼不实最近这两年娱乐圈好像有了翻天覆地的变化了!特别是今年!从2021年,李靓蕾与王力宏的离婚大战开始,霍尊退圈与陈露被抓,赵丽颖与冯绍峰离婚,到张碧……女性40岁后想比别人年轻,要从这几方面下功夫(医生经验总结)40岁后面部衰老极速加快的时间节点到来,而如何比别人看起来年轻,是很多女性想要了解的知识点,今天的文章就来简单聊聊,在我看来,女性40岁后想比别人年轻,要从这几方面下功夫。……下午2点,李霄鹏下课,陈戌源承诺签约世界级名帅,国足天亮了东亚杯的首场比赛,以国足03惨败韩国而告终。这场失利也让扬科维奇想要率队争冠的幻想破灭,对于他来说,第一次体会到了担任国足主帅的不容易。伴随着这场惨败,名义上的中国男足主帅李霄……维E外涂保湿美白又祛斑维生素E是常见的抗氧化剂之一,口服维生素E具有延缓衰老作用,可减少皱纹产生。除了口服,维生素E也可以直接涂在脸上。外用维生素E能减弱皮肤光老化,减少由于紫外线导致的免疫抑制反应……永生不能回韩国!韩国国奥队球员加入中国籍,我国归化球员逆势1中国男子足坛近况不佳,国足兵败越南彻底失去晋级世界杯希望,联赛多队陷入财务危机,广州队一口气解约了5名归化球员,有归化球员已经做出了离开中国足球的决定。然而,在这样的低谷……穷游世界30以色列约旦10日游(第8天)上午从伯利恒(巴勒斯坦管控)去耶路撒冷(以色列管控),先去看以色列的国会大厦。以色列的政府部门外观很低调,堂堂国会大厦(位于耶路撒冷新城区)看起来就是一栋平常普通的办公楼:……铃主指南玩转新疆的锦囊,请收好美好的周五,五哥带着阔别两周的铃主指南又来了,生在960多万平方公里的华夏大地上,咱就是敞开了玩儿!相信充满玩心的各位铃主也注意到了,最近啊,云南又上了热搜,号称全国一半……42天经典月子餐第32天功效套餐,降压补钙补气血增强体质营养处于哺乳期的妈妈可能会发现,如果自己的心情抑郁,宝宝一吃完奶也会变得很烦躁,经常莫名其妙地啼哭。妈妈的乳汁泌出也不如前几天顺畅,颜色也似乎不大对劲了。这种情况的产生,就是因为产……均衡器是什么?它是给声音加味精吗?均衡器的全称是Equalizer,所以它也叫做EQ均衡器。均衡器是一种可以分别调节各种频率成分、电信号放大量的电子设备。其主要作用是通过对中、高、低频三段频率电信号的分别调节,……一文吃透监控系统作者:后端元宇宙来源:后端元宇宙(ID:binron3)全文共1096个字,建议阅读3分钟谈数据聚焦数据治理,数字化转型,数据中台等领域专业知识总结和实战分享……
或许真的不会再谈了门头沟的美丽乡村清水镇7个村推荐20减6!中国女排世联赛首周14人名单欲出炉,李盈莹等8人不中国黄金协会前三季度我国黄金消费量同比降4。36比亚迪高销量背后,是e平台这一秘密武器不满眉眼效果过程多次推销?小米与华为,谁更有可能超越苹果?官宣!公牛裁掉1人!湖人2签约1续约正式达成,76人押宝13科学家首次发现汤加火山爆发激发的深海内波现象小郭首场比赛状态太差,面部有些发福!职业运动员一定要自律啊三星OLED显示器亮相奥德赛系列高端货,价格昂贵年底上市双休中国股市不开盘,刚刚得知3大消息,周一行情会怎么走?热线咨询多部门部署下一步金融工作稳实体稳预期成重中之重离别与相逢,等在下一个轮回用户心声:“摩拜才是真智能”,骑行体验不断提升安全工作总结糯米令人感动的励志表白句子美军前司令抵台,中方划下红线,不到24小时,我军已出手反制那老奶奶的照片湖人坐稳了联盟西部第一,沃格尔看起来云淡风轻,湖人主如何创建学习指南王者荣耀怎么提交BUG王者荣耀如何提交BUG

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利