Docker方式安装HertzBeat云监控系统

/ 技术相关 / 0 条评论 / 470浏览

Docker方式安装HertzBeat

一、安装HertzBeat

docker run -itd -p 1157:1157 \
    -v /opt/hertzbeat/data:/opt/hertzbeat/data \
    -v /opt/hertzbeat/logs:/opt/hertzbeat/logs \
    -v /opt/hertzbeat/application.yml:/opt/hertzbeat/config/application.yml \
    -v /opt/hertzbeat/sureness.yml:/opt/hertzbeat/config/sureness.yml \
    --name hertzbeat tancloud/hertzbeat

二、安装TDengine

::: tip 注意 如果容器中运行 taosAdapter,需要根据需要映射其他端口,具体端口默认配置和修改方法请参考taosAdapter文档

:::

使用 docker 运行 TDengine 默认最新版本镜像(taosd + taosAdapter):

docker run -itd -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp --name tdengine tdengine/tdengine

1、进入数据库Docker容器

docker exec -it tdengine /bin/bash

2、执行 taos shell 客户端程序。

> taos

3、执行创建数据库命令

taos> show databases;
taos> CREATE DATABASE hertzbeat KEEP 90 DAYS 10 BLOCKS 6 UPDATE 1;

密码修改:官网

application.yml

server:
  port: 1157
spring:
  application:
    name: ${HOSTNAME:@hertzbeat@}${PID}
  profiles:
    active: prod
  mvc:
    static-path-pattern: /**
  resources:
    static-locations:
      - classpath:/dist/
      - classpath:../dist/
  jackson:
    default-property-inclusion: NON_EMPTY

sureness:
  auths:
    - digest
    - basic
    - jwt

---
spring:
  config:
    activate:
      on-profile: prod
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: mysql@mima
    url: jdbc:mysql://172.17.0.1:3306/hertzbeat?useUnicode=true&characterEncoding=utf-8&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    platform: mysql
    hikari:
      max-lifetime: 12000
  jpa:
    hibernate:
      ddl-auto: update

  mail:
    # 请注意邮件服务器地址:qq邮箱为 smtp.qq.com qq企业邮箱为 smtp.exmail.qq.com
    host: smtp.qq.com
    username: 123123123@qq.com
    # 请注意此非邮箱账户密码 此需填写邮箱授权码
    password: 邮箱授权码
    port: 465
    default-encoding: UTF-8
    properties:
      mail:
        smtp:
          socketFactoryClass: javax.net.ssl.SSLSocketFactory
          ssl:
            enable: true

  thymeleaf:
    prefix: classpath:/templates/
    check-template-location: true
    cache: true
    suffix: .html
    mode: HTML

warehouse:
  store:
    td-engine:
      enabled: true
      driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
      url: jdbc:TAOS-RS://172.17.0.1:6041/hertzbeat
      username: root
      password: 'taos@mima'

alerter:
  # custom console url
  # console-url: https://console.tancloud.cn
  console-url: https://hertz.icusu.com
  # base of alert eval interval time, unit:ms. The next time is 2 times the previous time.
  alert-eval-interval-base: 300000
  # max of alert eval interval time, unit:ms
  max-alert-eval-interval: 86400000
  # system alert(available alert, reachable alert...) trigger times
  system-alert-trigger-times: 1

sureness.yml

# 加载到匹配字典的资源,也就是需要被保护的,设置了所支持角色访问的资源
# 没有配置的资源也默认被认证保护,但不鉴权
# eg: /api/v1/source1===get===[admin] 表示 /api/v2/host===post 这条资源支持 admin 这一种角色访问
# eg: /api/v1/source2===get===[] 表示 /api/v1/source2===get 这条资源不支持任何角色访问
resourceRole:
  - /api/account/auth/refresh===post===[admin,user,guest]
  - /api/apps/**===get===[admin,user,guest]
  - /api/monitor/**===get===[admin,user,guest]
  - /api/monitor/**===post===[admin,user]
  - /api/monitor/**===put===[admin,user]
  - /api/monitor/**===delete==[admin]
  - /api/monitors/**===get===[admin,user,guest]
  - /api/monitors/**===post===[admin,user]
  - /api/monitors/**===put===[admin,user]
  - /api/monitors/**===delete===[admin]
  - /api/alert/**===get===[admin,user,guest]
  - /api/alert/**===post===[admin,user]
  - /api/alert/**===put===[admin,user]
  - /api/alert/**===delete===[admin]
  - /api/alerts/**===get===[admin,user,guest]
  - /api/alerts/**===post===[admin,user]
  - /api/alerts/**===put===[admin,user]
  - /api/alerts/**===delete===[admin]
  - /api/notice/**===get===[admin,user,guest]
  - /api/notice/**===post===[admin,user]
  - /api/notice/**===put===[admin,user]
  - /api/notice/**===delete===[admin]
  - /api/tag/**===get===[admin,user,guest]
  - /api/tag/**===post===[admin,user]
  - /api/tag/**===put===[admin,user]
  - /api/tag/**===delete===[admin]
  - /api/summary/**===get===[admin,user,guest]
  - /api/summary/**===post===[admin,user]
  - /api/summary/**===put===[admin,user]
  - /api/summary/**===delete===[admin]

# 需要被过滤保护的资源,不认证鉴权直接访问
# /api/v1/source3===get 表示 /api/v1/source3===get 可以被任何人访问 无需登录认证鉴权
excludedResource:
  - /api/account/auth/**===*
  - /api/i18n/**===get
  - /api/apps/hierarchy===get
  # web ui 前端静态资源
  - /===get
  - /dashboard/**===get
  - /monitors/**===get
  - /alert/**===get
  - /account/**===get
  - /setting/**===get
  - /passport/**===get
  - /**/*.html===get
  - /**/*.js===get
  - /**/*.css===get
  - /**/*.ico===get
  - /**/*.ttf===get
  - /**/*.png===get
  - /**/*.gif===get
  - /**/*.jpg===get
  - /**/*.svg===get
  - /**/*.json===get
  # swagger ui 资源
  - /swagger-resources/**===get
  - /v2/api-docs===get
  - /v3/api-docs===get

# 用户账户信息
# 下面有 admin tom lili 三个账户
# eg: admin 拥有[admin,user]角色,密码为hertzbeat
# eg: tom 拥有[user],密码为hertzbeat
# eg: lili 拥有[guest],明文密码为lili, 加盐密码为1A676730B0C7F54654B0E09184448289
account:
  - appId: admin
    credential: admin@mima
    role: [admin,user]
  - appId: guest
    credential: guest
    role: [guest]
  #- appId: lili
    # 注意 Digest认证不支持加盐加密的密码账户
    # 加盐加密的密码,通过 MD5(password+salt)计算
    # 此账户的原始密码为 lili
    # credential: 1A676730B0C7F54654B0E09184448289
    # salt: 123
    # role: [guest]