当前位置: 首页 > news >正文

FastBee 2.0 开源版部署实战:Docker Compose 一键部署,10分钟完成物联网平台搭建

FastBee 2.0 开源版极速部署指南:Docker Compose 全流程解析

物联网技术正在重塑各行各业的运营模式,而一个稳定可靠的物联网平台是连接物理世界与数字世界的桥梁。FastBee 作为一款轻量级开源物联网平台,凭借其简洁的架构设计和丰富的功能集,成为中小企业快速搭建物联网系统的优选方案。本文将带您从零开始,通过 Docker Compose 完成 FastBee 2.0 开源版的完整部署,并深入解析平台的核心组件与使用技巧。

1. 环境准备与前置条件

在开始部署之前,我们需要确保基础环境满足运行要求。以下是经过验证的推荐配置:

  • 操作系统:Ubuntu 20.04/22.04 LTS 或 CentOS 7/8(其他 Linux 发行版也可运行,但可能需要额外配置)
  • 硬件资源
    • 最低配置:2核CPU / 4GB内存 / 50GB磁盘空间
    • 推荐配置:4核CPU / 8GB内存 / 100GB SSD(适用于设备量较大的场景)
  • 软件依赖
    • Docker 20.10.0+
    • Docker Compose 1.29.0+
    • Git(用于获取部署脚本)

对于 Docker 和 Docker Compose 的安装,可以使用以下快速安装命令:

# Docker 安装(适用于Ubuntu) sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update && sudo apt-get install -y docker-ce docker-ce-cli containerd.io # Docker Compose 安装 sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose

提示:生产环境建议使用固定版本的 Docker 和 Docker Compose,避免因版本更新导致兼容性问题。

2. 一键部署 FastBee 2.0

FastBee 提供了自动化部署脚本,极大简化了安装流程。以下是详细步骤:

  1. 获取部署脚本

    wget -c https://hub.fastbee.cn/resource/install.sh -O fastbee-install.sh chmod +x fastbee-install.sh
  2. 执行部署

    sudo ./fastbee-install.sh

    脚本运行后会出现版本选择界面:

    ======================================== 请选择要安装的版本: 1. 开源版 2. 商业版 3. 集群版 ========================================

    输入1选择开源版,脚本将自动完成以下操作:

    • 下载必要的 Docker 镜像
    • 创建持久化数据卷
    • 配置网络连接
    • 启动所有服务容器
  3. 验证服务状态

    docker-compose ps

    正常运行的输出应类似:

    Name Command State Ports ---------------------------------------------------------------------------- fastbee-mysql docker-entrypoint.sh mysqld Up 3306/tcp fastbee-redis docker-entrypoint.sh redis Up 6379/tcp fastbee-emqx /bin/sh -c /usr/bin/start.sh Up 4369/tcp, 8083/tcp, 8084/tcp, 8883/tcp, 18083/tcp fastbee-backend java -jar fastbee.jar Up 8080/tcp fastbee-frontend nginx -g daemon off; Up 80/tcp

部署完成后,可以通过浏览器访问http://<服务器IP>(默认端口80)进入平台。首次登录使用默认账号:

  • 用户名:admin
  • 密码:admin123

注意:出于安全考虑,首次登录后请立即修改默认密码,并在"系统管理"中配置适当的权限策略。

3. 平台核心组件解析

FastBee 2.0 采用模块化设计,各组件协同工作形成完整的物联网解决方案。以下是主要服务的功能说明:

组件名称技术栈默认端口功能描述
MySQLMySQL 5.73306存储平台配置信息、产品定义、设备元数据等结构化数据
RedisRedis 76379缓存设备状态、会话信息,提供高速数据访问
EMQXEMQX 5.01883/8083MQTT 消息代理,处理设备连接与消息路由(TCP 1883,WebSocket 8083)
后端服务Spring Boot8080提供 REST API,处理业务逻辑,包括设备管理、规则引擎、权限控制等
前端界面Vue.js + Element80管理控制台,提供可视化操作界面

网络通信架构

设备端 → (MQTT/TCP/HTTP) → EMQX → 后端服务 → 数据库 ↑ └── 规则引擎 → 第三方系统

4. 设备接入实战

