系统架构:mqtt.fx+emqx4.4.3+telegraf1.21+infludb2.2+grafana8.4.1
系统环境:(ubuntu18.04)
本文绝对傻瓜式教程,照着步骤操作,点点鼠标即可完成,
如果还有问题,欢迎给博主留言!!!!!!
关于物联网监控系统,当前最流行的方法就是:emq+influxdb+grafna,其中EMQX负责采集终端设备数据, influxdb数据库负责存储数据,grafana负责读取数据,并以仪表盘形式进行监控报警。网上也有很多学习的文章,可大部分都是残缺不全,没有一个系统性的介绍,看完后也是一知半解。此文可以说是网络上最全面的教程,非常详细讲解了整个系统的搭建步骤,每一步除了用文字介绍外,还用截图方式进行直观说明,真正的傻瓜式教程,开发者只需要逐步照做,即可完成整个系统的搭建(当然了,如果连ubuntu 都没听说过的同学,那就不用往下看了)。
=====================================================================
整个系统分4个模块:
- 数据采集:mqtt.fx 模拟终端设备产生数据,通过emqx服务器进行数据采集。
- 数据存储:telegraf作为插件,订阅emqx数据并存储到influxdb2数据库。
- 数据监控:grafana 读取influxdb2 数据,进行图形监控。
- 数据预警:配置grafana预警策略,实现报警功能。
=====================================================================
详细操作步骤如下:
- 数据采集:
- 搭建emqx服务器:
- 下载emqx:
Sudo wget https://www.emqx.com/zh/downloads/enterprise/4.4.3/emqx-ee-4.4.3-otp24.1.5-3-ubuntu18.04-amd64.deb
- 安装:
sudo apt install ./emqx-ee-4.4.3-otp24.1.5-3-ubuntu18.04-amd64.deb
- 运行
sudo emqx start
以上截图表示emqx服务器安装成功。
- MQTT.fx 客户端数据模拟:
- 使用MQTT-fx-1.7.1 首先点击齿轮按钮,进行参数设置
下图中IP地址,填写EMQX服务器主机ip,其它按图中默认设置即可
若有账户要求,则填入登陆账户及密码即可
然后Apply和OK就配置完成。
- 连接EMQX,模拟数据发送和订阅
选择myprofile,点击右边按钮【connect】连接EMQX server
连接成功后,如下图:
-
-
-
- 出现绿色小球,表示连接成功
- 选择标签【publish】
- 输入你自己的topic,此处是 sensors/a
- 输入要想此topic 发送的内容,此处是 sensor data test
- 点击【publish】,发送主题数据到emqx server
-
-
- 查看EMQX broker 数据
访问ip:18083 ,访问emqx客户端页面如下,输入初始用户/密码 admin/public, 点击【登录】进入emqx 控制台:
在控制台页面,操作如下:
- 选择【工具-websocket】
- 点击按钮【连接】
- 在topic 输入【sensors/a】
- 点击【订阅】
订阅成功后,在MQTT-fx 页面,重新点击【publish】发送消息
回到EMQX 控制台页面, MQTT-fx 发送的数据,已经被接收到
以上说明EMQX 已经能够正常接收到来自MQTT 设备的数据。
- 配置规则引擎:EMQX server 收到设备数据后, 需要做相应规则引擎,以便将数据存储到时序数据库influxdb。
- 创建资源:在EMQ 左边栏点击【规则引擎-资源-创建】如下:
资源类型选择【influxDB UDP 服务】,自动生成资源ID:【resource:329849】其它默认,确定
- 创建规则:在EMQ 左边栏点击【规则引擎-规则-创建】如下:
编辑规则,如下图
- 输入SQL 语法
- 自动生成规则ID,此处为【rule:902869】, 后面会用到。
- 添加动作,也就是当收到数据后,如何处理数据
添加动作:配置如下
- 选择influxdb 数据库
- 选择前面创建的资源ID
- 任意输入measurement,作为influxdb 获取数据的类别
- 填写键值,要与前面SQL select 里面保持一致,此处my_msg
其余保持默认,确定即可
至此,完成EMQX 数据的采集,以数据持久化规则引擎的配置。
- 数据存储:
- 安装influxdb
sudo wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.7-amd64.deb
sudo dpkg -i influxdb2-2.0.7-amd64.deb
sudo service influxdb start
以上表示安装成功。
web访问ip:8086 ,influxdb客户端页面如下:
点击【Get Started】进入influxdb控制台:
任意设置 username,password, organization name, bucket name,点击【continue】
- 创建telegraf 配置文件:
- 配置输出,点击【data-telegraf-influxdb output plugin】
- 选择bucket,此处为【mybucket】
- 点击下载文件,并将文件改名为 telegraf.conf
- 配置mqtt 输入:
点击【data-sources】,在搜索栏输入mqtt后,下面会出现【MQTT】图标
点击【MQTT】图标,生成mqtt 配置数据,点击下方按钮【copy to clipboard】,将配置数据粘贴到 telegraf.conf 文件中。
- 安装并运行telegraf:
sudo wget https://dl.influxdata.com/telegraf/releases/telegraf_1.21.4-1_amd64.deb
sudo dpkg -i telegraf_1.21.4-1_amd64.deb
telegraf -version
出现telegraf 版本号,说明安装成功。
配置telegraf.conf:
打开前面生成的telegraf.conf 修改如下,将其替换 /etc/telegraf/telegraf.conf 文件
设置 token 的环境变量
运行telegraf.conf
sudo service telegraf start
telegraf --config etc/telegraf/telegraf.conf
下图说明telegraf 已正常工作
- 验证数据是否正确存储
- MQTT 模拟发送数据:
实例中,发送100,150,200 等
-
- influxdb中查看是否收到数据
顺序选择【explore-mybucket-mqtt_consumer-value】,然后点击6【submit】,如下图说明数据已收到,并以曲线形式进行显示:
至此,数据已经成功存储在influxdb 数据库了。
以上已完成【数据采集】和【数据存储】的配置说明,另外2个部分关于 Grafana【数据监控】和【数据预警】,继续阅读完整内容,请点击下面链接:
===================================================================
Grafana【数据监控】和【数据预警】链接地址: https://blog.csdn.net/zchill/article/details/124727674
===================================================================
本文仅供个人阅读学习,若有转载需求,请联系博主获取授权,严禁私自转载。