服务器准备
- 准备CentOS-7-x86_64-DVD-2009.iso镜像
链接:https://pan.baidu.com/s/1rNkfoeHOuYv0OmitWVDNsQ?pwd=janl 提取码:janl
- 安装服务器需要的命令
yum update yum install net-tools.x86_64 -y yum install zip unzip -y ## 安装jdk到当前机器,包在上边的云盘中 ## 安装到/usr/local/java路径 tar -zxvf jdk-8u201-linux-x64.tar.gz -C /usr/local/java ## 设置环境变量 vi /etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_201 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=.:${JAVA_HOME}/bin:$PATH
- 创建对应的用户,每个都建立自己的组件
# 添加用户并为用户创建目录 sudo useradd -m iotdb sudo useradd -m redis sudo useradd -m rabiitmq # sudo passwd xxx 设置为xxx@123 # sudo userdel -r xxx 删除用户
- 用户授权 http://www.51gjie.com/linux/1015.html
安装iotdb
- 下载安装包 [注意不要下载1.0.0]
对应下载的地址 https://archive.apache.org/dist/iotdb/1.1.0/apache-iotdb-1.1.0-all-bin.zip
安装iotdb并且启动bash sbin/start-standalone.sh
单机版测试启动成功。
- 客户端测试
初始安装后的 IoTDB 中有一个默认用户:root,默认密码为 root。用户可以使用该用户运行 Cli 工具操作 IoTDB。Cli 工具启动脚本为 sbin 文件夹下的 start-cli 脚本。
Linux 系统与 MacOS 系统启动命令如下:
## 启动脚本时需要指定运行 ip、port、username 和 password。若脚本未给定对应参数,则默认参数为"-h 127.0.0.1 -p 6667 -u root -pw -root"
bash sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
create database root.gps.car;
## drop database root.gps.car;
create timeseries root.gps.car.lan with datatype=float,encoding=RLE;
create timeseries root.gps.car.long with datatype=float,encoding=RLE;
INSERT INTO root.gps.car(timestamp,lan,long) values(100,23.9,89.8);
# 查询数据正常可以返回
select lan,long from root.gps.car;
-
配置文件在"conf"文件夹下,包括:
环境配置模块 (datanode-env.bat, datanode-env.sh),
系统配置模块 (iotdb-datanode.properties)
日志配置模块 (logback.xml).
集群部署
route -n
- 设置静态ip地址
//配置完成后重启网络TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" #配置 DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens160" UUID="b6908075-77f5-4141-b50f-e2fcb67787b5" DEVICE="ens160" ONBOOT="yes" ## 配置 IPADDR=10.0.0.54 NETMASK=255.255.255.0 DNS1=8.8.8.8 DNS2=114.114.114.114 GATEWAY=10.0.0.1
service network restart
注意事项
- 非本机访问当前的iotdb数据库时候需要调整iotdb-datanode.properties文件的配置
# 修改为服务器的地址,否则远程客户端访问不到 dn_rpc_address=127.0.0.1
使用 OpenID 作为用户名认证登录
OpenID Connect (OIDC) 使用 keycloack 作为 OIDC 服务权限认证服务
- 配置位于 iotdb-common.properties,设定 authorizer_provider_class 为 org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer 则开启了 openID 服务,默认情况下值为 org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer 表示没有开启 openID 服务。
#默认是org.apache.iotdb.commons.auth.authorizer.LocalFileAuthorizer
# 另外的选择是 org.apache.iotdb.commons.auth.authorizer.OpenIdAuthorizer
#authorizer_provider_class=org.apache.iotdb.commons.auth.authorizer.LocalFileAuthorizer
authorizer_provider_class=org.apache.iotdb.commons.auth.authorizer.LocalFileAuthorizer
# 如果开启了openId授权配置url地址
# openID_url=http://127.0.0.1:8080/auth/realms/iotdb/
-
安装Keycloak http://preprod-docs.cloudcare.cn/management/sso/keycloak/
配置位于 iotdb-common.properties,设定 authorizer_provider_class 为org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer 则开启了 openID 服务,默认情况下值为 org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer 表示没有开启 openID 服务。 ## 执行post请求 curl --location --request POST 'https://10.0.0.54:8443/auth/realms/iotdb/protocol/openid-connect/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ --data-urlencode 'username=root' \ --data-urlencode 'password=qy566@123' \ --data-urlencode 'client_id=iotdb-client' ## 使用keyCloak后连接需要变化为空密码 sbin/start-cli.sh -h 10.129.187.21 -p 6667 -u {my-access-token} -pw "" ./start-cli.sh -h 10.0.0.54 -p 6667 -u "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJVQ1BYWmJ6LW1nR0pZdzU5YVpmTXZyMy12MmVaX0Zfb05ldlYwY0NfdEN3In0.eyJleHAiOjE2ODMwNTA4MDYsImlhdCI6MTY4MzA1MDUwNiwianRpIjoiMDNmMzgxMWYtZjZiNS00ODBkLWE3YmMtYzU5OWZkY2VlNGUxIiwiaXNzIjoiaHR0cHM6Ly8xMC4wLjAuNTQ6ODQ0My9hdXRoL3JlYWxtcy9pb3RkYiIsImF1ZCI6ImFjY291bnQiLCJzdWIiOiJjNjY0ODQ1Ni1jZmU0LTQ5NmUtYTBhYy01ZDFiYzI5MTc2YzIiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJpb3RkYi1jbGllbnQiLCJzZXNzaW9uX3N0YXRlIjoiMTU5NzU5OGEtMmM2MS00NzQxLWJjNDMtNzg0MTZiMGVlNTg4IiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwiaW90ZGJfYWRtaW4iXX0sInJlc291cmNlX2FjY2VzcyI6eyJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6InByb2ZpbGUgZW1haWwiLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsInByZWZlcnJlZF91c2VybmFtZSI6InJvb3QifQ.ncj3jg3mJvqsNGX8_X3X1c3Dy_sIcxshuEj3GxBsYpLyerPYCfsD0xfJBBOm22itf14ir3ZShonR7vVP8rxzgPiP9X4kGbHfEE1p8vqxS__RyhGnt0k0xiNLBH0Wg0hRMgU323gPS2CdYjqOFbqRC7mqAHtqCt3EmxEc4vvfnyB-_koGFsRdWkHNooT2okSTjIRpbcjlfIYlDGEi5G8lQGR7i8U_Ws0mjIiXUgeBg7F_Obx_RVdliNRh0NvZsXhL2QzVWnyu--gwehQXtPMzEa0PY-0aTw9NdujH7DalPaugwLqEKBAkSIn4CHT1-UMKN5qR6CTzcIBfQQf2s9OIqQ" -pw ""
-
如果需要非127.0.0.1访问需要修改配置文件standalone/configuration/standalone.xml中的地址为0.0.0.0
<interface name="management"> <inet-address value="${jboss.bind.address.management:0.0.0.0}"/> </interface> <interface name="public"> <inet-address value="${jboss.bind.address:0.0.0.0}"/> </interface>
cd keycloak-11.0.2/bin #进入 bin 目录 ./add-user-keycloak.sh -r master -u admin -p admin #创建服务器管理员登录账号和密码 nohup bin/standalone.sh -b 0.0.0.0 & #返回 bin 目录,并在后台挂在 Keycloak 启动服务
访问地址:https://10.0.0.54:8443/auth/
安装Grafana监控
Grafana 是开源的指标量监测和可视化工具,可用于展示时序数据和应用程序运行分析。
Grafana 插件相较于 IoTDB-Grafana-Connector 连接器执行效率更高、支持的查询种类更多。
https://www.bookstack.cn/read/iotdb-1.1-zh/bacaa2c6d14c4e8c.md
部署 Grafana 插件
-
安装 Grafana
Grafana 组件下载地址:https://grafana.com/grafana/downloadGrafana-Plugin - 图1open in new window
版本 >= 7.0.0
grafana-plugin 获取 -
方案一 grafana-plugin 下载
二进制文件下载地址:https://iotdb.apache.org/zh/Download/Grafana-Plugin - 图2open in new window
方案二 grafana-plugin 单独编译
我们需要编译 IoTDB 仓库 grafana-plugin 目录下的前端工程并生成 dist 目标目录,具体执行流程如下。 -
源码下载
插件名称: grafana-plugin
下载地址: https://github.com/apache/iotdb.git
执行下面的命令:git clone https://github.com/apache/iotdb.git
您可以采取下面任意一种编译方式:
-
使用 maven 编译,在 grafana-plugin 目录下执行:
mvn install package -P compile-grafana-plugin
-
或使用命令编译,在 grafana-plugin 目录下执行:
yarn install yarn build go get -u github.com/grafana/grafana-plugin-sdk-go go mod tidy mage -v
在使用go get -u 命令时有可能会报如下错误,这时我们需要执行go env -w GOPROXY=https://goproxy.cn,再执行go get -u github.com/grafana/grafana-plugin-sdk-go
go get: module github.com/grafana/grafana-plugin-sdk-go : Get "https://proxy.golang.org/github.com/grafana/grafana-plugin-sdk-go/@v/list": dial tcp 142.251.42.241:443: i/o timeout
如果编译成功,我们将看到生成的目标文件夹 dist,它包含了编译好的 Grafana 前端插件:
-
grafana-plugin 插件安装
拷贝上述生成的前端工程目标文件夹到 Grafana 的插件目录中 ${Grafana文件目录}\data\plugins\。如果没有此目录可以手动建或者启动grafana会自动建立,当然也可以修改plugins的位置,具体请查看下面的修改Grafana 的插件目录位置说明。 -
修改Grafana的配置文件:找到配置文件(${Grafana文件目录}\conf\defaults.ini),并进行如下的修改:
#需要名字一样 allow_loading_unsigned_plugins = apache-iotdb-datasource
修改Grafana 的插件目录位置:找到配置文件(${Grafana文件目录}\conf\defaults.ini),并进行如下的修改:
plugins = data/plugins
如果 Grafana 服务已启动,则需要重启服务。
启动 Grafana
进入 Grafana 的安装目录,使用以下命令启动 Grafana:Windows 系统:
bin\grafana-server.exe
Linux 系统:
sudo service grafana-server start
MacOS 系统:
brew services start grafana
-
配置 IoTDB REST 服务
进入 {iotdb 目录}/conf,打开 iotdb-common.properties 文件,并作如下修改:# Is the REST service enabled enable_rest_service=true # the binding port of the REST service rest_service_port=18080
- 启动(重启)IoTDB 使配置生效,此时 IoTDB REST 服务处于运行状态。
使用 Grafana 插件
访问 Grafana dashboard
Grafana 以网页的 dashboard 形式为您展示数据,在使用时请您打开浏览器,访问 http://:。
注:IP 为您的 Grafana 所在的服务器 IP,Port 为 Grafana 的运行端口(默认 3000)。
- 在本地试用时,Grafana dashboard 的默认地址为 http://localhost:3000/。
默认登录的用户名和密码都是 admin。qy@123
添加 IoTDB 数据源
- 启动(重启)IoTDB 使配置生效,此时 IoTDB REST 服务处于运行状态。