本文将介绍边缘端安装配置的全过程
一、前期准备
1、边缘IOT网关
品牌联想,型号ECG-AR70E,采用Ubuntu18.04操作系统
其他品牌IOT网关亦可,具体操作系统,能够安装边缘侧软件即可。
1.1 联想默认账号密码
操作系统root/lenovo,使用xshell等工具登录
远程桌面iotmusic,使用vnc viewer登录
1.2 登录系统配置网络
该网关具有两个有线网卡和wifi模块,可以连接有线和无线网络。
配置网络后,获取系统IP地址,便于后续登录调试
安装ping和telnet命令<非必须>
sudo apt update
sudo apt install iputils-ping telnet vim
将LAN2口<Ethernet connection 1>IP地址配置成:192.168.5.201,方便笔记本直连调试
1.3 修改主机名
hostnamectl set-hostname CY04
1.4 时间同步
如无法访问外网且无时间服务器,暂无需配置
1、以下操作在root用户下执行
sudo su
2、检查是否安装ntpdate时间同步客户端,查看完整路径
whereis ntpdate
如路径为:/usr/sbin/ntpdate
如没有安装使用 apt install -y ntpdate 进行安装
3、手动同步时间
10.89.17.12为内部时间服务器
/usr/sbin/ntpdate 10.89.17.12
4、定时同步时间<每小时第1分钟开始同步,并记录日志>
crontab -e
1 * * * * /usr/sbin/ntpdate 10.89.17.12 >> /var/log/date.log
5、查看执行日志
cat /var/log/date.log
1.5 去除开机登录页面
vim /usr/share/lightdm/lightdm.conf.d/60-xubuntu.conf
去除#修改:autologin-user=root
2、工具准备
本例为了方便安装部署,使用docker容器及docker-compose工具进行软件部署安装,安装过程需要能够访问互联网。
2.1 docker安装
推荐使用安装脚本一键安装,视网络情况,过程时间较长,请耐心等待
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable docker && systemctl start docker
查看版本:docker -v
2.2 docker-compose安装
离线安装方法
scp root@10.89.25.67:/home/data/share/docker-compose /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
或者在线下载,运行以下命令安装
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-uname -s
-uname -m
> /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
查看版本:docker-compose -v
2.3 离线加载docker镜像
mkdir /opt/share
cd /opt/share
scp root@10.89.25.67:/home/data/share/postgres.tar ./
scp root@10.89.25.67:/home/data/share/tb_edge.tar ./
scp root@10.89.25.67:/home/data/share/nodered.tar ./
scp root@10.89.25.67:/home/data/share/ekuiper.tar ./
docker load -i ./postgres.tar
docker load -i ./tb_edge.tar
docker load -i ./nodered.tar
docker load -i ./ekuiper.tar
二、部署安装thingsboard-edge
1、创建文件夹
mkdir /opt/thingsboard
cd /opt/thingsboard
mkdir -p ./data && sudo chown -R 799:799 ./data
mkdir -p ./logs && sudo chown -R 799:799 ./logs
mkdir -p ./db && sudo chown -R 799:799 ./db
务必要给文件夹分配权限,不然后面启动会报错。
2、准备安装文件
apt install nano -y
nano docker-compose.yml
保存时ctrl+o回车,ctrl+x退出
输入以下内容
CLOUD_ROUTING_KEY: 云端的key
CLOUD_ROUTING_SECRET: 云端的secret
CLOUD_RPC_HOST: 云端IP
CLOUD_RPC_PORT: 云端RPC端口,默认7070
version: '2.2'
services:
thingsboard:
restart: always
image: "thingsboard/tb-edge:3.4.0EDGE"
ports:
- "8080:8080"
- "1883:1883"
- "5683-5688:5683-5688/udp"
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/tb-edge
SPRING_DATASOURCE_USERNAME: thingsboard
SPRING_DATASOURCE_PASSWORD: thingsboard
CLOUD_ROUTING_KEY: 314de457-8d82-8933-0e31-2b847xxxxxx
CLOUD_ROUTING_SECRET: yant3wwmp6vrxikxxxxx
CLOUD_RPC_HOST: 10.89.25.65
CLOUD_RPC_PORT: 7070
volumes:
- ./data:/data
- ./logs:/var/log/tb-edge
postgres:
restart: always
image: "postgres:12"
ports:
- "5432:5432"
environment:
POSTGRES_DB: tb-edge
POSTGRES_USER: thingsboard
POSTGRES_PASSWORD: thingsboard
volumes:
- ./db:/var/lib/postgresql/data
3、下载镜像
上面如果离线load过镜像,docker-compose pull,此步骤跳过
4、部署并启动
docker-compose up -d
停止、启动、查看日志
docker-compose stop
docker-compose start
docker-compose logs -f thingsboard
卸载使用如下命令
docker-compose down
rm -rf ./db ./logs ./data
三、部署安装node-red
mkdir /opt/nodered
cd /opt/nodered
sudo docker run -it -d --name=nodered --restart=always --user=root --net=host --privileged=true -v /opt/nodered:/data -v /dev:/dev:ro -e TZ=Asia/Shanghai nodered/node-red:3.0.1
离线安装节点
scp root@10.89.25.67:/home/data/share/nodered-data.tar /opt
#停止容器
docker stop nodered
cd /opt
rm -rf nodered/
#解压文件
tar -zxvf nodered-data.tar
#启动容器
docker start nodered
四、部署安装kuiper
mkdir /opt/kuiper
cd /opt/kuiper
sudo docker run -p 9081:9081 -d --restart=always --name kuiper -e MQTT_SOURCE__DEFAULT__SERVER="tcp://172.17.0.1:1883" lfedge/ekuiper:1.6.1-slim
五、使用教程
访问:http://ip:8080,进入thingsboard边缘端管理页面
thingsboard默认用户名密码:
租户管理员: tenant@thingsboard.org / tenant
边缘端空间有限,安装完成后,删除/opt/share目录下的文件
rm -rf /opt/share
六、边缘盒子空间清理
运行一段时间后,盒子磁盘空间告急
查看磁盘空间的命令:
# 查看整体磁盘空间
df -h
# 查看目录下所有文件夹及文件占用空间
du -sh * | sort -hr
1、检查安装文件,删除安装目录
rm -rf /opt/share/
2、清理日志文件
/var/log下保留了日志文件,可以清理
journalctl日志占用1G,通过命令设置仅保留1个月的日志
journalctl --vacuum-time=1m
3、容器日志文件清理
/opt 为容器数据目录
/var/lib/docker 为容器缓存目录
结合命令查看各子目录占用
du -sh * | sort -hr
例如该目录下占用6.2G
docker ps查看为node-red目录
进入该目录,为日志文件占用空间
①手动清空文件内容
定义脚本文件truncate_docker_logs.sh
cd /opt
vim truncate_docker_logs.sh
输入以下内容:
#!/bin/sh
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
truncate -s 0 $log
done
echo "======== end clean docker containers logs ========"
手动执行命令
/bin/sh /opt/truncate_docker_logs.sh >> /var/log/truncate_logs.log
cat /var/log/truncate_logs.log
②定期清理文件内容
设置定时任务
crontab -e
输入以下内容
0 1 * * * /bin/sh /opt/truncate_docker_logs.sh >> /var/log/truncate_logs.log
ctrl+o 回车保存,ctrl+x退出
③使用docker本身机制限制文件大小(该方法仅对后续新增容器起作用)
vim /etc/docker/daemon.json
增加内容
{
"log-driver":"json-file",
"log-opts":{ "max-size" :"50m","max-file":"1"}
}
重启容器
systemctl daemon-reload
systemctl restart docker
七、边缘盒子调整
1、修改遥测数据上传
将nodered中遥测数据上传的mqtt服务器修改成:10.89.25.65
2、卸载thingsboard边缘端
cd /opt/thingsboard
docker-compose down
rm -rf ./db ./logs ./data
3、安装mqtt服务端mosquitto
scp root@10.89.25.67:/home/data/share/mosquitto.tar /opt/
cd /opt
tar -zxvf mosquitto.tar
cd mosquitto
dpkg -i *.deb
systemctl enable mosquitto.service
4、重装kuiper
scp root@10.89.25.67:/home/data/share/kuiper.tar /opt/
cd /opt
docker load -i kuiper.tar
docker stop kuiper
docker rm kuiper
sudo docker run -p 9081:9081 -d --restart=always --name kuiper -e MQTT_SOURCE__DEFAULT__SERVER="tcp://172.17.0.1:1883" lfedge/ekuiper:1.8.0-beta.1
5 修改主机名
主机名以后统一使用设备编号:HJ05\CY04
hostnamectl set-hostname CY04
评论区