Google Compute EngineでGrafanaを動かしてCloud SQLのデータを見る方法


概要

Google Compute EngineでGrafanaを動かしてCloud SQLのデータを見る方法です。

Cloud SQLのデータを可視化したりアラートを設定したりするために、Grafanaを動かしたかったが、Grafana用のhttpsエンドポイントを用意したり、Cloud SQLのセキュリティ設定とかが面倒だったので、最小の労力でやる方法を探した。

ssh tunnel -> Google Compute Engine上のdocker上のgrafana -> Cloud SQL proxy -> cloud sql

Google Compute Engineの設定

Container optimizedで起動
cloud sqlのapi権限を付与しておく(インスタンスを作るときに選べる)。

https://cloud.google.com/community/tutorials/docker-compose-on-container-optimized-os
この方法でdocker-composeをインストール(エイリアスの設定)

cloud sql proxyを使う。
docker-compose例

version: "2"
services:
  cloudsqlproxy:
    image: gcr.io/cloudsql-docker/gce-proxy:1.12
    command: /cloud_sql_proxy -instances=[接続名]=tcp:0.0.0.0:5432
  grafana:
    image: grafana/grafana:6.2.5
    volumes:
    - /path/to/data:/var/lib/grafana
    ports:
      - "3000:3000"
    links:
      - cloudsqlproxy
    environment:
      GF_SECURITY_ADMIN_USER: [grafanaユーザー名]
      GF_SECURITY_ADMIN_PASSWORD: [grafanaパスワード]
      GF_USERS_ALLOW_SIGN_UP: "false"
      GF_USERS_ALLOW_ORG_CREATE: "false"
      GF_SERVER_DOMAIN: 'localhost'
      GF_SERVER_ROOT_URL: 'http://localhost:63000/'

Cloud SQLの設定

設定不要。

ssh tunnel

gcloud compute ssh --zone asia-northeast1-b grafana -- -NL 63000:localhost:3000

Cloud SQL readonlyユーザー

gcpのuiからreadonlyユーザーを作る

以下の方法でreadonlyユーザーに権限付与。
https://codeday.me/jp/qa/20181207/60923.html