Grafanaは、メトリクスを視覚化するための主要な可観測性プラットフォームです。特注のダッシュボードを作成して、アプリケーションのリアルタイムデータストリームから意味のある洞察を得ることができます。
Grafanaは、人気のあるインフラストラクチャプロバイダーで起動したり、独自のハードウェアにインストールしたり、スタンドアロンコンテナーとしてデプロイしたりできるクラウドネイティブアプリケーションです。このガイドでは、公式のGrafanaイメージを使用してDockerで実行されるインスタンスを開始することにより、後者の選択に焦点を当てます。
最も単純なGrafanaコンテナの作成は次のようになります:
docker run -d --name=grafana -p 3000:3000 grafana/grafana
ポート3000でアクセス可能な新しいGrafanaサーバーがあります。http://localhost:3000
にアクセスしてください admin
としてログインします / admin
。
これで、データソースとダッシュボードの追加を開始して視覚化を作成できます。ホームページの[最初のデータソースを追加]ボタンを押して、新しいソースを接続します。次の画面でプロバイダーの種類を選択し、Grafanaがデータにアクセスできるように詳細を入力します。
次にホームページに戻り、「最初のダッシュボードを作成する」をクリックします。好みの視覚化タイプを選択し、クエリペインを使用してデータから適切なメトリックを選択します。完了すると、新しい視覚化がダッシュボードに表示されます。
この手順は、使い捨てのGrafanaテストインスタンスを簡単に開始できることを示しています。ただし、本番環境に対応したコンテナーを実行するには、もう少し考える必要があります。これは、長期使用に適した、より完全なアプローチです。
Grafanaはデュアルライセンスビジネスモデルを使用しています。オープンソース版はgrafana/grafana
として公開されています エンタープライズはgrafana/grafana-enterprise
であるのに対し、DockerHubでは 。次の手順は、これらのトップレベルのバリアントの両方で機能します。
複数のGrafanaバージョンが利用可能で、それぞれがAlpineまたはUbuntuフレーバーのいずれかです。ほとんどの展開状況ではAlpineを優先する必要があります。Alpineはスリムで、余分な余分なものを一切使用せずにGrafana互換の環境を提供することに重点を置いています。
OSは、画像タグのGrafanaバージョンの後に名前を追加することで選択されます:
grafana/grafana:8.3.0-ubuntu
新しいアップデートが公開されたときに意図せずに重大な変更を受け取らないように、特定のリリースに固定することをお勧めします。 OS名を省略します(grafana/grafana:8.3.0
)選択したバージョンのアルパインバリアントが表示されます。
Grafanaには、比較的単純なデプロイメント要件があります。永続データを保存し、サービスにアクセスできるようにホストポートをバインドするには、Dockerボリュームをマウントする必要があります。設定は、構成ファイルをコンテナーにマウントするか、環境変数を挿入することで提供できます。
docker run -d --name grafana -p 9000:3000 -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
この例では、grafana
という新しいGrafanaコンテナを起動します Dockerホストのポート9000でリッスンします。これはGrafanaのデフォルトのリスニングアドレスであるため、ポートはコンテナ内で3000にバインドされています。
grafana-data
と呼ばれるDockerボリューム -v
によって参照されます 国旗。 /var/lib/grafana
にマウントされています Grafanaが生成されたすべてのデータを格納するコンテナ内。ボリュームマウントとは、ディレクトリの内容がコンテナの外部に保存されることを意味し、コンテナが停止したときやホストが再起動したときにデータが失われるのを防ぎます。
コンテナの起動時に環境変数を設定することで、Grafanaの設定キーを上書きできます。キー名を大文字にしてGF_
を付加することで、GrafanaのINI形式の構成ファイルの任意のキーを変更できます。 :
# INI file instance_name = my-grafana [security] admin_user = demo admin_password = grafana --- # Corresponding environment variables GF_DEFAULT_INSTANCE_NAME=my-grafana GF_SECURITY_ADMIN_USER=demo GF_SECURITY_ADMIN_PASSWORD=grafana
暗黙のDEFAULT
が含まれていることを確認してください 構成ファイルの最上位変数の値を変更するときのセクション名。
変更する値を決定したら、-e
を使用して正しい環境変数を指定します コンテナを起動するときのフラグ:
docker run -d --name grafana -p 9000:3000 -e GF_DEFAULT_INSTANCE_NAME=my-grafana -e GF_SECURITY_ADMIN_USER=demo -e GF_SECURITY_ADMIN_PASSWORD=grafana -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
Grafanaはファイルベースの構成もサポートしています。このメカニズムでは、ターゲット環境変数の値が、コンテナー内で使用可能なファイルへのパスになります。 Grafanaは、ファイルを読み取ることで設定の実際の値を取得します。
このアプローチを使用するには、__FILE
の接尾辞を付けて環境変数を変更します。 通常の名前に:
docker run -d --name grafana -p 9000:3000 -e GF_DEFAULT_INSTANCE_NAME=my-grafana -e GF_SECURITY_ADMIN_USER=demo -e GF_SECURITY_ADMIN_PASSWORD__FILE=/run/secrets/password -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
バインドマウントを使用してファイルをコンテナに追加できます(-v ./password.txt:/run/secrets/password
)またはDockerSecretsなどの専用のシークレット管理システム。ファイルベースの構成は、CIジョブログとシェルの履歴にプレーンテキストとして公開したくない機密値を挿入するためのより安全な方法を提供します。
環境変数の値を変更しすぎて便利にならない場合は、Grafanaのディスク上の構成ファイルをいつでもオーバーライドできます。
Dockerイメージは、このファイルを/etc/grafana/grafana.ini
に配置します。 。 Dockerバインドマウントを使用して、予想されるパスに置換をマウントできます:
docker run -d --name grafana -p 9000:3000 -v ./grafana.ini:/etc/grafana/grafana.ini -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
構成ファイルを使用すると、より複雑な設定の挿入が容易になります。変数を補間して動的な値を作成できます。構成ファイルは、将来のメンテナを支援する意図を文書化できるコメントもサポートしています。
多くのGrafanaインストールには、データソースを追加したり、ビルド済みのダッシュボードパネルを提供したりするプラグインが必要です。 Dockerイメージには、特別な環境変数を設定することでプラグインを新しいコンテナーに追加できるヘルパーユーティリティが含まれています。
Grafanaカタログにリストされている公式プラグインを追加する方法は次のとおりです。
docker run -d --name grafana -p 9000:3000 -e GF_INSTALL_PLUGINS=grafana-simple-json-datasource -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
GF_INSTALL_PLUGINS
変数は、コンテナーが最初に起動したときにインストールされるプラグイン名のコンマ区切りのリストを想定しています。名前はgrafana-cli plugins install
に渡されます 指図。これは、grafana-simple-json-datasource 1.1.0
などのバージョン式を含めることができることを意味します 、およびURLを介してコミュニティプラグインを参照します:
docker run -d --name grafana -p 9000:3000 -e GF_INSTALL_PLUGINS=https://example.com/grafana-plugin.zip -v grafana-data:/var/lib/grafana grafana/grafana:8.3.0
docker run
を介して提供された構成でGrafanaコンテナを手動で起動する フラグは繰り返し発生し、エラーが発生しやすくなります。変更を含めて独自のDockerイメージを構築すると、時間を節約し、複数のチームメンバーが新しいインスタンスを起動できるようにする必要がある場合に設定を一元化できます。
これは、公式のgrafana/grafana
を拡張するDockerfileを作成することで実現できます。 画像。これにより、カスタム構成ファイルをコピーして、必要な追加の環境変数を設定することができます。
FROM grafana/grafana:8.3.0 # Add plugins ENV GF_INSTALL_PLUGINS=grafana-simple-json-datasource # Copy a config file from your working directory COPY grafana.ini /etc/grafana/grafana.ini
Dockerfileを使用して新しいGrafanaイメージをビルドします:
docker build -t custom-grafana:latest .
これで、イメージから事前構成されたコンテナインスタンスを開始できます:
docker run -d --name grafana -p 9000:3000 -v grafana-data:/var/lib/grafana custom-grafana:latest
このアプローチは、Grafana環境に大幅な変更を加えた場合に特に役立ちます。コンテナを起動するたびに、構成を確実に再現できるようになりました。これは、時間の経過に伴うインストールのバージョン変更にも役立ちます。
1つの欠点は、アップストリームのGrafanaアップデートが公開されたときにイメージを再構築する必要があることです。定期的にgrafana/grafana
をプルする必要があります 、docker build
イメージをレジストリにプッシュしてから、Dockerホストで新しいバージョンをプルします。最終段階では、実行中のコンテナを再作成して、更新されたイメージを使用できるようにします。
Dockerは、可観測性プラットフォームをホストできる分離された環境を提供することにより、Grafanaのインストールとセットアップを簡素化します。ホストポートをバインドし、データボリュームをマウントし、環境変数を介して構成値を提供することで、新しいGrafanaインスタンスをすばやく開始できます。後で、公式ベースに基づいて構築された独自の再利用可能なイメージに構成をカプセル化できます。
起動して実行すると、DockerizedGrafanaのインストールは通常のインストールと同じように機能します。コンテナにバインドしたホストポートをポイントすることで、データソースに接続し、HTTP APIと対話し、アラートを構成できます。インスタンスにドメイン名を割り当て、ApacheやTraefikなどのリバースプロキシの背後で提供することでHTTPSを設定することもできます。