Graphiteは、数値の時系列データとそのグラフをリアルタイムで保存するための無料のオープンソース監視ツールです。
Graphiteはそれ自体ではデータを収集せず、代わりに他のツールからデータを受け取ります。 Graphiteはデータを受信するとすぐに、Webアプリでグラフを作成できます。
このチュートリアルでは、Graphiteをインストールする方法を学びます。 およびGraphiteWeb Ubuntu20.04でdockerを使用 。 Graphiteインスタンスを実行する最も簡単な方法は、dockerを使用することです。
Graphiteはどのように機能しますか?
Graphiteアーキテクチャの概要は、3つのソフトウェアコンポーネントで構成されていることを示しています。
- カーボン :データ収集のために時系列データを受動的にリッスンするツイストデーモン。
- ささやき :時系列データを保存するためのシンプルなデータベースライブラリ
- グラファイトWebアプリ :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グループに追加して、sudo権限なしでdockerコマンドを使用できるようにします。
$ 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
でgraphiteにアクセスしてみてください
statsdを確認できます。
Graphiteのデフォルトのログインユーザー名はrootで、rootパスワードでログインします。
https://domain.com/admin/password_change/
を使用して、ルートプロファイルのデフォルトのパスワードを変更し、より安全にする必要があります。
新しいパスワードでアクセスできます。
結論
このチュートリアルでは、dockerを使用してUbuntu20.04でgraphiteを実行する方法を学びました。数値の時系列データを簡単に監視およびグラフ化できるようになりました。