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仅供参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/452593.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DataGrip工具使用技巧

文章目录 一、设置同时查看多个SQL控制台1.1、设置同时查看多个SQL控制台1.2、还原多个窗口为一个窗口 二、设置分别显示多次查询结果 以下整理DataGrip工具使用过程中的一些快捷方式或使用技巧。 一、设置同时查看多个SQL控制台 有时候我们需要同时查看多个SQL编辑器、SQL控制…

Java中出现中文乱码浅析与问题解决

一、编码介绍 字符编码是一种将字符映射到数字代码的规则或方式。在计算机中,所有的数据最终都以二进制形式存储,包括文本数据。因此,要在计算机中存储和处理文本,就需要将字符转换为对应的数字编码。 字符编码可以分为两种基本…

基于Java的高校学院网站(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学院院系模块2.2 竞赛报名模块2.3 教育教学模块2.4 招生就业模块2.5 实时信息模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 学院院系表3.2.2 竞赛报名表3.2.3 教育教学表3.2.4 招生就业表3.2.5 实时信息表 四、系…

《中学数学》杂志简介及投稿须知

《中学数学》杂志简介及投稿须知 《中学数学》是2001年被评为湖北省优秀期刊、湖北省优秀科技期刊。创刊于1979年,经国家新闻出版总署备案批准,由湖北省教育厅主管;湖北大学主办的省级优秀学术期刊,1992年(第一版),1996年(第二版…

为什么defineProps宏函数不需要从vue中import导入?

前言 我们每天写vue代码时都在用defineProps,但是你有没有思考过下面这些问题。为什么defineProps不需要import导入?为什么不能在非setup顶层使用defineProps?defineProps是如何将声明的 props 自动暴露给模板? 举几个例子 我们…

Linux-gdb调试

文章目录 前言查看(显示)源代码 list/l运行程序run/r打断点b查看断点删除断点打开/关闭断点逐过程 逐语句查看变量常显示continuefinishuntil修改指定变量退出gdb 前言 GDB,即GNU调试器(GNU Debugger),是G…

STL之deque容器代码详解

1 基础概念 功能: 双端数组,可以对头端进行插入删除操作。 deque与vector区别: vector对于头部的插入删除效率低,数据量越大,效率越低。 deque相对而言,对头部的插入删除速度回比vector快。 vector访问…

和泓海棠府——与阳光大海约会 悦享惬意生活

海南三亚海棠湾 四季如春的梦想在这里即可实现和泓海棠府 与阳光大海约会 悦享惬意生活 如果在三亚有一套房 你就可以把父母接过来一起住 尽己所能让老人圆一个海居梦 带着孩子一起在园林里探索自然 陪孩子度过每一个有趣的海边假期 你也可以随时沿着会唱歌的沙滩迎风漫…

【力扣白嫖日记】1341.电影评分

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 1341.电影评分 表:Movies 列名类型movie_idinttitlevarchar movie_id 是这个表的主键(具有唯一…

制作图片马:二次渲染(upload-labs第17关)

代码分析 $im imagecreatefromjpeg($target_path);在本关的代码中这个imagecreatefromjpeg();函数起到了将上传的图片打乱并重新组合。这就意味着在制作图片马的时候要将木马插入到图片没有被改变的部分。 gif gif图的特点是无损,我们可以对比上传前后图片的内容…

上海亚商投顾:沪指震荡调整 飞行汽车概念股持续爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整,深成指走势稍强,创业板指一度涨超1%,黄白二线走势分化&a…

每3秒一例骨折!别把骨质疏松不当病,新设备「双能X线骨密度仪」为您的健康加“骨”劲

随着社会老龄化日益加剧,我国骨质疏松患者人数已居世界首位。骨质疏松症已成为对中老年健康构成严重威胁的慢性疾病,且存在诊断率低、治疗率低、长期药物治疗依从性低的三低问题。 很多人认为的骨质疏松是一种老化的自然现象不同,这其实是一种…

springboot267大学生科创项目在线管理系统的设计与实现

# 大学生科创项目在线管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装大学生科创项目在…

Spring Schedule:Spring boot整合Spring Schedule实战讲解定时发送邮件的功能

🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏《Spring 狂野之旅:从入门到入魔》 &a…

【C++教程从0到1入门编程】第九篇:STL中Vector类

一、vector的介绍 1.vector的介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的&…

如何处理爬虫代理的404错误

目录 前言 一、什么是404错误 二、处理404错误的方法 1. 重新尝试请求 2. 使用备用代理 3. 日志记录 总结 前言 在进行网络爬虫开发过程中,经常会遇到一些特殊的错误,例如404错误。当我们使用代理服务器进行网络爬取时,有时候会遇到4…

vMware WorkStation创建虚拟机安装CentOS7,NAT模式配置网络

一、安装虚拟机 1、选择典型(推荐)配置 2、选择稍后安装操作系统 3、操作系统选择CentOS7 64位 4、虚拟机命名、选择安装位置 6、指定磁盘容量 7、指定磁盘容量 步骤: (1)、系统内存2GB (2)、…

vue项目:webpack打包优化实践

本文目录 一、项目基本信息二、分析当前项目情况1、使用 webpack-bundle-analyzer 插件2、使用 speed-measure-webpack-plugin 插件 三、解决构建问题1、caniuse-lite 提示的问题2、 warning 问题 四、打包速度优化1、修改source map2、处理 loader 五、webpack性能优化1、使用…

P4551 最长异或路径

最长异或路径 题目描述 给定一棵 n n n 个点的带权树,结点下标从 1 1 1 开始到 n n n。寻找树中找两个结点,求最长的异或路径。 异或路径指的是指两个结点之间唯一路径上的所有边权的异或。 输入格式 第一行一个整数 n n n,表示点数…

Threejs粒子水波纹效果

依赖 three(这个重要)react (这个不重要)ahooks(这个不重要)unocss(这个不重要) 效果 代码 import React, { useEffect, useRef } from react; import { useGetState } from ahoo…