FastBee 支持多种协议接入,下面以最常见的 MQTT 协议为例,演示设备接入流程:

  1. 创建产品

    • 登录控制台,进入"产品管理" → "新增产品"
    • 填写产品名称(如"温湿度传感器"),选择接入协议为"MQTT"
    • 配置认证方式(推荐使用"设备密钥")
  2. 定义物模型

    { "properties": [ { "name": "temperature", "identifier": "temp", "dataType": "decimal", "unit": "℃", "accessMode": "readOnly" }, { "name": "humidity", "identifier": "humi", "dataType": "decimal", "unit": "%", "accessMode": "readOnly" } ] }
  3. 创建设备

    • 在产品详情页点击"新增设备"
    • 记录自动生成的设备密钥(用于MQTT连接认证)
  4. 设备端代码示例(Python)

    import paho.mqtt.client as mqtt import json, random, time # 配置参数 BROKER = "your_server_ip" PORT = 1883 DEVICE_KEY = "device_123456" PRODUCT_KEY = "product_abc" # MQTT连接回调 def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client = mqtt.Client(client_id=DEVICE_KEY) client.on_connect = on_connect client.username_pw_set(DEVICE_KEY, DEVICE_KEY) client.connect(BROKER, PORT, 60) # 模拟数据上报 while True: payload = { "temp": round(random.uniform(20, 30), 1), "humi": round(random.uniform(40, 80), 1) } client.publish(f"/{PRODUCT_KEY}/{DEVICE_KEY}/property/report", json.dumps(payload)) time.sleep(30)
  5. 数据验证

    • 在控制台"设备管理"中找到对应设备
    • 查看"实时状态"页签,应能看到定期更新的温湿度数据
    • 在"数据监测"中可查看历史数据曲线

提示:生产环境中应考虑实现断线重连机制,并添加TLS加密传输以提高安全性。

5. 进阶配置与优化

5.1 性能调优建议

对于设备量较大的场景,建议调整以下参数:

  1. EMQX 配置优化

    # 编辑 docker-compose.yml,在emqx服务下添加环境变量 environment: - EMQX_LISTENERS__TCP__DEFAULT__ACCEPTORS=64 - EMQX_LISTENERS__TCP__DEFAULT__MAX_CONNECTIONS=102400 - EMQX_LISTENERS__SSL__DEFAULT__ACCEPTORS=32 - EMQX_NODE__PROCESS_LIMIT=2097152
  2. MySQL 性能优化

    # 在MySQL容器中创建 /etc/mysql/conf.d/custom.cnf [mysqld] innodb_buffer_pool_size = 1G innodb_log_file_size = 256M max_connections = 500

5.2 安全加固措施

  1. 启用TLS加密

    # 生成自签名证书(生产环境建议使用CA签发证书) openssl req -x509 -newkey rsa:4096 -nodes -keyout emqx.key -out emqx.pem -days 365 # 修改EMQX配置 volumes: - ./emqx.pem:/etc/emqx/certs/cert.pem - ./emqx.key:/etc/emqx/certs/key.pem environment: - EMQX_LISTENERS__SSL__DEFAULT__ENABLED=true - EMQX_LISTENERS__SSL__DEFAULT__CERTFILE=/etc/emqx/certs/cert.pem - EMQX_LISTENERS__SSL__DEFAULT__KEYFILE=/etc/emqx/certs/key.pem
  2. 防火墙规则配置

    # 仅开放必要端口 sudo ufw allow 80/tcp # 前端 sudo ufw allow 443/tcp # HTTPS(如需) sudo ufw allow 8883/tcp # MQTT over SSL sudo ufw enable

5.3 数据持久化配置

为防止容器重启导致数据丢失,应配置持久化存储:

# 在docker-compose.yml中添加以下卷配置 volumes: mysql_data: driver: local redis_data: driver: local emqx_data: driver: local services: mysql: volumes: - mysql_data:/var/lib/mysql redis: volumes: - redis_data:/data emqx: volumes: - emqx_data:/opt/emqx/data

6. 常见问题排查

部署和使用过程中可能会遇到以下典型问题:

问题1:前端访问显示502错误

  • 检查Nginx容器是否正常运行:docker logs fastbee-frontend
  • 验证后端API是否可用:curl http://localhost:8080/api/v1/system/health

问题2:设备无法连接MQTT

  • 检查EMQX服务状态:docker exec -it fastbee-emqx emqx_ctl status
  • 查看连接日志:docker logs fastbee-emqx | grep "connection"
  • 验证网络连通性:telnet your_server_ip 1883

问题3:数据上报但平台不显示

  • 检查物模型定义是否匹配设备上报的JSON字段
  • 查看后端日志:docker logs fastbee-backend | grep "device message"
  • 验证Redis是否正常工作:docker exec -it fastbee-redis redis-cli ping

