Grafana: CLIによる自動化

Stackhero CLIを使ってGrafanaを起動し、認証情報を取得し、構成をプログラムで変更する方法

👋 Stackhero ドキュメントへようこそ!

Stackhero では、迅速なセットアップと高い信頼性を実現する Grafana cloud 環境をすぐにご利用いただけます:

  • ユーザー数、ダッシュボード数、アラート数は無制限:監視規模を必要に応じて拡張でき、人工的な制限はありません。
  • 専用の SMTPメールサーバー を標準搭載。通知を好きなだけ送信でき、送信数の制限もありません。
  • ワンクリックでプラグインをインストールでき、Grafana に新機能を簡単に追加できます。
  • GitLabGitHubGoogle、および汎用的な OAuth2 プロバイダーに対応した SSO(シングルサインオン)機能 を標準搭載。ユーザー管理もシンプルかつ安全です。
  • ワンクリックアップデートで、Grafana インスタンスを常に最新の状態に保てます。ダウンタイムやメンテナンスの手間はありません。
  • ご自身の カスタムドメイン を利用可能。自動 HTTPS 証明書発行により、セキュアかつブランドイメージに合わせたアクセスが実現します(例:https://grafana.your-company.com)。
  • 高い パフォーマンス と強固な セキュリティ を標準装備。お客様専用のプライベートインフラ上で稼働します。

素早く導入し、セットアップの時間を短縮:セキュアな Grafana cloud hosting インスタンスが約5分でご利用可能です。

このガイドでは、コマンドラインのみでGrafanaサービスを作成し、その認証情報を取得し、構成を更新する方法を解説します。ダッシュボードでクリック操作を行う必要はありません。スクリプト、CIパイプライン、AIエージェントでの利用に最適です。

すべての操作にはStackhero CLIを使用します。まだインストールしていない場合は、以下のコマンドでインストールできます。

curl -fsSL https://www.stackhero.io/install.sh | sh

最も簡単な開始方法は、ブラウザ経由でログインすることです。ログインコマンドを実行すると、CLIがWebページを開き、そこでアクセスを承認できます。CLI自体にパスワードや2要素認証コードを入力する必要はありません。

stackhero login

ログイン後、認証情報はローカルに保存され、以降のCLIコマンドで自動的に利用されます。

スクリプトやCIパイプラインなど完全自動化された環境では、非対話型のアクセストークンを利用するのが便利です。ダッシュボード(アカウント > Access tokens)からトークンを作成し、環境変数としてエクスポートしてください。CLIや実行するスクリプトは自動的にこのトークンを認識します。

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

次に、アカウントで利用可能なGrafanaサービスストアを一覧表示します。CLIはストアの名前grafana)を直接受け付けるため、IDを調べたりコピーしたりする必要はありません。

# Grafanaサービスストアを一覧表示(複数組織を管理している場合は--organizationを追加)
stackhero services-store-list --name="grafana"

以降のコマンドではストア名grafanaを参照できます。また、必要に応じてリストから特定のsvs-xxxxxx IDを選択することも可能です。

# サービスストアのインスタンスサイズを一覧表示(--instanceにはNAME列を使用)
stackhero instances-store-list --service-store=grafana

# 利用可能なリージョンを一覧表示(例: "europe"など)
stackhero regions-list

以下は、スタックを作成し、Grafanaサービスを追加し、起動を待ち、構成(生成された認証情報を含む)を取得し、新しい構成を適用するサンプルスクリプトです。

#!/bin/bash
set -e

export STACKHERO_TOKEN="usr-xxxxxx:your-token"

serviceStore="grafana"   # Grafanaサービスストア名(ステップ2参照)
instance="..."                # ステップ3で選択したインスタンスサイズ
region="europe"               # ステップ3で選択したリージョン名

# サービス用のスタックを作成(デフォルト組織を使用。必要に応じて--organizationを追加)
stackId=$(stackhero --format=script stack-create \
  --name="My Grafana stack")
echo "Stack created: ${stackId}"

# スタックにGrafanaを追加(名前は自動解決されます)
serviceId=$(stackhero --format=script service-add \
  --stack="My Grafana stack" \
  --service-store="${serviceStore}" \
  --instance="${instance}" \
  --region="${region}")
echo "Service added: grafana"

# サービスが完全に起動するまで待機(数分かかる場合があります)
stackhero service-wait-for --service="grafana"

# サービスの構成を取得(生成された認証情報を含む)
stackhero service-configuration-get --service="grafana" --format=json

service-configuration-getコマンドは、サービスの完全な構成(自動生成されたパスワードや接続情報を含む)を返します。出力はJSON形式なので、スクリプトや自動化で簡単に利用できます。

stackhero service-configuration-get --service=svc-xxxxxx --format=json

構成スキーマの例を確認し、ご自身の設定を適用できます。構成を更新すると、必要に応じてサービスが再起動されます。

# サービスの構成スキーマと例を表示
stackhero service-configuration-example --service=svc-xxxxxx

# カスタム構成を適用(必要に応じてサービスが再起動)
stackhero service-configuration-set \
  --service=svc-xxxxxx \
  --configuration='{ "...": "..." }'

# 新しい構成が適用されるまで待機
stackhero service-wait-for --service=svc-xxxxxx

以上です。これで、サービスの起動、認証情報の取得、再構成まで、すべてスクリプトや自動化で完結できる一連の流れをご確認いただけました。さらに詳しく知りたい場合は、CLIの詳細ドキュメントもご参照ください。ここで紹介した非対話型STACKHERO_TOKEN認証についても解説しています。