【问题标题】:install influxdb in a docker with non standard port在具有非标准端口的 docker 中安装 influxdb
【发布时间】:2020-04-09 17:51:27
【问题描述】:

我是码头工人的新手,我需要一些帮助。 我正在尝试在 docker 中安装 TICK。 Influxdb、Kapacitor 和 Chronograf 将安装在 docker 中,但 telegraf 将安装在每台必要的机器上。 我主机中的 8086 端口正在使用中,所以我将使用 8087 进行 influxdb。是否可以使用 -p 8087:8086 配置 influxdb dokcer?如果是这样,我应该在 conf 文件中配置哪个端口? Docker 撰写文件将是:

version: '3'

networks:
    TICK_network:

services:

influxdb:
    image: influxdb
    container_name: influxdb
    networks:
        TICK_network:
    ports:
        - "8087:8086"
        - "8083:8083"
    expose:
        - "8087"
        - "8083"
    hostname: influxdb
    volumes:
        - /var/lib/influxdb:/var/lib/influxdb
        - /etc/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf:ro
    restart: unless-stopped

kapacitor:
    image: kapacitor
    container_name: kapacitor
    networks:
        TICK_network:
    links:
        - influxdb
    ports:
        - "9092:9092"
    expose:
        - "9092"
    hostname: kapacitor
    volumes:
        - /var/lib/kapacitor:/var/lib/kapacitor
        - /etc/kapacitor/kapacitor.conf:/etc/kapacitor/kapacitor.conf:ro
    restart: unless-stopped

chronograf:
    image: chronograf
    container_name: chronograf
    networks:
        TICK_network:
    links:
        - influxdb
        - kapacitor
    ports:
        - "8888:8888"
    expose:
        - "8888"
    hostname: chronograf
    volumes:
        - /var/lib/chronograf:/var/lib/chronograf
    restart: unless-stopped

influxdb.conf 被编辑为指向 8087 端口

[http]
  enabled = true
  bind-address = ":8087"
  auth-enabled = true

Kapacitor.conf 和 telegraf.conf 也指向 8087 端口。 但我收到以下错误:

电报日志:

W! [outputs.influxdb] when writing to [http://localhost:8087]: database "telegraf" creation failed: Post http://localhost:8087/query: EOF
E! [outputs.influxdb] when writing to [http://localhost:8087]: Post http://localhost:8087/write?db=tick: EOF
E! [agent] Error writing to outputs.influxdb: could not write any address

电容器日志:

vl=error msg="encountered error" service=run err="open server: open service *influxdb.Service: failed to link subscription on startup: authorization failed"
run: open server: open service *influxdb.Service: failed to link subscription on startup: authorization failed

【问题讨论】:

    标签: docker influxdb telegraf


    【解决方案1】:

    感谢您的回答。但是电报没有安装在容器中。这就是我使用urls = ["http://localhost:8087"] 访问数据库的原因。

    另一方面,kapacitor 安装在 docker 容器中。使用字符串urls=["https://influxdb:8087"] 连接到influxdb。如果我在端口 8086 中 cinfigure kapacitor 它会给出一个连接错误(我认为这是因为 influxdb.conf 指向端口 8087):

    lvl=error msg="failed to connect to InfluxDB, retrying..." service=influxdb cluster=default err="Get http://influxdb:8086/ping: dial tcp 172.0.0.2:8086: connect: connection refused"
    

    【讨论】:

      【解决方案2】:

      如果您想从 Docker 网络外部访问这些服务,您所做的就是正确的,例如从主机访问 localhost:8087。

      但是,这在您的情况下是不正确的。由于您使用docker-compose,所有服务都在同一个网络中,因此您需要攻击influx正在侦听的端口in Docker网络(右侧端口) ,即8086。

      但是,即使您这样做,它仍然无法正常工作。为什么?因为您正试图从 Telegraf 容器中访问 localhost。您需要将influx的访问权限配置为influxdb:8086,而不是localhost:8087。 influxdb这里是容器的名字,比如你把它命名为ailb90,那么它就是ailb90:8086

      【讨论】:

        猜你喜欢
        • 2020-01-01
        • 2013-09-02
        • 1970-01-01
        • 2016-06-06
        • 2021-12-26
        • 2018-09-09
        • 2020-12-13
        • 1970-01-01
        • 2019-09-09
        相关资源
        最近更新 更多