EMQX+InfluxDB+Grafana 构建物联网可视化平台

EMQX+InfluxDB+Grafana 构建物联网可视化平台

本文以常见物联网使用场景为例,介绍了如何利用 EMQ X MQTT 服务器 + InfluxDB + Grafana 构建物联网数据可视化平台,将物联网设备上传的时序数据便捷地展现出来。

在物联网项目中接入平台的设备数据和数据存储方案有以下特点:

  • 数据采集的维度、频率、以及设备数量都比较多,采集的数据量比较大,对消息服务器的接入吞吐量、后端数据库的存储空间消耗有很大压力。
  • 数据按照采集周期进行上报、传输、存储一般都按照时间序列。
    因此在物联网项目中使用时序数据库是比较好的选择。时序数据库 可以带来显著的性能提升,包括更高的容纳率、更快的大规模查询,以及更好的数据压缩率等。数据入库后,往往需要数据可视化平台将数据按照规则统计、展现出来,实现数据的监控、指标统计等业务需求,以便充分发挥数据的价值。

方案介绍

目前市面上已有多款物联网消息中间件、时序数据库和数据可视化产品,结合数据的采集上报、联网接入、消息存储与可视化功能来看,EMQ X(高性能物联网 MQTT 消息中间件) + InfluxDB(时序数据库)+ Grafana(美观、强大的可视化监控指标展示工具)组合无疑是最佳的物联网数据可视化集成方案。

方案整体架构如下图所示:

  • EMQX:EMQX 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 消息服务器。EMQ X 内置了大量开箱即用的功能,其企业版 EMQ X Enterprise 支持通过规则引擎或消息持久化插件将设备消息高性能地存储到 InfluxDB,开源用户需自行处理消息存储环节。
  • InfluxDB:InfluxDB 是一个由 InfluxData 开源的时序型数据库。它由 Go 写成,着力于高性能地查询与存储时序型数据。InfluxDB 被广泛应用于存储系统的监控数据,IoT 行业的实时数据等场景。
  • Grafana: Grafana 是一个跨平台、开源的度量分析和可视化工具,可以通过灵活的配置查询采集到的数据并进行可视化展示。它可以快速灵活的创建客户端图表,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式。支持 Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch 和 KairosDB 等数据源。可以创建自定义告警规则并通知到其他消息处理服务或组件中

实现步骤:

本文所用各个组件均有 Docker 镜像,均使用 Docker 搭建

  • 安装EMQX
    由于数据持久化是企业功能,需访问 EMQX官网申请企业版docker镜像

    官网申请emqx License文件 7天免费

    进入Flow设计器创建连接器,动作






    设置influxDB输入动作


    推送test主题,查看influxdb

查看influxdb数据

添加grafana数据源

这里引入的是Flux

查询airSensors表

以上Demo仅供参考

相关推荐
福大大架构师每日一题4 天前
36.3 grafana-dashboard看图分析
linux·网络·grafana·prometheus
点燃银河尽头的篝火(●'◡'●)4 天前
【环境搭建】Grafana本地部署搭建(windows系统)
windows·grafana·环境搭建
香吧香8 天前
influxdb group by(1d) 查询注意事项
influxdb
童安格粉丝10 天前
Grafana配置告警规则推送企微机器人服务器资源告警
机器人·企业微信·grafana·告警·dashboard·阈值
jekc86812 天前
Ubuntu安装grafana
linux·ubuntu·grafana
Jum朱12 天前
轻量级日志管理平台:Grafana Loki搭建及应用(详细篇)
grafana
OpsEye12 天前
Grafana功能菜单介绍
信息可视化·grafana
TiDB 社区干货传送门13 天前
使用 Grafana 展示多个TiDB集群的告警
linux·服务器·数据库·tidb·grafana
人生如叶13 天前
运维监控grafana+prometheus+node_exporter(&or mysqld_exporter)
运维·grafana·prometheus
BUG弄潮儿14 天前
Kube-Prometheus-Stack安装时初始化导入自定义Grafana dashboards
grafana·prometheus