EMQ X + TDengine + Grafana 环境搭建教程

本教程详细介绍了如何在Ubuntu 18.04上安装和配置EMQ X MQTT broker、TDengine数据库以及Grafana可视化工具。首先,从官方网站下载并安装EMQ X,然后通过Docker部署TDengine。接着,安装Grafana并添加TDengine数据源插件。最后,利用规则引擎将EMQ X的数据写入TDengine,并在Grafana中创建面板展示数据。
摘要由CSDN通过智能技术生成

EMQ X + TDengine + Grafana 环境搭建教程
操作系统:ubuntu 18.04 LTS
EMQ X:EMQ 官网 https://www.emqx.io/cn/
TDengine:涛思数据官网 https://www.taosdata.com/cn/
Grafana:Grafana 官网 https://grafana.com/

  1. 安装 EMQ (开源版本: EMQ X Broker)
    去官网下载 EMQ(官网网址: https://www.emqx.io/cn/ )下载 zip 压缩包
    (docker 建议不要下载,不好修改,慎用)
    下载压缩包 : wget https://www.emqx.io/cn/downloads/broker/v4.2.2/
    emqx-ubuntu18.04-4.2.2-x86_64.zip
    解压下载好的压缩包
    unzip emqx-ubuntu18.04-4.2.2-x86_64.zip
    运行 EMQ(以 console 模式启动 EMQ X 方便调试): ./bin/emqx console
    EMQ 启动成功后浏览器访问 http://127.0.0.1:18083 访问 EMQ X 管理控制台
    Dashboard,使用 默认用户名:admin 密码: public 完成初次登录。
  2. 安装 TDengine(以 docker 方式安装)
    第一次启动 TDengine:
    拉取并启动容器 :sudo docker run -d --name tdengine -p 6030-6041:6030-6041
    tdengine/tdengine:latest
    启动以后检查容器运行的状态,看看是否成功启动 : sudo docker ps -a
    第二次及以上启动 TDengine:
    查看容器状态 : sudo docker ps -a
    重启 TDengine 容器: sudo docker restart + CONTAINER ID 号
  3. 安装 Grafana(可视化数据库界面)
    第 1 页 共 16 页安装相关环境:sudo apt-get install -y adduser libfontconfig1
    下载 Grafana : wget https://dl.grafana.com/oss/release/
    grafana_7.2.1_amd64.deb
    安装 Grafana : sudo dpkg -i grafana_7.2.1_amd64.deb
    启动 Grafana : sudo service grafana-server start
    停止 Grafana:sudo service grafana-server stop
    为 Grafana 添加 TDengine 数据源插件
    下载插件:git clone https://github.com/taosdata/TDengine.git
    拷贝插件到相关位置:sudo cp -r ./TDengine/minidevops/grafana/tdengine
    /var/lib/grafana/plugins/
    重启 Grafana : sudo service grafana-server restart
    Grafana 启动成功后浏览器访问 http://127.0.0.1:3000 访问 Grafana 可视化面
    板,使用 默认用户名:admin 密码:admin 完成初次登录,登录后按照提示修改密码
    使用新密码登录进入主界面:
    测试应用
    本文模拟物联网环境数据采集场景,假设现有一定数据的环境数据采集点,所有采集点
    数据均通过 MQTT 协议 传输至采集平台(MQTT Publish),主题设计如下:
    sensor/data
    传感器发送的数据格式为 JSON,数据包括传感器采集的温度、湿度、噪声音量、 PM10、
    PM2.5、二氧化硫、二氧化氮、一氧化碳、传感器 ID、区域、采集时间等数据。
    {
    “temperature”: 30,
    “humidity” : 20,
    “volume”: 44.5,
    “PM10”: 23,
    第 2 页 共 16 页"pm25": 61,
    “SO2”: 14,
    “NO2”: 4,
    “CO”: 5,
    “id”: “10-c6-1f-1a-1f-47”,
    “area”: 1,
    “ts”: 1596157444170
    }
    现在需要实时存储以便在后续任意时间查看数据,提出以下的需求:
    每个设备按照每 5 秒钟一次的频率进行数据上报,数据库需存储每条数据以供后续回
    溯分析;
    通过可视化系统查看 任意区域、任意时间区间内 的指标数据,如平均值、最大值、最
    小值。
    操作步骤

配置 EMQ X 存储数据到 TDengine
TDengine 创建数据库与数据表
进入 TDengine Docker 容器: docker exec -it tdengine bash
创建 test 数据库:
1.taos
2.create database test;
创建 sensor_data 表,关于 TDengine 数据结构以及 SQL 命令(参见
https://www.taosdata.com/cn/documentation20/taos-sql/#表管理 ):
use test;
CREATE TABLE sensor_data (
ts timestamp,
temperature float,
humidity float,
volume float,
PM10 float,
pm25 float,
第 3 页 共 16 页SO2 float,
NO2 float,
CO float,
sensor_id NCHAR(255),
area TINYINT,
coll_time timestamp
);
2.
配置 EMQ X 规则引擎
首先把 EMQ X 更换为中文界面
打开 EMQ X Dashboared,进入 规则引擎 -> 规则 页面,点击 创建 按
钮进入创建页面。
第 4 页 共 16 页规则 SQL
规则 SQL 用于 EMQ X 消息以及事件筛选,以下 SQL 表示从
sensor/data 主题筛选出 payload 数据:
SELECT
payload
FROM
“sensor/data”
如下图所示配置 SQL 测试,payload 填写如下所示
{
“temperature”:30,
“humidity”:20,
“volume”:44.5,
“PM10”:23,
“pm2.5”:61,
“SO2”:14,
“NO2”:4,
“CO”:5,
“id”:“10-c6-1f-1a-1f-47”,
“area”:1,
“ts”:1596157444170
}
第 5 页 共 16 页测试结果如下所示为正确(使用 SQL 测试功能,输入测试数据进行
筛选结果测试,测试有结果且输出内容如下,标明 SQL 编写正确):
{
“payload”:
“{“temperature”:30,“humidity”:20,“volume”:44.5,“PM10”:23,“pm
2.5”:61,“SO2”:14,“NO2”:4,“CO”:5,“id”:“10-c6-1f-1a-1f-47”,“are
a”:1,“ts”:1596157444170}”
}
响应动作
第 6 页 共 16 页为支持各种不同类型平台的开发, TDengine 提供符合 REST 设计标准的
API。通过 RESTful Connector
(https://www.taosdata.com/cn/documentation20/connector/#RESTful-Co
nnector) 提供了最简单的连接方式,即使用 HTTP 请求携带认证信息与要执
行的 SQL 操作 TDengine。
使用 EMQ X 开源版中的发送到 Web 服务即可通过 RESTful Connector
写入数据到 TDengine。即将到来的 EMQ X 企业版 4.1.1 版本将提供原生更
高性能的写入 Connector。
响应动作创建过程:点击响应动作下的添加按钮,在弹出框内选择 发送
数据到 Web 服务,点击 新建资源 新建一个 WebHook 资源。
第 7 页 共 16 页发送到 Web 服务需要两个数据,一个是关联资源,另一个是消息内容模
板。
关联资源:HTTP

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
emqx是一个开源的MQTT消息代理,而TDengine是一个高性能时序数据库。数据从emqx写入TDengine可以通过以下步骤实现: 1. 安装和配置emqx:首先,你需要安装和配置emqx消息代理。你可以从emqx官方网站下载并安装emqx。安装完成后,你需要打开emqx的配置文件,并确保将其配置为接受和处理要写入TDengine的数据。 2. 创建TDengine数据库和表:在将数据写入TDengine之前,你需要在TDengine中创建一个数据库和一个数据表。可以使用TDengine提供的命令行工具或者客户端来完成这个步骤。 3. 配置emqx插件:emqx提供了一个TDengine插件,用于将数据发送到TDengine。你需要将这个插件启用并在配置文件中进行相关的配置,如指定TDengine数据库的连接信息、表名等。 4. 数据写入:当插件配置完成后,emqx将会自动将接收到的消息数据发送到TDengine。你可以使用MQTT协议或者其他支持的协议来向emqx发送数据,emqx将会将这些数据发送给TDengine进行存储。 5. 数据查询和分析:一旦数据写入TDengine,你就可以使用TDengine提供的查询语言和工具来对数据进行查询和分析。你可以编写SQL语句来检索和过滤数据,并使用可视化工具来展示查询结果。 总之,通过安装和配置emqx插件,设置TDengine数据库和表,以及发送消息数据到emqx,你可以实现将数据从emqx写入TDengine的过程,并利用TDengine的查询和分析功能来处理这些数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值