Files
hertzbeat/home/docs/start/docker-deploy.md

5.4 KiB
Raw Blame History

id, title, sidebar_label
id title sidebar_label
docker-deploy 通过Docker方式安装HertzBeat Docker方式部署

推荐使用docker部署HertzBeat

  1. 下载安装Docker环境
    Docker 工具自身的下载请参考 Docker官网文档。 安装完毕后终端查看Docker版本是否正常输出。

    $ docker -v
    Docker version 20.10.12, build e91ed57
    
  2. 拉取HertzBeat Docker镜像
    镜像版本TAG可查看官方镜像仓库

    $ docker pull tancloud/hertzbeat:[版本tag]   
    
  3. 配置HertzBeat的配置文件
    在主机目录下创建application.ymleg:/opt/application.yml
    配置文件内容参考 项目仓库/script/application.yml需要替换里面的MYSQL服务和TDengine服务参数IP端口账户密码若使用邮件告警需替换里面的邮件服务器参数 具体替换参数如下:

    spring.datasource.url
    spring.datasource.username
    spring.datasource.password
    
    warehouse.store.td-engine.url
    warehouse.store.td-engine.username
    warehouse.store.td-engine.password
    
    spring.mail.host
    spring.mail.port
    spring.mail.username
    spring.mail.password
    
    
  4. 配置用户配置文件(非必须,配置账户需要)
    HertzBeat默认内置三个用户账户,分别为 admin/admin tom/tom@123 lili/lili
    若需要新增删除修改账户或密码,可以通过配置 sureness.yml 实现,若无此需求可忽略此步骤
    在主机目录下创建sureness.ymleg:/opt/sureness.yml
    配置文件内容参考 项目仓库/script/sureness.yml
    修改sureness.yml的如下部分参数[注意⚠️sureness配置的其它默认参数需保留]

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

    $ docker run -d -p 1157:1157 -v /opt/application.yml:/opt/hertzbeat/config/application.yml -v /opt/sureness.yml:/opt/hertzbeat/config/sureness.yml --name hertzbeat tancloud/hertzbeat:[版本tag]
    526aa188da767ae94b244226a2b2eec2b5f17dd8eff592893d9ec0cd0f3a1ccd
    

    这条命令启动一个运行HertzBeat的Docker容器并且将容器的1157端口映射到宿主机的1157端口上。若宿主机已有进程占用该端口则需要修改主机映射端口。

    • docker run -d : 通过Docker运行一个容器,使其在后台运行
    • -p 1157:1157 : 映射容器端口到主机端口
    • -v /opt/application.yml:/opt/hertzbeat/config/application.yml : 挂载上上一步修改的本地配置文件到容器中即使用本地配置文件覆盖容器配置文件。我们需要修改此配置文件的MYSQLTDengine配置信息来连接外部服务。
    • -v /opt/sureness.yml:/opt/hertzbeat/config/sureness.yml : (非必须)挂载上一步修改的账户配置文件到容器中,若无修改账户需求可删除此命令参数。
    • --name hertzbeat : 命名容器名称 hertzbeat
    • tancloud/hertzbeat:[版本tag] : 使用拉取的HertzBeat官方发布的应用镜像来启动容器,TAG可查看官方镜像仓库
  6. 开始探索HertzBeat
    浏览器访问 http://ip:1157/console 开始使用HertzBeat进行监控告警。

HAVE FUN

Docker部署常见问题

  1. MYSQL,TDENGINE和HertzBeat都Docker部署在同一主机上HertzBeat使用localhost或127.0.0.1连接数据库失败
    此问题本质为Docker容器访问宿主机端口连接失败由于docker默认网络模式为Bridge模式其通过localhost访问不到宿主机。

解决办法一配置application.yml将数据库的连接地址由localhost修改为宿主机的对外IP
解决办法二使用Host网络模式启动Docker即使Docker容器和宿主机共享网络 docker run -d --network host .....

  1. 按照流程部署,访问 http://ip:1157/console 无界面
    请参考下面几点排查问题:

依赖服务MYSQL数据库TDENGINE数据库是否已按照启动成功对应hertzbeat数据库是否已创建SQL脚本是否执行
HertzBeat的配置文件 application.yml 里面的依赖服务IP账户密码等配置是否正确
三:若都无问题可以 docker logs hertzbeat 查看容器日志是否有明显错误提issue或交流群或社区反馈

  1. 日志报错TDengine连接或插入SQL失败

一:排查配置的数据库账户密码是否正确,数据库是否创建
若是安装包安装的TDengine2.3+除了启动server外还需执行 systemctl start taosadapter 启动 adapter