Skip to content

Commit

Permalink
[home] support time-series db dependency iotdb deploy doc (#392)
Browse files Browse the repository at this point in the history
* [home] support time-series db dependency iotdb deploy doc

* [warehouse] support iotdb connection available check when init

* [home] support time-series db dependency iotdb deploy doc
  • Loading branch information
tomsun28 committed Jan 16, 2024
1 parent 2d3ebb6 commit a848f32
Show file tree
Hide file tree
Showing 14 changed files with 447 additions and 92 deletions.
36 changes: 27 additions & 9 deletions home/docs/start/docker-deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,30 @@ sidebar_label: Docker方式部署

4. 配置HertzBeat的配置文件(可选)
在主机目录下创建application.yml,eg:/opt/application.yml
配置文件内容参考 项目仓库[/script/application.yml](https://gitee.com/dromara/hertzbeat/raw/master/script/application.yml),替换里面的`td-engine`服务参数,IP端口账户密码
配置文件内容参考 项目仓库[/script/application.yml](https://gitee.com/dromara/hertzbeat/raw/master/script/application.yml),替换里面的`warehouse`依赖服务参数,IP端口账户密码
注意⚠️(若使用邮件告警,需替换里面的邮件服务器参数。若使用MYSQL数据源,需替换里面的datasource参数 参见[H2数据库切换为MYSQL](mysql-change))
具体替换参数如下:
```yaml
warehouse:
store:
td-engine:
enabled: true
enabled: false
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://localhost:6041/hertzbeat
username: root
password: taosdata
iot-db:
enabled: false
host: 127.0.0.1
rpc-port: 6667
username: root
password: root
# org.apache.iotdb.session.util.Version: V_O_12 || V_0_13
version: V_0_13
# if iotdb version >= 0.13 use default queryTimeoutInMs = -1; else use default queryTimeoutInMs = 0
query-timeout-in-ms: -1
# 数据存储时间:默认'7776000000'(90天,单位为毫秒,-1代表永不过期)
expire-time: '7776000000'
spring:
mail:
Expand Down Expand Up @@ -223,7 +235,9 @@ $ docker run -d -p 1157:1157 \

### Docker部署常见问题

1. **MYSQL,TDENGINE和HertzBeat都Docker部署在同一主机上,HertzBeat使用localhost或127.0.0.1连接数据库失败**
**最多的问题就是网络问题,请先提前排查**

1. **MYSQL,TDENGINE或IotDB和HertzBeat都Docker部署在同一主机上,HertzBeat使用localhost或127.0.0.1连接数据库失败**
此问题本质为Docker容器访问宿主机端口连接失败,由于docker默认网络模式为Bridge模式,其通过localhost访问不到宿主机。
> 解决办法一:配置application.yml将数据库的连接地址由localhost修改为宿主机的对外IP
> 解决办法二:使用Host网络模式启动Docker,即使Docker容器和宿主机共享网络 `docker run -d --network host .....`
Expand All @@ -239,14 +253,18 @@ $ docker run -d -p 1157:1157 \
> 二:若是安装包安装的TDengine2.3+,除了启动server外,还需执行 `systemctl start taosadapter` 启动 adapter

4. **监控历史图表长时间都一直无数据**
> 一:Tdengine是否配置,未配置则无历史图表数据
> 一:Tdengine或IoTDB是否配置,未配置则无历史图表数据
> 二:Tdengine的数据库`hertzbeat`是否创建
> 三: HertzBeat的配置文件 `application.yml` 里面的依赖服务 Tdengine IP账户密码等配置是否正确
> 三: HertzBeat的配置文件 `application.yml` 里面的依赖服务 IotDB或Tdengine IP账户密码等配置是否正确

5. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖服务TDengine时序数据库]
5. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖时序数据库]
> 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 -
> 安装初始化此数据库参考 [TDengine安装初始化](tdengine-init)
> 安装初始化此数据库参考 [TDengine安装初始化](tdengine-init) 或 [IoTDB安装初始化](iotdb-init)

6. 安装配置了时序数据库,但页面依旧显示弹出 [无法提供历史图表数据,请配置依赖时序数据库]
> 请检查配置参数是否正确
> iot-db 或td-engine enable 是否设置为true
> 注意⚠️若hertzbeat和IotDB,TDengine都为docker容器在同一主机下启动,容器之间默认不能用127.0.0.1通讯,改为主机IP
> 可根据logs目录下启动日志排查


6. 监控详情历史图片不展示或无数据,已经配置了TDengine
> 请确认是否安装的TDengine版本为2.4.0.12附近,版本3.0和2.2不支持兼容
73 changes: 73 additions & 0 deletions home/docs/start/iotdb-init.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
id: iotdb-init
title: 依赖时序数据库服务IoTDB安装初始化
sidebar_label: 时序数据库IoTDB安装(可选)
---

HertzBeat的历史数据存储依赖时序数据库 IoTDB 或 TDengine,任选其一安装初始化即可,也可不安装(注意⚠️不安装则无历史图表数据)

Apache IoTDB是一体化收集、存储、管理与分析物联网时序数据的软件系统,我们使用其存储分析采集到的监控指标历史数据。

注意⚠️ IoTDB为可选项,未配置则无历史图表数据,支持V0.12 - V0.13版本,推荐使用V0.13.*版本。

> 如果您已有IoTDB环境,可直接跳到YML配置那一步。

### 通过Docker方式安装IoTDB
> 可参考官方网站[安装教程](https://iotdb.apache.org/zh/UserGuide/V0.13.x/QuickStart/WayToGetIoTDB.html)
1. 下载安装Docker环境
Docker 工具自身的下载请参考 [Docker官网文档](https://docs.docker.com/get-docker/)
安装完毕后终端查看Docker版本是否正常输出。
```
$ docker -v
Docker version 20.10.12, build e91ed57
```
2. Docker安装IoTDB

```shell
$ docker run -d -p 6667:6667 -p 31999:31999 -p 8181:8181 \
-v /opt/iotdb/data:/iotdb/data \
--name iotdb \
apache/iotdb:0.13.3-node
```

`-v /opt/iotdb/data:/iotdb/data` 为tdengine数据目录本地持久化挂载,需将`/iotdb/data`替换为实际本地存在的目录
使用```$ docker ps```查看数据库是否启动成功

3. 在hertzbeat的`application.yml`配置文件配置IoTDB数据库连接

配置HertzBeat的配置文件
修改位于 `hertzbeat/config/application.yml` 的配置文件
注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可
替换里面的`warehouse.store.iot-db`数据源参数,HOST账户密码等

```
warehouse:
store:
iot-db:
enabled: true
host: 127.0.0.1
rpc-port: 6667
username: root
password: root
# V_O_12 || V_0_13
version: V_0_13
# if iotdb version >= 0.13 use default queryTimeoutInMs = -1; else use default queryTimeoutInMs = 0
query-timeout-in-ms: -1
# 数据存储时间:默认'7776000000'(90天,单位为毫秒,-1代表永不过期)
expire-time: '7776000000'
```

### 常见问题

1. 时序数据库IoTDB和TDengine是否都需要配置,能不能都用
> 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,只影响历史图表数据。
2. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖时序数据库]
> 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 - IotDB数据库或TDengine数据库
3. 安装配置了IotDB数据库,但页面依旧显示弹出 [无法提供历史图表数据,请配置依赖时序数据库]
> 请检查配置参数是否正确
> iot-db enable是否设置为true
> 注意⚠️若hertzbeat和IotDB都为docker容器在同一主机下启动,容器之间默认不能用127.0.0.1通讯,改为主机IP
> 可根据logs目录下启动日志排查
22 changes: 18 additions & 4 deletions home/docs/start/package-deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,30 @@ sidebar_label: 安装包方式部署
$ tar zxvf hertzbeat-[版本号].tar.gz
```
修改位于 `hertzbeat/config/application.yml` 的配置文件
替换里面的`td-engine`服务参数,IP端口账户密码
替换里面的`warehouse`服务参数,IP端口账户密码
注意⚠️(若使用邮件告警,需替换里面的邮件服务器参数。若使用MYSQL数据源,需替换里面的datasource参数 参见[H2数据库切换为MYSQL](mysql-change)
具体替换参数如下:
```yaml
warehouse:
store:
td-engine:
enabled: true
enabled: false
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://localhost:6041/hertzbeat
username: root
password: taosdata
iot-db:
enabled: false
host: 127.0.0.1
rpc-port: 6667
username: root
password: root
# org.apache.iotdb.session.util.Version: V_O_12 || V_0_13
version: V_0_13
# if iotdb version >= 0.13 use default queryTimeoutInMs = -1; else use default queryTimeoutInMs = 0
query-timeout-in-ms: -1
# 数据存储时间:默认'7776000000'(90天,单位为毫秒,-1代表永不过期)
expire-time: '7776000000'

spring:
mail:
Expand Down Expand Up @@ -88,6 +100,8 @@ account:

### 安装包部署常见问题

**最多的问题就是网络问题,请先提前排查**

1. **按照流程部署,访问 http://ip:1157/ 无界面**
请参考下面几点排查问题:
> 一:若切换了依赖服务MYSQL数据库,排查数据库是否成功创建,是否启动成功
Expand All @@ -99,6 +113,6 @@ account:
> 二:若是安装包安装的TDengine2.3+,除了启动server外,还需执行 `systemctl start taosadapter` 启动 adapter

3. **监控历史图表长时间都一直无数据**
> 一:Tdengine是否配置,未配置则无历史图表数据
> 一:Tdengine或IoTDB是否配置,未配置则无历史图表数据
> 二:Tdengine的数据库`hertzbeat`是否创建
> 三: HertzBeat的配置文件 `application.yml` 里面的依赖服务 Tdengine IP账户密码等配置是否正确
> 三: HertzBeat的配置文件 `application.yml` 里面的依赖服务 IotDB或Tdengine IP账户密码等配置是否正确
38 changes: 27 additions & 11 deletions home/docs/start/tdengine-init.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
---
id: tdengine-init
title: 依赖服务TDengine安装初始化
sidebar_label: TDengine初始化(可选)
title: 依赖时序数据库服务TDengine安装初始化
sidebar_label: 时序数据库TDengine安装(可选)
---

HertzBeat的历史数据存储依赖时序数据库 TDengine 或 IoTDB,任选其一安装初始化即可,也可不安装(注意⚠️不安装则无历史图表数据)

TDengine是一款开源物联网时序型数据库,我们用其存储采集到的监控指标历史数据。 注意⚠️ 2.4.x版本。
注意⚠️ TDengine为可选项,未配置则无历史图表数据。

Expand Down Expand Up @@ -88,17 +91,30 @@ $ docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp \
注意⚠️docker容器方式需要将application.yml文件挂载到主机本地,安装包方式解压修改位于 `hertzbeat/config/application.yml` 即可
替换里面的`warehouse.store.td-engine`数据源参数,URL账户密码

```
warehouse.store.td-engine.enable
warehouse.store.td-engine.url
warehouse.store.td-engine.username
warehouse.store.td-engine.password
```yaml
warehouse:
store:
td-engine:
enabled: true
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://localhost:6041/hertzbeat
username: root
password: taosdata
```
### 常见问题
1. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖服务TDengine时序数据库]
> 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 - TDengine数据库
1. 时序数据库IoTDB和TDengine是否都需要配置,能不能都用
> 不需要都配置,任选其一即可,用enable参数控制其是否使用,也可都不安装配置,只影响历史图表数据。
2. 监控页面历史图表不显示,弹出 [无法提供历史图表数据,请配置依赖时序数据库]
> 如弹窗所示,历史图表展示的前提是需要安装配置hertzbeat的依赖服务 - IotDB数据库或TDengine数据库
3. 监控详情历史图片不展示或无数据,已经配置了TDengine
> 请确认是否安装的TDengine版本为2.4.0.12附近,版本3.0和2.2不支持兼容
2. 监控详情历史图片不展示或无数据,已经配置了TDengine
> 请确认是否安装的TDengine版本为2.4.0.12附近,版本3.0和2.2不支持兼容
4. 安装配置了TDengine数据库,但页面依旧显示弹出 [无法提供历史图表数据,请配置依赖时序数据库]
> 请检查配置参数是否正确
> td-engine enable是否设置为true
> 注意⚠️若hertzbeat和TDengine都为docker容器在同一主机下启动,容器之间默认不能用127.0.0.1通讯,改为主机IP
> 可根据logs目录下启动日志排查
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
title: HertzBeat v1.2.0 发布!易用友好的开源实时监控系统
author: tom
author_title: tom
author_url: https://github.com/tomsun28
author_image_url: https://avatars.githubusercontent.com/u/24788200?s=400&v=4
tags: [opensource]
---

## v1.2.0

Home: hertzbeat.com | tancloud.cn

Hi gays! HertzBeat v1.2.0 is coming. This version supports more powerful mertics collect jsonpath, upgrade springboot version to 2.7.4 , support metrics unit convert display, and more. Fixed several bugs and improved the overall stable usability.

Only one docker command is needed to install and experience heartbeat:
`docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat`

Thanks to the contributors! 👍👍 @Ceilzcx @Privauto @VampireAchao @DreamGirl524 @CharlieXCL @emrys-he @SxLiuYu @tomsun28

We urgently need contributors to test cases, new application monitoring, documentation, etc., and very welcome you to join. Come on! HertzBeat is so easy!

Feature:

1. [[home,manager]add practice learn doc and hertzbeat monitor yml #284](https://github.com/dromara/hertzbeat/pull/284)
2. [[webapp] auto redirect url when detect browser language #289](https://github.com/dromara/hertzbeat/pull/289) contribute by @DreamGirl524
3. [[home] update logo icon cdn url with fault tolerance #293](https://github.com/dromara/hertzbeat/pull/293) contribute by @VampireAchao
4. [[monitor] enable powerful jsonpath parser, add es metrics #295](https://github.com/dromara/hertzbeat/pull/295) contribute by @Ceilzcx
5. [[webapp] update ui theme #296](https://github.com/dromara/hertzbeat/pull/296)
6. [Feature change main pom artifactId #300](https://github.com/dromara/hertzbeat/pull/300) contribute by @Privauto
7. [[home,webapp] add users logo and update hertzbeat brand #302](https://github.com/dromara/hertzbeat/pull/302)
8. [[monitor] alerter notify test throw msg to front, optional spring.email config #305](https://github.com/dromara/hertzbeat/pull/305) contribute by @Ceilzcx
9. [[home]doc:update docker-deploy.md and tdengine-init.md #306](https://github.com/dromara/hertzbeat/pull/306) contribute by @Privauto
10. [[hertzbeat] refactor common collect metrics data and alert data queue #320](https://github.com/dromara/hertzbeat/pull/320)
11. [[hertzbeat] upgrade springboot version 2.4.13 to 2.7.4 #316](https://github.com/dromara/hertzbeat/pull/316) contribute by @Privauto
12. [[web-app] optimize the monitor detect feedback method #322](https://github.com/dromara/hertzbeat/pull/322)
13. [[github,webapp] add webapp ci action, fix eslint warning and upgrade codeql #323](https://github.com/dromara/hertzbeat/pull/323)
14. [[hertzbeat] add more unit test and test example #324](https://github.com/dromara/hertzbeat/pull/324)
15. [support metrics unit extract, convert and display #326](https://github.com/dromara/hertzbeat/pull/326) contribute by @Ceilzcx
16. [[common] optimize common aviator configuration #327](https://github.com/dromara/hertzbeat/pull/327)

Bugfix.

1. [[webapp,home] fix middle category icon and update home doc #283](https://github.com/dromara/hertzbeat/pull/283)
2. [[web-app] fix redirect when monitors app is null #286](https://github.com/dromara/hertzbeat/pull/286)
3. [[alerter] bugfix aviator expression match npe #297](https://github.com/dromara/hertzbeat/pull/297)
4. [[doc] fix project name error #294](https://github.com/dromara/hertzbeat/pull/294) contribute by @CharlieXCL
5. [[common]feature:use "apache.http.conn.util" replace "sun.net.util" for upgrading java version #299](https://github.com/dromara/hertzbeat/pull/299) contribute by @Privauto
6. [Update docker-deploy.md #304](https://github.com/dromara/hertzbeat/pull/304) contribute by @emrys-he
7. [fix(sec): upgrade snakeyaml to 1.31 #313](https://github.com/dromara/hertzbeat/pull/313) contribute by @SxLiuYu
8. [[script] add startup log and optimize port service judgment #321](https://github.com/dromara/hertzbeat/pull/321)
9. [[web-app] fix echarts y-axis value tip overflow #325](https://github.com/dromara/hertzbeat/pull/325)
10. [[webapp] fix interceptor http resp common error-msg when error #329](https://github.com/dromara/hertzbeat/pull/329)
Online https://console.tancloud.cn.

Have Fun!

### Upgrade⚠️

Need Convert `application.yml`
```
spring:
resources:
static-locations:
- classpath:/dist/
- classpath:../dist/
```
To
```
spring:
web:
resources:
static-locations:
- classpath:/dist/
- classpath:../dist/
```

----

Loading

0 comments on commit a848f32

Please sign in to comment.