平台统一监控的介绍和调研
创始人
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可视化

相关内容

热门资讯

“农”墨重彩促振兴・四季画卷绘...   “农”墨重彩促振兴  冬藏回望处,耕耘致岁丰;年轮刻印时,画卷展新程。津沽大地的四季轮回,在冬日...
情绪消费撑起万亿蓝海   最近,“爱你老己”在互联网上走红了。  这个被誉为“年度最暖心的热梗”,反映出当代年轻人“爱自己...
全球最长,中国高铁十万里!   中国高铁运营里程突破5万公里!  高铁发展再上新台阶  临近岁末  中国开通多条高铁线路  进一...
强冷空气来袭,这几类人最危险!...   近日,我国多地出现  大风降温和雨雪天气。  天气“变脸”,  哪些人需要特别当心?  如何做好...
视频丨一条高速串起天山南北 库...   乌尉高速像一条丝带串联起了天山南北,全长324.7公里的乌尉高速公路串联了乌鲁木齐都市圈、北疆城...
现货白银价格一度突破每盎司75...   新华社北京12月26日电 据路透社报道,现货白银价格26日一度突破每盎司75美元,创历史新高。 ...
快递行业向“新”向“智”向“绿...   央视网消息:12月25日,国家邮政局举行新闻发布会。相关负责人表示,“十四五”期间,我国快递包装...
教育部公布2024—2025学...   近日,教育部发布公告,公布2024—2025学年度本专科生国家奖学金获奖学生名单。跟教育小微一起...
视频丨多国人士:日本错误言论扰...   针对日本首相和官员近期在涉台、涉核问题上的错误言论,多国人士表示日本此类表态和举动扰动地区局势,...
脱贫村的这五年 | 从“苏醒动...   沉寂许久的白雾村,喧腾了起来——  明清时期的石板路旁,村民支起小摊摆上凉粉,清亮的吆喝声从街头...