

influxdbの学習の為環境を構築しています。  
wsl2上でdocker composeを行い,influxdbとgrafanaのコンテナを生成し、grafanaのdata
sourceにinfluxdbを登録させたいのですが、接続テストの際に以下のエラーメッセージが表示されデータソースとして認識されません。

[code]

    InfluxDB returned error: error reading influxDB
    
[/code]

環境:

[code]

    C:\Users\xxxxxxxx>wsl --version
    WSL バージョン: 2.0.9.0
    カーネル バージョン: 5.15.133.1-1
    WSLg バージョン: 1.0.59
    MSRDC バージョン: 1.2.4677
    Direct3D バージョン: 1.611.1-81528511
    DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
    Windows バージョン: 10.0.19045.3570
    
[/code]

[code]

    $ docker version
    Client: Docker Engine - Community
     Version:           24.0.6
     API version:       1.43
     Go version:        go1.20.7
     Git commit:        ed223bc
     Built:             Mon Sep  4 12:32:12 2023
     OS/Arch:           linux/amd64
     Context:           default
    
    Server: Docker Engine - Community
     Engine:
      Version:          24.0.6
      API version:      1.43 (minimum version 1.12)
      Go version:       go1.20.7
      Git commit:       1a79695
      Built:            Mon Sep  4 12:32:12 2023
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.6.24
      GitCommit:        61f9fd88f79f081d64d6fa3bb1a0dc71ec870523
     runc:
      Version:          1.1.9
      GitCommit:        v1.1.9-0-gccaecfc
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0
    
[/code]

[code]

    $ docker compose version
    Docker Compose version v2.21.0
    
[/code]

使用しているdocker-compose.ymlは以下となります。

[code]

    version: "3"
    
    services:
      influxdb:
        image: influxdb:2.7.3
        container_name: influxdb-local
        restart: always
        volumes:
          - ./influxdb2_data:/var/lib/influxdb2
          - ./influxdb2_conf:/etc/influxdb2
        ports:
          - 8086:8086
        environment:
          - DOCKER_INFLUXDB_INIT_MODE=setup
          - DOCKER_INFLUXDB_INIT_USERNAME=admin
          - DOCKER_INFLUXDB_INIT_PASSWORD=password
          - DOCKER_INFLUXDB_INIT_ORG=organization
          - DOCKER_INFLUXDB_INIT_BUCKET=bucket
          - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=AaBbCcDdEeFf
    
      grafana:
        image: grafana/grafana:10.2.0
        container_name: grafana-local
        restart: always
        ports:
          - 3000:3000
        volumes:
          - ./grafana:/var/lib/grafana
        depends_on:
          - influxdb
    
[/code]

なお、初回docker compose up時にはマウント箇所のPermission Errorが発生する為、wsl2上でsudo chown 472
grafana -Rを行い、その後でgrafanaをrestartしています。

こうして生成したgrafanaにアクセスし、influxdbのデータソース設定を行いました。  
以下grafanaのデータソース設定です。記述の無い項目には既定値を用いました。

[code]

    Name: InfluxDB
    Query language: InfluxQL
    URL: http://influxdb-local:8086
    Database: bucket
    User: admin
    Password: password
    HTTP Method: Get
    
[/code]

token設定も試行錯誤したのですが、結果が変わらない為ここでは省略。

wsl2上のdocker composeで同様の構築事例があれば教えて下さい。

* * *

この後に調査として以下を行いました。参考まで。

調査1:  
influxdb-localの名前解決を確認。  
まずdocker network inspectを行い,influxdb-
localのipアドレスを調査。対象のipアドレスが172.18.0.2である事を確認。

[code]

    $docker network inspect
    "Containers": {
        "27ad9f3980e8e1c71a08492db0e0214b2ed2d855cae0efb621d4da6be7b1415c": {
            "Name": "influxdb-local",
            "EndpointID": "8637b8755cde4b593b0a9fed577f8609171ad36b0bf692e9accb5d6c9ac69d02",
            "MacAddress": "02:42:ac:12:00:02",
            "IPv4Address": "172.18.0.2/16",
            "IPv6Address": ""
        },
        "ca05d21016dac8dda3ac6dfe0ca50dfe6055cbdeaf422df641ed5935665856aa": {
            "Name": "grafana-local",
            "EndpointID": "e5a604171bb31212359a6516ca50ce8dc1cdee29447ea545c9e8ffbb5f3642cf",
            "MacAddress": "02:42:ac:12:00:03",
            "IPv4Address": "172.18.0.3/16",
            "IPv6Address": ""
        }
    
[/code]

その上で、docker exec -it grafana-local bash後にgrafana-local上でping influxdb-
localを実行し,目的のipアドレスに届く事を確認。

* * *

調査2:  
さらに、grafanaデータソースのurlにipアドレスを設定し接続テストを試す。  
`URL: http://172.18.0.2:8086`

この場合のエラーは以下となりました。

[code]

    Get "http://172.18.0.2:8086/query?db=bucket&epoch=ms&q=SHOW+measurements": net/http: request canceled (Client.Timeout exceeded while awaiting headers) error reading influxDB
    
[/code]

* * *

調査3:  
grafanaコンテナからのnslookup

[code]

    $ nslookup influxdb-local
    Server:         127.0.0.11
    Address:        127.0.0.11:53
    
    Non-authoritative answer:
    
    Non-authoritative answer:
    Name:   influxdb-local
    Address: 172.18.0.2
    
[/code]

* * *

調査4:  
grafanaコンテナからのcurlその1 (一部抜粋。社内proxyからのエラーが含まれるようだったので、名前解決が失敗か)

[code]

    $curl http://influxdb-local:8086
    <p>This means that the cache was not able to resolve the hostname presented in the URL. Check if the address is correct.</p>
    
[/code]

* * *

調査5:  
grafanaコンテナからのcurlその1(一部抜粋)

[code]

    $curl http://172.18.0.2:8086
    <p>The remote host or network may be down. Please try the request again.</p>
    
[/code]


CC BY-SA 4.0
2023-11-15T05:41:46.237
96783
2023-11-15T08:18:30.663
2023-11-15T08:18:30.663
3060
60424
question
docker
wsl2上にてdocker composeを行いinfluxdbとgrafanaコンテナを生成するが,grafanaのData Sourceとしてinfluxdbを登録できない