问题4:系统运行缓慢

  • 检查资源使用情况:docker stats
  • 分析MySQL慢查询:docker exec -it fastbee-mysql mysql -uroot -p -e "SHOW FULL PROCESSLIST"
  • 调整JVM参数(后端服务):
    environment: - JAVA_OPTS=-Xms2g -Xmx2g -XX:+UseG1GC

7. 平台功能扩展与实践

FastBee 开源版虽然功能完备,但实际项目中往往需要根据业务需求进行扩展。以下是几个典型场景的实现思路:

场景1:自定义告警规则

  1. 通过"规则引擎"创建新规则
  2. 设置触发条件(如温度>30℃持续5分钟)
  3. 配置动作(发送邮件/短信通知)

场景2:第三方系统集成

# 示例:通过FastBee API获取设备数据 import requests api_url = "http://your_server_ip/api/v1/device/data" headers = {"Authorization": "Bearer your_access_token"} params = { "productKey": "product_abc", "deviceKey": "device_123456", "limit": 100 } response = requests.get(api_url, headers=headers, params=params) data = response.json() print(data)

场景3:数据可视化大屏

  1. 使用内置的ECharts组件创建仪表盘
  2. 配置数据源为设备物模型属性
  3. 设置自动刷新间隔(如30秒)
  4. 通过iframe嵌入到第三方系统

对于需要更高性能或更复杂功能的场景,可以考虑升级到商业版,获得以下增强能力:

  • 可视化规则引擎
  • 多租户支持
  • 集群部署
  • 工业协议(Modbus/JT808)支持
http://www.jsqmd.com/news/1165969/

相关文章:

  • Anaconda Python 3.9 环境:TensorFlow 2.x CPU/GPU 双版本一键切换方案
  • AD7175-8与STM32L4S5ZI高精度数据采集系统设计指南
  • UE5材质实例化:7种常用材质参数化设计与性能优化
  • 企业动态首页插件技术解析:基于JVS低代码的多角色个性化工作台实现
  • 2025年C++性能调优:从代码优化到系统级优化的思维转变与实践
  • Turbo Intruder:Python驱动的高并发Web安全测试利器
  • 腾讯混元Hy3 MoE模型实战:从部署到代码生成与Agent应用
  • 3分钟解决Windows激活烦恼:KMS智能激活工具全面指南
  • 台风实时与历史详情查询免费 API 接口完整教程
  • C++进阶(8)——异常
  • 终极免费方案:3步获取Steam动态壁纸的完整指南
  • Codex Computer Use插件:让AI真正操作桌面应用的自动化核心
  • TikTok广告素材制作工具推荐:抖音广告素材制作批量生成工具怎么选?
  • Android端侧AI落地:llama.cpp移植实战与运行时优化
  • VPot 2401 文字转语音工具评测:Edge vs Azure 接口,3种音色合成效果对比
  • 智能车方向控制实战:STM32 + PID 调参 3 步法,赛道循迹误差 < 5%
  • 2026年7月测评:什么八字排盘软件好用?从复盘链路看玄易APP位列第一 - 行业百科测评
  • 【计算机大数据毕业设计案例】基于文本聚类的网络舆情话题挖掘系统的设计与实现 基于 Python 爬虫的突发事件舆情追踪系统(程序+文档+讲解+定制)
  • Unity多人游戏开发:Mirror框架下Multiple Additive Scenes场景管理与网络优化详解
  • 科大讯飞X2办公本:专注语音转写与手写延迟的智能办公屏
  • 冒险岛资源编辑神器:Harepacker-resurrected全面指南与实战教程
  • CD4511+NE555 过流检测电路:数码管闪烁提示的 2 种实现方案对比
  • TS2007FC与PIC18F4585构建高性能音频系统方案
  • C++控制台校友录管理系统:面向对象编程与文件I/O实战
  • JavaScript 类型转换实战:3 种 `valueOf` 与 `toString` 优先级测试
  • 哔哩下载姬DownKyi:从技术原理到合规使用的完整解析
  • Foundry Managed Compute:托管GPU服务如何简化Hugging Face模型部署运维
  • 豆包生成的代码能用吗?程序员实战验证四断点与五步法
  • 为什么你的提示词总被降权?揭秘Midjourney 6.1新算法对关键词位置、标点、语言的隐性惩罚机制
  • 2026年工单系统选型方法:自动化深度、集成能力与部署适配三维评估