Ubuntu20.04にGraphiteとGraphiteWebをインストールする方法

Graphiteは、数値の時系列データとそのグラフをリアルタイムで保存するための無料のオープンソース監視ツールです。

Graphiteはそれ自体ではデータを収集せず、代わりに他のツールからデータを受け取ります。 Graphiteはデータを受信するとすぐに、Webアプリでグラフを作成できます。

このチュートリアルでは、 Graphiteをインストールするグラファイトウェブ Ubuntu20.04で Docker。 Graphiteインスタンスを実行する最も簡単な方法は、dockerを使用することです。

グラファイトはどのように機能しますか?

Graphiteアーキテクチャの概要は、次の3つのソフトウェアコンポーネントで構成されていることを示しています。

  • 炭素:データ収集のために時系列データを受動的にリッスンするツイストデーモン。
  • ささやき:時系列データを保存するためのシンプルなデータベースライブラリ
  • グラファイトWebApp:Cairoを使用してオンデマンドでグラフィックをレンダリングするDjangoWebApp。

アプリケーションは、データをGraphiteの処理バックエンドであるCarbonに送信します。Carbonは、データをGraphiteのデータベースWhisperに格納します。 次に、GraphiteWebインターフェイスであるGraphiteWebAppを介してデータを表示できます。

ステップ1:UbuntuにDockerをインストールする

まず、UbuntuにDockerをインストールします。 Dockerを使用すると、Grapgitueを数秒で実行できます。

Dockerをインストールするには、いくつかの前提条件をインストールする必要があります。

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

次に、DockerリポジトリのGPキーを追加しましょう。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

次に、DockerをAPTソースに追加します。 キャッシュが自動的に更新されます。

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

次に、次のコマンドを使用してdockerをインストールします。

$ sudo apt install docker-ce

ユーザーをdockerグループに追加して、ユーザーがdockerコマンドを使用せずに使用できるようにします。 sudo 特権:

$ sudo usermod -aG docker username

次に、終了して再度ログインし、アクションを有効にします

ステップ2:Dockerでグラファイトを実行する

Dockerを使用してグラファイトを実行するのは非常に高速です。 今回は、以前に見たデフォルト以外のコンポーネントが必要になります。

  • Nginx:グラファイトダッシュボードのリバースプロキシ
  • 黒鉛:フロントエンドダッシュボード
  • 炭素:バックエンド
  • Statsd:UDPベースのバックエンドプロキシ

また、graphiteが必要とするさまざまなポートが利用可能かどうかを確認する必要があります。 また、プロセス中に、ホストとコンテナの間でポートマッピングが実行されるため、実際の構成に合わない場合は、側でマッピング構成を変更できます。 あなたはより多くの情報を持つことができます グラファイトの公式Githubレポ

ホスト容器サービス
8080nginx
2003年2003年カーボンレシーバー-平文
2004年2004年カーボンレシーバー-ピクルス
2023年2023年カーボンアグリゲーター-平文
2024年2024年カーボンアグリゲーター-ピクルス
80808080Graphiteの内部gunicornポート(Nginxプロキシなし)。
81258125statsd
81268126statsd admin

nginxdockerを実行します

この例では、Nginxリバースプロキシとして独立したコンテナを実行します。

$ docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/htpasswd:/etc/nginx/htpasswd -v /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /etc/nginx/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro etopian/nginx-proxy

証明書を統合するときに、すべてのデフォルトのHTTPトラフィックをHTTPSにリダイレクトするのに役立ちます。 証明書を統合するためにマップされたボリュームに注意する必要があります。 /etc/nginx/certs

次に、ファイアウォールのポート80と443を開きます。

$ sudo ufw allow 80,443/tcp

ステップ3:Graphite-SSL証明書をnginxに統合します

すでにSSL証明書をお持ちであると考えております。 Nginxでこの場合に構成されたマップされたボリュームにコピーする必要があります。 キーと証明書に次のような名前を付けます。

  • domain.com.crt
  • domain.com.key

そして、マップされたボリューム内の2つのファイルをコピーします。 証明書をコピーする

$ cp websitefortesting.com.crt /etc/nginx/certs

キーをコピーします

$ cp websitefortesting.com.key /etc/nginx/certs

グラファイトを実行します

グラファイトを実行するには、いくつかのオプションを指定してdockerrunコマンドも使用します。 この場合、サービスのドメイン名をパラメータで示します -e VIRTUAL_HOST=domain.com それを開始しながら

$ docker run -d
--name graphite
--restart=always
-e VIRTUAL_HOST=websitefortesting.com
-p 2003-2004:2003-2004
-p 2023-2024:2023-2024
-p 8125:8125/udp
-p 8126:8126
graphiteapp/graphite-statsd

ご覧のとおり、Nginxのポート80はすでに実行されているため、マップする必要はありません。 URLでグラファイトにアクセスしてみてください https://domain.com

あなたはstatsdを見ることができます。

グラファイト統計

Graphiteのデフォルトのログインユーザー名はrootで、rootパスワードでログインします。

ルートプロファイルのデフォルトのパスワードを変更して、でを使用してより安全にする必要があります。 https://domain.com/admin/password_change/

グラファイトパスワード変更

新しいパスワードでアクセスできます。

結論

このチュートリアルでは、dockerを使用してUbuntu20.04でgraphiteを実行する方法を学びました。 数値の時系列データを簡単に監視およびグラフ化できるようになりました。