CSDNTB|监控系统选型,这篇不可不读( 四 )
API:面向终端用户 , 收到查询请求后会去Graph中查询指标数据 , 汇总结果后统一返回给用户 , 屏蔽了存储集群的分片细节 。
下面是Open-Falcon的优势:
自动采集能力:Falcon-agent 能自动采集服务器的200多个基础指标(比如CPU、内存等) , 无需在server上做任何配置 , 这一点可以秒杀Zabbix.
强大的存储能力:底层采用RRDTool , 并且通过一致性hash进行数据分片 , 构建了一个分布式的时序数据存储系统 , 可扩展性强 。
灵活的数据模型:借鉴OpenTSDB , 数据模型中引入了tag , 这样能支持多维度的聚合统计以及告警规则设置 , 大大提高了使用效率 。
插件统一管理:Open-Falcon的插件机制实现了对用户自定义脚本的统一化管理 , 可通过HeartBeat Server分发给agent , 减轻了使用者自主维护脚本的成本 。
个性化监控支持:基于Proxy-gateway , 很容易通过自主埋点实现应用层的监控(比如监控接口的访问量和耗时)和其他个性化监控需求 , 集成方便 。
下面是Open-Falcon的劣势:
整体发展一般:社区活跃度不算高 , 同时版本更新慢 , 有些大厂是基于它的稳定版本直接做二次开发的 , 关于以后的前景其实有点担忧 。
UI不够友好:对于业务线的研发来说 , 可能只想便捷地完成告警配置和业务监控 , 但是它把机器分组、策略模板、模板继承等概念全部暴露在UI上 , 感觉在围绕这几个概念设计UI , 理解有点费劲 。
安装比较复杂:个人的亲身感受 , 由于它是从小米内部衍生出来的 , 虽然去掉了对小米内部系统的依赖 , 但是组件还是比较多 , 如果对整个架构不熟悉 , 安装很难一蹴而就 。
3. Prometheus(号称下一代监控系统)
本文插图
Prometheus(普罗米修斯)是由前google员工2015年正式发布的开源监控系统 , 采用Go语言开发 。 它不仅有一个很酷的名字 , 同时它有Google与k8s的强力支持 , 开源社区异常火爆 。
Prometheus 2016年加入云原生基金会 , 是继k8s后托管的第二个项目 , 未来前景被相当看好 。 它和Open-Falcon最大不同在于:数据采集是基于Pull模式的 , 而不是Push模式 , 并且架构非常简单 。
先来了解下Prometheus的架构设计:
本文插图
Prometheus架构图 , 来自网络
Prometheus Server:核心组件 , 用于收集、存储监控数据 。 它同时支持静态配置和通过Service Discovery动态发现来管理监控目标 , 并从监控目标中获取数据 。 此外 , Prometheus Server 也是一个时序数据库 , 它将监控数据保存在本地磁盘中 , 并对外提供自定义的 PromQL 语言实现对数据的查询和分析 。
Exporter:用来采集数据 , 作用类似于agent , 区别在于Prometheus是基于Pull方式拉取采集数据的 , 因此 , Exporter通过HTTP服务的形式将监控数据按照标准格式暴露给Prometheus Server , 社区中已经有大量现成的Exporter可以直接使用 , 用户也可以使用各种语言的client library自定义实现 。
Push gateway:主要用于瞬时任务的场景 , 防止Prometheus Server来pull数据之前此类Short-lived jobs就已经执行完毕了 , 因此job可以采用push的方式将监控数据主动汇报给Push gateway缓存起来进行中转 。
Alert Manager:当告警产生时 , Prometheus Server将告警信息推送给Alert Manager , 由它发送告警信息给接收方 。
Web UI:Prometheus内置了一个简单的web控制台 , 可以查询配置信息和指标等 , 而实际应用中我们通常会将Prometheus作为Grafana的数据源 , 创建仪表盘以及查看指标 。
推荐阅读
- 中年|什么是余压监控系统?余压监控系统如何接线和安装?一篇文章搞懂
- 监控系统|重庆首个高空抛物智能预警监控系统投用
- 安科瑞徐聃鸿|电力监控系统在中国船舶重工集团公司第四八一厂122项目10KV变电所的应用
- 一枚程序圆|为什么视频监控系统搭建,要使用流媒体服务器做视频分发?
- 指标|爱奇艺微服务监控的探索与实践 选型宝精选阅读
- Array|监控系统选型,这篇不可不读
- Array|最详细的接近开关选型及应用
- 嘉准传感器|最详细的接近开关选型及应用