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レポ。
ホスト | 容器 | サービス |
80 | 80 | nginx |
2003年 | 2003年 | カーボンレシーバー-平文 |
2004年 | 2004年 | カーボンレシーバー-ピクルス |
2023年 | 2023年 | カーボンアグリゲーター-平文 |
2024年 | 2024年 | カーボンアグリゲーター-ピクルス |
8080 | 8080 | Graphiteの内部gunicornポート(Nginxプロキシなし)。 |
8125 | 8125 | statsd |
8126 | 8126 | statsd 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を実行する方法を学びました。 数値の時系列データを簡単に監視およびグラフ化できるようになりました。