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.0Docker Compose 1.29.0Git用于获取部署脚本对于 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 [archamd64] 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.0FastBee 提供了自动化部署脚本极大简化了安装流程。以下是详细步骤获取部署脚本wget -c https://hub.fastbee.cn/resource/install.sh -O fastbee-install.sh chmod x fastbee-install.sh执行部署sudo ./fastbee-install.sh脚本运行后会出现版本选择界面 请选择要安装的版本: 1. 开源版 2. 商业版 3. 集群版 输入1选择开源版脚本将自动完成以下操作下载必要的 Docker 镜像创建持久化数据卷配置网络连接启动所有服务容器验证服务状态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 1883WebSocket 8083后端服务Spring Boot8080提供 REST API处理业务逻辑包括设备管理、规则引擎、权限控制等前端界面Vue.js Element80管理控制台提供可视化操作界面网络通信架构设备端 → (MQTT/TCP/HTTP) → EMQX → 后端服务 → 数据库 ↑ └── 规则引擎 → 第三方系统4. 设备接入实战FastBee 支持多种协议接入下面以最常见的 MQTT 协议为例演示设备接入流程创建产品登录控制台进入产品管理 → 新增产品填写产品名称如温湿度传感器选择接入协议为MQTT配置认证方式推荐使用设备密钥定义物模型{ properties: [ { name: temperature, identifier: temp, dataType: decimal, unit: ℃, accessMode: readOnly }, { name: humidity, identifier: humi, dataType: decimal, unit: %, accessMode: readOnly } ] }创建设备在产品详情页点击新增设备记录自动生成的设备密钥用于MQTT连接认证设备端代码示例Pythonimport 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_idDEVICE_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)数据验证在控制台设备管理中找到对应设备查看实时状态页签应能看到定期更新的温湿度数据在数据监测中可查看历史数据曲线提示生产环境中应考虑实现断线重连机制并添加TLS加密传输以提高安全性。5. 进阶配置与优化5.1 性能调优建议对于设备量较大的场景建议调整以下参数EMQX 配置优化# 编辑 docker-compose.yml在emqx服务下添加环境变量 environment: - EMQX_LISTENERS__TCP__DEFAULT__ACCEPTORS64 - EMQX_LISTENERS__TCP__DEFAULT__MAX_CONNECTIONS102400 - EMQX_LISTENERS__SSL__DEFAULT__ACCEPTORS32 - EMQX_NODE__PROCESS_LIMIT2097152MySQL 性能优化# 在MySQL容器中创建 /etc/mysql/conf.d/custom.cnf [mysqld] innodb_buffer_pool_size 1G innodb_log_file_size 256M max_connections 5005.2 安全加固措施启用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__ENABLEDtrue - EMQX_LISTENERS__SSL__DEFAULT__CERTFILE/etc/emqx/certs/cert.pem - EMQX_LISTENERS__SSL__DEFAULT__KEYFILE/etc/emqx/certs/key.pem防火墙规则配置# 仅开放必要端口 sudo ufw allow 80/tcp # 前端 sudo ufw allow 443/tcp # HTTPS如需 sudo ufw allow 8883/tcp # MQTT over SSL sudo ufw enable5.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/data6. 常见问题排查部署和使用过程中可能会遇到以下典型问题问题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:UseG1GC7. 平台功能扩展与实践FastBee 开源版虽然功能完备但实际项目中往往需要根据业务需求进行扩展。以下是几个典型场景的实现思路场景1自定义告警规则通过规则引擎创建新规则设置触发条件如温度30℃持续5分钟配置动作发送邮件/短信通知场景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, headersheaders, paramsparams) data response.json() print(data)场景3数据可视化大屏使用内置的ECharts组件创建仪表盘配置数据源为设备物模型属性设置自动刷新间隔如30秒通过iframe嵌入到第三方系统对于需要更高性能或更复杂功能的场景可以考虑升级到商业版获得以下增强能力可视化规则引擎多租户支持集群部署工业协议Modbus/JT808支持