一、概念简介

EMQX实现边缘网关的边缘采集、边缘调度、边缘计算、边缘存储、边缘管理等边缘功能是由一系列服务集组成,在本次体验中,业务数据流向及涉及相关服务如下图所示:

emq服务开启_边缘网关

  • EMQX Neuron、EMQX Edge、EMQX Kuiper、EMQX Edge Manager是EMQX在边缘应用的产品系列:EMQX Neuron是工业边缘网关,可以完成大多数工业协议及常规协议的数据接入并解释转换为MQTT协议;EMQX Edge可以看做轻量级多协议物联网边缘消息中间件,是小号版的EMQX  Broker或EMQX Enterprise;EMQX Kuiper实现边缘计算,支持轻量级物联网边缘分析、流式处理;EMQX Edge Manager基于web 界面实现对 Neuron、Edge 和 Kuiper 可视化管理。
  • TDengine Edge是涛思数据的一款开源时序数据库,本次体验中,主要用来存储EMQX Kuiper输出数据。
  • Grafana是一款开源的、功能齐全的度量仪表盘和图形编辑器,通过加载插件支持从TDengine直接读取存储数据做各种仪表盘展示及数据统计分析。

二、安装部署

本次体验采用vmware安装了centos7桌面版虚拟机,在其上安装docker和docker-compose。

1)安装docker,root用户,以下安装命令执行:

安装依赖:$yum install -y yum-utils device-mapper-persistent-data lvm2

配置阿里云源:$yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker:$yum install docker-ce docker-ce-cli containerd.io

启动docker: $systemctl start docker

测试docker:$docker run hello-world

2)安装docker-compose,root用户,以下安装命令执行:

安装(要安装其他版本的 Compose,请替换 1.29.1):$curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

将可执行权限应用于二进制文件:$ chmod +x /usr/local/bin/docker-compose

创建软链:$ ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功:$ docker-compose --version

3)去https://github.com/emqx/edge-stack下载安装包,这是基于 docker 和 docker-compose 的一套整合了所有 EMQ 边缘软件以及TDengine 、Grafana的解决方案,通过配置yaml配置文件及run.sh脚本实现一站式部署:

emq服务开启_物联网_02

下载:wget https://github.com/emqx/edge-stack/archive/refs/heads/master.zip或git clone https://github.com/emqx/edge-stack.git

下载完成后,如果不在本虚拟机进行web管理,而是在主机win系统操作,去修改配置的yml文件:

cd edge-stack/develpoer-scripts && gedit docker-compose.yml

emq服务开启_物联网_03

*修改 docker-compose.yml 中的 ports ,删除127.0.0.1。 例如,kuiper 端口 "127.0.0.1:9081:9081"应更改为 "9081:9081",支持kuiper外网访问。

*修改kuiper的mqtt默认流接口的配置

完成修改后,启动(root):./run.sh

注意:若出现异常“iptables: No chain/target/match by that name”,需要启动防火墙(root):
systemctl start firewalld.service

emq服务开启_EMQX_04

三、配置测试

1)在浏览器登录:http://your-host:9082,其登录账号密码:admin/public,如本次体验是http://192.168.174.130:9082。注:虚拟机地址192.168.174.130,主机(win)地址192.168.174.1。

2)登录进入后,需配置neuron,实现数据采集,进入服务管理/Neuron栏目,点击列表的服务名称进入neuron配置界面

emq服务开启_物联网_05

3)配置采集信息点,进入object设置页面,编辑驱动,并导入案例信息点,在edge-stack/develpoer-scripts下的neuron_batch_modbus_5.xlsx,完成配置后点击发送完成配置生效。

emq服务开启_边缘网关_06

emq服务开启_物联网_07

 

4)启动modbus Slave完成数据推送,然后去状态监控界面查看数据采集状况。

emq服务开启_emq服务开启_08

emq服务开启_物联网_09

5)前往EMQX Edge查看Neuron是否作为客户端成功连接,并查看主题消息情况

emq服务开启_TDengine_10

emq服务开启_物联网_11

6)在EMQX Manager管理界面,配置kuiper,完成流配置、规则配置

emq服务开启_边缘网关_12

emq服务开启_物联网_13

emq服务开启_边缘网关_14

进入源配置,可以查看mqtt的默认配置就是我们前面修改docker-compose.yml时kuiper调整的信息(MQTT_SOURCE__DEFAULT__SERVERS: "[tcp://192.168.174.130:1883,tcp://127.0.0.1:1883,tcp://manager-edge:1883]")。

emq服务开启_TDengine_15

7) 进入kuiper的插件配置页面,先配置TDengine的插件,后面配置规则时,需实现输出数据写入TDengine数据库。

emq服务开启_emq服务开启_16

进入kuiper规则配置页面,配置规则,实现简单的SQL刷选数据转写到TDengine数据库。

emq服务开启_EMQX_17

emq服务开启_边缘网关_18

进入 EMQX kuiper容器(docker exec -it manager-kuiper sh),进行SQL语句验证,另外进入容器后,可以通过查看日志tail -f log/stream.log进行相关异常排查

emq服务开启_TDengine_19

8)进入Grafana的web页面(http://192.168.174.130:3000),admin/admin,配置TDengine插件,创建一个空plane,创建两个查询:

1)temperature :SELECT ts,temperature FROM db.t;

2)humidity :SELECT ts,humidity FROM db.t;

emq服务开启_EMQX_20

emq服务开启_物联网_21

9)可以从panel Title下拉框菜单转入Explore页面查看结果,整个业务数据链OK。

emq服务开启_EMQX_22

emq服务开启_emq服务开启_23