GrafanaとPostgreSQLをDocker Composeで動かしたときに接続先の設定でハマった

はじめに

エキサイト株式会社 21卒 バックエンドエンジニアの山縣です。 連休中にGrafana + PostgreSQLをDocker Composeで動かしたときになかなか連携できずにハマってしまいました。 そのときに起きた問題点と解決策を共有します!

導入

今回使用したdocker-compose.ymlファイルです。 GrafanaとPostgreSQLを使用しています。

version: '3'
services:
  grafana:
    image: grafana/grafana
    container_name: sample_grafana
    ports:
      - 8888:3000
    volumes:
      - ./grafana:/var/lib/grafana

  postgres:
      image: postgres:12.7
      container_name: sample_postgres
      ports:
        - 5432:5432
      environment:
        POSTGRES_USER: sample_user
        POSTGRES_PASSWORD: sample_pass
      volumes:
        - ./initdb:/docker-entrypoint-initdb.d
        - ./postgres:/var/lib/postgresql/data

GrafanaのConfiguration > Data Sources > Add data sourceから接続先の設定をすることができます。 その際、ホストをlocalhost:5432で設定すると接続することができませんでした。

結論

f:id:excite-kazuki:20210805231418p:plain

docker-compose.ymlにあるcontainer_nameをホストに記述する必要があります。 Dockerコンテナを使用している場合は、localhostのままでは繋がらないため注意しなくてはなりません。

上記のとおり接続先の設定ができると、PostgreSQLに格納したデータを可視化することができるようになります!

f:id:excite-kazuki:20210806004454p:plain
Grafanaでメモリ使用量を可視化