目录
1. Ubuntu版本的选择
Thingsboard官网上对于thingsboard 3.2.2的安装推荐使用ubuntu 18.04 LTS版本。我尝试过使用18.04和20.04都没有问题。但是毕竟官方是在18.04上面做过非常详细的测试的。所以依然推荐使用18.04。
2. 数据库的选择
官方对于单点部署提供了三种数据库的选择。
- PostgreSQL:在每秒数据条收少于5000条的时候使用这种部署,将实体(Entities)和时许数据(Timeseries Data)都保存到PostgreSQL。
- PostgreSQL + Cassandra:在每秒数据条数多余5000条的时候使用这种部署,将实体(Entities)保存与PostgreSQL数据库中,将时序数据(Timeseries Data)保存与Cassandra数据库中。
- PostgreSQL + TimeScaleDB:如果之前已经使用了TimeScale数据库,则推荐使用这种数据库选择。将实体(Entities)保存与PostgreSQL数据库中,将时序数据(Timeseries Data)保存与TimeScaleDB中。
简短的总结成一句话就是,每秒数据小于5000条用PostgreSQL, 每秒数据大于5000条用PostgreSQL+Cassandra, 之前就在用TimeScale的用PostgreSQL+TimeScaleDB。
3. 消息服务的选择
这个选择就非常的多,可以根据需求和公司的目前的现状来选择。
In Memory | Thingboard自带的,也是默认。只推荐在开发和测试过程中使用。 |
Kafka | 推荐在正式产品中使用 |
Kafka in docker container | 推荐在正式产品中使用 |
AWS SQS | 如果正在使用亚马逊的AWS,可以选择使用 |
Google Pub/Sub | 如果正在使用谷歌的cloud,可以选择使用 |
Azure Service Bus | 如果正在使用微软的服务,可以选择使用 |
Rabbit MQ | 推荐数据量不大的情况使用 |
Confluent Cloud | 一个基于Kafka的消息服务 |
其实除非是已经有正在使用,或者之前用过比较熟练的消息服务,都可以选择Kafka或者Kafka in docker container。
4. 根据选择安装相关依赖的应用
4.1 Java 11(openjdk)的安装
安装命令
sudo apt update
sudo apt install openjdk-11-jdk
验证安装是否成功,并确认版本正确
java -version
看到下面数据证明安装成功,并且当前使用的版本就是11
openjdk version "11.0.xx"
......
如果版本显示出来的是其他jdk版本,可以使用下面命令进行切换
sudo update-alternatives --config java
4.2 PostgreSQL的安装
下载wget工具,如果已经安装略过。
sudo apt install -y wget
导入仓库签名密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
将仓库到入本地系统中
RELEASE=$(lsb_release -cs)
echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee /etc/apt/sources.list.d/pgdg.list
安装并启动PostgreSQL
sudo apt update
sudo apt -y install postgresql-12
4.3 Cassandra的安装(可选)
添加Cassandra仓库
echo "deb http://downloads.apache.org/cassandra/debian 40x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -
安装Cassandra
sudo apt-get update
sudo apt-get install cassandra
sudo apt-get install cassandra-tools
4.4 ZooKeeper的安装
ZooKeeper安装很简单
sudo apt-get install zookeeper
4.5 Kafka的安装
# 下载kafka
wget https://archive.apache.org/dist/kafka/2.6.0/kafka_2.13-2.6.0.tgz
tar xzf kafka_2.13-2.6.0.tgz
sudo mv kafka_2.13-2.6.0 /usr/local/kafka
5. 安装Thingsboard deb
将编译生成的thingsboard.deb文件拷贝到Ubuntu。执行下面命令进行安装。
sudo dpkg -i thingsboard.deb
6. 配置并启动
6.1 配置PostgreSQL
启动PostgreSQL服务
sudo service postgresql start
创建PostgreSQL用户
sudo su - postgres
psql
\password
\q
按Ctrl+D返回主用户,然后连接数据库,创建thingsboard数据库
psql -U postgres -d postgres -h 127.0.0.1 -W
CREATE DATABASE thingsboard;
\q
使用文本编辑器打开thingsboard配置文件
sudo vim /etc/thingsboard/conf/thingsboard.conf
将下面信息添加到配置文件末尾, 注意将PUT_YOUR_POSTGRESQL_PASSWORD_HERE替换成刚刚配置的postgresql的密码。
export DATABASE_ENTITIES_TYPE=sql
export DATABASE_TS_TYPE=sql
export SPRING_JPA_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialect
export SPRING_DRIVER_CLASS_NAME=org.postgresql.Driver
export SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/thingsboard
export SPRING_DATASOURCE_USERNAME=postgres
export SPRING_DATASOURCE_PASSWORD=PUT_YOUR_POSTGRESQL_PASSWORD_HERE
export SPRING_DATASOURCE_MAXIMUM_POOL_SIZE=5
6.2 配置Cassandra (可选)
同样方法打开/etc/thingsboard/conf/thingsboard.conf文件,修改下面项
export DATABASE_TS_TYPE=cassandra
6.3 配置ZooKeeper
创建并打开ZooKeeper服务的配置
sudo vim /etc/systemd/system/zookeeper.service
将下面内容加入其中
[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
启动ZooKeeper
sudo systemctl start zookeeper
6.4 配置Kafka
创建并修改Kafka服务配置
sudo vim /etc/systemd/system/kafka.service
将下面内容写入,“PUT_YOUR_JAVA_PATH”需要替换成本地Java path。例如“/usr/lib/jvm/java-11-openjdk”
[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
[Service]
Type=simple
Environment="JAVA_HOME=PUT_YOUR_JAVA_PATH"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
启动Kafka
sudo systemctl start kafka
6.5 配置Thingsboard
编辑thingsboard配置文件
sudo vim /etc/thingsboard/conf/thingsboard.conf
加入下面内容
export TB_QUEUE_TYPE=kafka
export TB_KAFKA_SERVERS=localhost:9092
运行安装脚本,并将初始实体信息导入数据库
sudo /usr/share/thingsboard/bin/install/install.sh --loadDemo
6.6 启动并验证
启动thingsboard服务
sudo service thingsboard start
此时打开浏览器访问http://localhost:8080。确认thingsboard启动成功。