Skip to content

Prometheus + Grafana デプロイ

メトリクス収集・可視化の業界標準スタックを ConoHa VPS にデプロイする手順です。本例は proxy モードで動作し、公開されるのは Grafana のみです。Prometheus と node-exporter は accessory として内部でのみ動作し、Grafana が内部ネットワーク経由でメトリクスを取得します。

完成イメージ

  • Grafana が https://<あなたの FQDN> で TLS 付きアクセス可能
  • Prometheus・node-exporter は accessory として内部稼働し、外部には公開されない
  • Grafana に Prometheus データソースが疎通済み

前提条件

デプロイ手順

1. リポジトリを取得

bash
git clone https://github.com/crowdy/conoha-cli-app-samples.git
cd conoha-cli-app-samples/prometheus-grafana

2. conoha.yml の hosts を編集

yaml
name: prometheus-grafana
# Replace with your own FQDN before running `conoha app init`.
hosts:
  - prometheus-grafana.example.com
web:
  service: grafana
  port: 3000
# `prometheus` and `node-exporter` are accessories — the proxy only
# routes one public host, and Grafana already queries Prometheus
# internally via the `prometheus:9090` data source, so we don't need
# Prometheus's UI reachable from the browser. If you do need it, use
# `conoha app logs` or an SSH port-forward to /var/run/docker.sock.
accessories:
  - prometheus
  - node-exporter

hosts: を自分の FQDN に書き換えてください(サンプルで設定済みの値は仮のドメインです)。

3. 初期化・環境変数設定・デプロイ

bash
# 初期化(初回のみ)
conoha app init <サーバー>

# Grafana 管理者パスワードを設定(必須 — 未設定だと起動しません)
conoha app env set <サーバー> GF_ADMIN_PASSWORD=$(openssl rand -base64 32)

# デプロイ
conoha app deploy <サーバー>

compose.yml では Grafana の管理者パスワードを次のように定義しています(抜粋、全文はこちら):

yaml
services:
  grafana:
    image: grafana/grafana:11.6.0
    expose:
      - "3000"
    environment:
      - GF_SECURITY_ADMIN_USER=${GF_ADMIN_USER:?required}
      - GF_SECURITY_ADMIN_PASSWORD=${GF_ADMIN_PASSWORD:?required}

設定ポイント

  • Grafana 管理者パスワードを必ず設定する: GF_SECURITY_ADMIN_PASSWORD${GF_ADMIN_PASSWORD:?required} という形にしており、環境変数が未設定だとコンテナ起動時にエラーになります。上流サンプルのデフォルト値のままデプロイすると誰でもログインできてしまうため、必ず conoha app env set で値を渡してください。

  • Prometheus・node-exporter は設計上、内部限定公開: conoha.yml の accessories コメントには次のようにあります。

    prometheus and node-exporter are accessories — the proxy only routes one public host, and Grafana already queries Prometheus internally via the prometheus:9090 data source, so we don't need Prometheus's UI reachable from the browser. If you do need it, use conoha app logs or an SSH port-forward to /var/run/docker.sock.

    Prometheus の UI を直接確認したい場合は conoha app logs を使うか、SSH 経由でポートフォワードしてください。

動作確認

bash
conoha app status <サーバー>
conoha app logs <サーバー>

ブラウザで https://<あなたの FQDN> にアクセスし、admin と手順 3 で設定したパスワードで Grafana にログインできれば完了です。Grafana には Prometheus データソース(http://prometheus:9090、コンテナ間の内部 DNS)が疎通済みなので、そのままダッシュボードを作成できます。

関連リンク