平台统一监控的介绍和调研
创始人
2024-05-08 11:15:58
0

背景

目前平台缺少强有力的监控工具,单独依靠Spring Boot Admin 还太欠缺,没有大屏、没有分布式链路追踪、自定义告警繁琐,在我的《Spring Boot Admin2》专栏中自定义过JVM监控和异常监控,都需要自己编码定义监控规则和告警,效率很低。

需求

为了解决如上的问题,我整理了一下内部对应监控的可能需求:

1、内部服务的监控(Metrics)
2、网站、服务接口外部可用性监控
3、服务器硬件相关指标监控
4、数据库、中间件等监控
5、自定义的一些业务指标监控(Exporter)
6、灵活的自定义告警规则(AlertManager)
7、链路监控(skywalking)

产品调研

Zabbix

传统监控产品,主要在服务器相关监控方面有优势,不支持云原生监控,C语言开发,资料多

在这里插入图片描述

📌 Zabbix 告警机制不完善,设置繁琐; 监控微服务能力太弱,了解到只能监控微服务的在线状态

Nightingale(夜莺)(Open-Falcon)

国产监控,云原生监控分析系统,采用 All-In-One 的设计,集数据采集、可视化、监控告警、数据分析于一体,与Prometheus、VictoriaMetrics、Grafana、Telegraf、Datadog 等生态紧密协同集成,提供开箱即用的企业级监控分析和告警能力,产品较新2020年发布,符合国人风格,资料少,部分插件需要购买或自研,GO语,https://n9e.github.io/docs/prologue/introduction/

在这里插入图片描述

📌 本来个人更倾向于选择该产品,深入产品交流群后,群里交流不活跃,很多问题没人回复,如果用开源产品肯定会碰到很多问题,没有一个良好的交流环境会很难继续使用。
📌 后期调研了企业版,企业版价格昂贵,按年收费,费用堪比一个高级程序员。

Hertzbeat

国产小众监控,主打无侵入式,无Agent监控,支持JVM,MYSQL,Linux, Kubernetes等应用服务,数据库,操作系统,中间件,云原生等监控。更自由化的阈值告警配置,支持邮箱,短信,webhook,钉钉,企业微信,飞书机器人等告警通知。提供Custom-Monitoring,通过不同的协议SSH,JDBC,JMX,SNMP,HTTP等,仅需配置YML就能自定义监控指标并快速接入监控系统,Java语言
https://hertzbeat.com/docs/

监控三角塔

📌 刚看到的个人开源监控产品,群交流活跃,个人觉得功能够用但是不够美观

Prometheus

云原生时代监控产品,支持自定义配置告警,自定义监控,Go语言开发,资料较多
在这里插入图片描述
这是监控三字塔,可见Prometheus+Grafana的组合已经覆盖了大部分的监控。

在这里插入图片描述
这是Prometheus的管理界面,Prometheus本身也是一个TSDB(时序数据库)。

在这里插入图片描述

配合Grafana大屏工具,对指标进行展示,并且官方商城有很多免费的大屏可以直接使用,几乎可以做到开箱即用,上图就是使用了免费的JVM指标大屏。

📌 Grafana 具有很强大的功能,相关教程文章可见《Grafana》

Prometheus 架构

在这里插入图片描述

什么是Exporter

广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter。而Exporter的一个实例称为target,如下所示,Prometheus通过轮询的方式定期从这些target中获取样本数据:
在这里插入图片描述

  • 社区提供的
    Prometheus社区提供了丰富的Exporter实现,涵盖了从基础设施,中间件以及网络等各个方面的监控功能。这些Exporter可以实现大部分通用的监控需求。下表列举一些社区中常用的Exporter:
    在这里插入图片描述
  • 用户自定义的
    除了直接使用社区提供的Exporter程序以外,用户还可以基于Prometheus提供的Client Library创建自己的Exporter程序,目前Promthues社区官方提供了对以下编程语言的支持:Go、Java/Scala、Python、Ruby。同时还有第三方实现的如:Bash、C++、Common Lisp、Erlang,、Haskeel、Lua、Node.js、PHP、Rust等。

自定义埋点


public class DemoMetrics implements MeterBinder {public Counter counter;public Map map = new HashMap<>();@Overridepublic void bindTo(MeterRegistry meterRegistry) {//定义并注册一个计数器this.counter = Counter.builder("prometheus.demo.counter").tags(new String[]{"name", "counter1"}).description("demo counter").register(meterRegistry);//设置动态变化的仪表盘Gauge.builder("prometheus.demo.gauge", map, x -> x.get("x")).tags("name", "gauge1").description("This is Gauge").register(meterRegistry);}
}

总结

综上所述,为了既省成本又有扩展性,决定选择开源的Prometheus+Grafana,虽然有一定的学习成本,但毕竟是目前的主流监控产品。

作者其他文章:

Grafana 系列文章,版本:OOS v9.3.1

  1. Grafana 的介绍和安装
  2. Grafana监控大屏配置参数介绍(一)
  3. Grafana监控大屏配置参数介绍(二)
  4. Grafana监控大屏可视化图表
  5. Grafana 查询数据和转换数据

Spring Boot Admin 2 系列文章:

  1. Spring Boot Admin 参考指南
  2. SpringBoot Admin服务离线、不显示健康信息的问题
  3. Spring Boot Admin2 @EnableAdminServer的加载
  4. Spring Boot Admin2 AdminServerAutoConfiguration详解
  5. Spring Boot Admin2 实例状态监控详解
  6. Spring Boot Admin2 自定义JVM监控通知
  7. Spring Boot Admin2 自定义异常监控
  8. Spring Boot Admin 监控指标接入Grafana可视化

相关内容

热门资讯

三种温度,一份答卷   图为格桑扎西与根拉老人聊天。记者 文凤 摄  图为次旦罗布在下乡义诊中问诊。记者 文凤 摄  “...
何为进博|近悦远来,流量何以变...   【编者按】  一年一度,“东方之约”来到第八年。  “进”而有为,“博”采众长。当这场盛会不断见...
陕西:苹果种植带抵达毛乌素   红彤彤的苹果压弯树枝,果农穿梭林间,忙着摘果、剪柄、装筐。记者近日在陕西省榆林市横山区看到,位于...
视频丨探索可持续贸易新路径 进...   全球贸易协会是一家全球非营利商业协会,致力于帮助全球2400多家会员企业有效管理供应链风险,确保...
“慧”种田重塑新疆农业生产方式   小麦新品种创百亩方高产纪录 棉花激光打顶机器人效率达人工10倍  “慧”种田重塑新疆农业生产方式...
​免税收入对应的成本能扣除吗 免税收入对应的成本能扣除吗根据《中华人民共和国企业所得税法》第二十六条,免税收入包括国债利息收入、符...
四面八方说进博 | 挪威商学院...   第八届进博会期间,挪威第一大商学院BI挪威商学院战略学教授、国际商务学会院士卡尔•费 在接受总台...
共创共赢!进博会成全球创新“入...   站在进博会这个“入海口”,世界看到的还有创新活力。今年特斯拉赛博无人驾驶电动车在进博会实现亚太首...
【青春华章・向西而歌】路生梅:...   路生梅,跨越千里从首都来到陕北佳县。在岁月里褪去青涩、鬓染霜花,把心留在这片土地,留给了这里的父...
一道弧线,治水千年?中国的“生...   它没有钢筋水泥,却让洪水低头;它无需电力驱动,却灌溉万亩良田。1500多年来,丽水通济堰用一条弧...