GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

DockerコンテナでGrafanaを実行する方法

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を設定することもできます。


Docker
  1. Dockerコンテナ内でプログラムを実行する方法は?

  2. Dockerコンテナを終了する方法

  3. Dockerコンテナで実行されるプログラムにシグナルを送信するには?

  1. DockerコンテナでMySQLを実行する方法

  2. ユーザーを Docker コンテナに追加するにはどうすればよいですか?

  3. docker コンテナ内で cron ジョブを実行する方法

  1. DockerコンテナにSSHで接続する方法

  2. 実行中のDockerコンテナでコマンドを実行する方法

  3. Dockerコンテナに静的IPを割り当てる方法