环境介绍
- 数据来源:SpringBoot + Actuator
- 数据采集:Prometheus
- 数据展示:Grafana
监控维度
- JVM
- MySQL
- Redis
- 服务器信息
演示环境
- Ubuntu
- Docker
Prometheus介绍
Prometheus
是一个开源的系统监控和报警系统,现在已经加入到CNCF
基金会,成为继K8S
之后第二个在CNCF
托管的项目,在Kubernetes
容器管理系统中,通常会搭配Prometheus
进行监控,同时也支持多种exporter
采集数据,还支持pushgateway
进行数据上报,Prometheus
性能足够支撑上万台规模的集群。
- Prometheus 服务器
Prometheus Server 是 Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。
- NodeExporter 业务数据源
业务数据源通过 Pull/Push 两种方式推送数据到 Prometheus Server。
- AlertManager 报警管理器
Prometheus 通过配置报警规则,如果符合报警规则,那么就将报警推送到 AlertManager,由其进行报警处理。
- 可视化监控界面
Prometheus 收集到数据之后,由 WebUI 界面进行可视化图标展示。目前我们可以通过自定义的 API 客户端进行调用数据展示,也可以直接使用 Grafana 解决方案来展示。
简单地说,Prometheus 的实现架构也并不复杂。其实就是收集数据、处理数据、可视化展示,再进行数据分析进行报警处理。 但其珍贵之处在于提供了一整套可行的解决方案,并且形成了一整个生态,能够极大地降低我们的研发成本。
Grafana
Grafana 是一款用 GO 语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。
特点:
- 可视化
Grafana 拥有快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式,让我们复杂的数据展示的美观而优雅。 - 报警和通知