【问题标题】:ThingsBoard on ECSECS 上的 ThingsBoard
【发布时间】:2021-04-05 06:26:18
【问题描述】:

我尝试使用 Docker Compose ECS 集成在 ECS 上部署 ThingsBoard:我设置了一个外部数据库,我编写了 Docker Compose 文件

version: '3.8'

services:

  thingsboard:
    container_name: thingsboard
    image: thingsboard/tb-postgres
    restart: always
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgresql://<HOST>:<PORT>/thingsboard?sslmode=require
      - SPRING_DATASOURCE_USERNAME=<USERNAME>
      - SPRING_DATASOURCE_PASSWORD=<PASSWORD>
    ports:
      - '9090:9090'
      - '1883:1883'
      - '5683:5683/udp'

然后我使用docker compose up 在 ECS 上启动堆栈。

集群已正确创建,我可以从 CloudWatch 日志中看到 ThingsBoard 容器正确启动(即使它非常慢)。

不过,由于运行状况检查失败,ECS 会在一段时间后取消注册任务。

ECS 事件日志说:

service thingsboard-ThingsboardService-XXX (port 9090) is unhealthy in target-group thing-Thing-XXX due to (reason Health checks failed).

service thingsboard-ThingsboardService-XXX (port 1883) is unhealthy in target-group thing-Thing-XXX due to (reason Health checks failed).

service thingsboard-ThingsboardService-XXX (port 5683) is unhealthy in target-group thing-Thing-XXX due to (reason Health checks failed).

修改健康检查配置,我至少可以登录到 ThingsBoard 并检查一切是否正常。但是,几分钟后,健康检查再次失败,任务停止。

这是为什么呢?

【问题讨论】:

    标签: docker-compose amazon-ecs thingsboard


    【解决方案1】:

    这些端口不是 HTTP 端口。 9090 是 gRPC。 1883 是 MQTT,5683 是 CoAP。最有可能的是,运行状况检查并不期待这些协议。我建议禁用它们并仅检查 HTTP(S)。

    【讨论】:

    • 非常感谢。我会尽快检查您的建议。
    猜你喜欢
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多