阿里巴巴 Sentinel + InfluxDB + Chronograf 实现监控大屏

简介: 前言在上一篇推文中,我们使用时序数据库 InfluxDb 做了流控数据存储,但是数据存储不是目的,分析监控预警才是最终目标,那么问题来了,如何更好的实现呢?用过阿里巴巴 Sentinel 控制台的小伙伴,是不是觉得它的控制台丑爆了,而且只有短短的五厘米,显然不能满足大部分人或者场景的使用。


前言

在上一篇推文中,我们使用时序数据库 InfluxDb 做了流控数据存储,但是数据存储不是目的,分析监控预警才是最终目标,那么问题来了,如何更好的实现呢?用过阿里巴巴 Sentinel 控制台的小伙伴,是不是觉得它的控制台丑爆了,而且只有短短的五厘米,显然不能满足大部分人或者场景的使用。

架构

工具

  • sentinel-dashboard(控制台,收集数据)
  • Influxdb(时序数据库,存储数据)
  • Chronograf (展示控制台,显示数据并实现预警)

安装

Sentinel 控制台 和 时序数据库 Influxdb 的安装方式前面已经聊过,这里不再赘述,简单说下 Chronograf 展示控制台的安装方式,这里推荐使用 Docker 安装方式。

$ docker run -p 8888:8888 \
      -v $PWD:/var/lib/chronograf \
      chronograf

安装成功以后,浏览器访问 http://ip:8888 你应该看到一个欢迎页面:

然后,自行配置数据源,根据业务场景组装监控大屏。

大屏

这里根据 Sentinel 限流组件采集的数据,组装了一个简单的监控大屏,可以监控历史访问总量、最近一小时的访问量、限流数以及最近几分钟或者几小时的访问曲线等等,相比于阿里演示版是不是瞬间高大上的些许。

总访问量

SELECT SUM("successQps") AS "总访问量" FROM "sentinel_log"."autogen"."sentinelInfo"

最近一小时访问量

SELECT SUM("successQps") AS "访问量"
FROM "sentinel_log"."autogen"."sentinelInfo"
WHERE TIME > NOW() - 1h

最近一小时限流数

SELECT SUM("blockQps") AS "限流数"
FROM "sentinel_log"."autogen"."sentinelInfo"
WHERE time > now() - 1h

最近一小时异常数

SELECT SUM("exceptionQps") AS "异常数"
FROM "sentinel_log"."autogen"."sentinelInfo"
WHERE time > now() - 1h

最近一小时的访问趋势图(秒级别)

SELECT SUM("successQps") AS "访问量"
FROM "sentinel_log"."autogen"."sentinelInfo"
WHERE time > now() - 1h
GROUP BY time(1s)

最近12小时资源访问排名

SELECT SUM("successQps") AS "成功qps", SUM("blockQps") AS "限流qps"
FROM "sentinel_log"."autogen"."sentinelInfo"
WHERE time > now() - 12h
GROUP BY resource

预警

后期我们在 Chronograf 中接入 Kapacitor ,Chronograf会自动打开该Configure Alert Endpoints部分,Kapacitor支持多个警报端点/事件处理程序。有兴趣的小伙伴也可以在 Sentinel 控制台中根据流控数据进行更智能化的设置,比如根据限流失败数以及机器指标动态调整流控规则。

小结

有了她,小哥哥、小姐姐们再也不用担心凌晨一点的闹钟了,是不是很爽?以上只是冰山一角,目前我们上线的监控系统平台,通过各种第三方组件库(Telegraf、InfluxDB、Chronograf、Kapacitor、Grafana、Prometheus、Consul、Elasticsearch、Kibana),接入了 1000 台服务器实时监控,200个监控大屏,上千个监控指标,每日处理成吨的数据。是不是很吊!?我唧唧都佩服我自己的想象力。

源码

https://gitee.com/52itstyle/sentinel-dashboard

参考

https://hub.docker.com/_/chronograf

目录
相关文章
|
6月前
|
Prometheus 监控 Kubernetes
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档(上)
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档
|
7月前
|
JSON Prometheus 监控
ClickHouse监控系统Prometheus+Grafana
ClickHouse监控系统Prometheus+Grafana
337 0
|
缓存 Prometheus 监控
【监控利器Prometheus】——Prometheus+Grafana监控SpringBoot项目业务指标监控
Prometheus+Grafana监控SpringBoot项目业务指标监控 1、SpringBoot项目配置 2、prometheus添加配置 3、Grafana配置
【监控利器Prometheus】——Prometheus+Grafana监控SpringBoot项目业务指标监控
|
6月前
|
Prometheus Kubernetes 监控
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档(下)
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档
|
7月前
|
弹性计算 监控 测试技术
基于Prometheus+Grafana的PolarDB-X监控体系
《PolarDB-X 动手实践》系列第十期,体验如何监控PolarDB-X集群。
421 1
|
SQL 弹性计算 监控
实践教程之基于Prometheus+Grafana的PolarDB-X监控体系
PolarDB-X 为了方便用户体验,提供了免费的实验环境,您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验,PolarDB-X 也提供免费的视频课程,手把手教你玩转 PolarDB-X 分布式数据库。
实践教程之基于Prometheus+Grafana的PolarDB-X监控体系
|
存储 Prometheus 运维
Prometheus 运维工具 Promtool (四)TSDB 功能
Promtool 在 TSDB 方面一个有 6 个子命令,分别用来进行写性能测试、分析、列出其中的块、dump、从 OpenMetric 导入数据块、为新的记录规则创建数据块,接下来我们依次看一下。
1425 0
|
存储 SQL Prometheus
跟我学:基于Prometheus+Grafana的PolarDB-X监控体系
本文整理阿里云数据库技术专家吴迪,在PolarDB-X动手实践系列的分享。
跟我学:基于Prometheus+Grafana的PolarDB-X监控体系
|
Prometheus 监控 Cloud Native
Flink 任务实时监控最佳实践(Prometheus + Grafana)打造企业级监控方案
我们都知道 Flink 任务是一个 7*24 小时不停运行的任务,所以对于任务的实时监控就显得尤为重要,因为任务运行的状态对于我们来说是一个黑盒,比如任务是否挂掉,是否存在反压,使用的内存,CPU 等情况我们是不知道的,虽然 Flink 的 UI 上面可以添加相关的 metrics 来查看,但是需要手动的一个一个添加,还是比较麻烦的,特别是在任务非常多的情况下.所以就需要有一种统一的监控方案来解决这个问题.Flink 本身提供了非常丰富的 Metric Reporters,比如 JMX InfluxDB Graphite Prometheus 等等,生产环境上用的比较多的是 InfluxDB
Flink 任务实时监控最佳实践(Prometheus + Grafana)打造企业级监控方案
|
JSON Prometheus 监控
使用Grafana监控Doris
使用Grafana监控Doris的安装注意。
515 0