ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由: Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このガイドはもう維持されていません。

代わりに参照してください:
このガイドは参考として役立つかもしれませんが、他のUbuntuリリースでは機能しない可能性があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

序章

Graphiteとstatsdは、データを視覚化するために使用される非常に価値のあるツールです。 Statsdは実行中のプロセスに関するデータを収集し、graphiteはグラフの作成に使用できるグラフ作成ライブラリです。

これらのツールをUbuntu12.04VPSインスタンスにセットアップします。

Graphiteのインストール

グラファイトには、満たす必要のある多くの依存関係があります。 また、WebインターフェイスにアクセスできるようにするWebサーバーパッケージをインストールする必要があります。

まず、apt-getを使用してパッケージを更新およびアップグレードします。

sudo apt-get update
sudo apt-get upgrade

必要なパッケージをインストールします。

sudo apt-get install --assume-yes apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 build-essential python3.2 python-dev libpython3.2 python3-minimal libapache2-mod-wsgi libaprutil1-ldap memcached python-cairo-dev python-django python-ldap python-memcache python-pysqlite2 sqlite3 erlang-os-mon erlang-snmp rabbitmq-server bzr expect libapache2-mod-python python-setuptools

python-setuptoolの「easy_install」ユーティリティを使用して、さらにいくつかの重要なpythonコンポーネントをインストールします。

sudo easy_install django-tagging zope.interface twisted txamqp

次に、プロジェクトのWebサイトからGraphiteコンポーネントを取得します。

Carbonはデータアグリゲーター、Graphite webはWebコンポーネント、whisperはデータベースライブラリです。

cd ~
wget https://launchpad.net/graphite/0.9/0.9.10/+download/graphite-web-0.9.10.tar.gz
wget https://launchpad.net/graphite/0.9/0.9.10/+download/carbon-0.9.10.tar.gz
wget https://launchpad.net/graphite/0.9/0.9.10/+download/whisper-0.9.10.tar.gz

tarを使用してアーカイブを抽出します。

find *.tar.gz -exec tar -zxvf '{}' \;

whisperディレクトリに移動し、提供されたセットアップファイルを使用してインストールします。

cd whisper*
sudo python setup.py install

次に、carbonディレクトリに移動して、同じことを行います。

cd ../carbon*
sudo python setup.py install

最後に、Graphiteディレクトリに移動して、依存関係を確認します。 依存関係がすべて正しくインストールされていることを示すメッセージが表示されます。

cd ../graphite*
sudo python check-dependencies.py
All necessary dependencies are met.
All optional dependencies are met.

これで、Graphiteを安全にインストールできます。

sudo python setup.py install

グラファイトの構成

次に、インストールしたばかりのソフトウェアを構成します。

Graphite構成ディレクトリに移動し、アプリケーションに使用するいくつかのファイルをコピーまたは作成します。

cd /opt/graphite/conf
sudo cp carbon.conf.example carbon.conf
Create a file to handle our polling settings:
sudo nano storage-schemas.conf

次のデータをファイルにコピーします。

[stats]
priority = 110
pattern = .*
retentions = 10:2160,60:10080,600:262974

ファイルを保存して閉じます。

次に、Graphiteデータベースを構成します。 Graphite webappディレクトリに移動し、データベーススクリプトを実行します。

cd /opt/graphite/webapp/graphite/
sudo python manage.py syncdb

スーパーユーザーアカウントを作成するように求められます。 「yes」と入力して続行し、プロンプトに従います。

このディレクトリにいる間に、ローカル設定のサンプルファイルを製品版にコピーします。

sudo cp local_settings.py.example local_settings.py

Apacheの構成

次に、Webコンテンツを提供するようにApacheを設定します。

いくつかの設定例ファイルをコピーすることから始めます。

sudo cp ~/graphite*/examples/example-graphite-vhost.conf /etc/apache2/sites-available/default
sudo cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi

Apache WebユーザーにGraphiteのストレージディレクトリの所有権を与えて、データを適切に書き込めるようにします。

sudo chown -R www-data:www-data /opt/graphite/storage

WSGIデータ用のディレクトリを作成します。

sudo mkdir -p /etc/httpd/wsgi

以前にコピーしたApache構成ファイルを編集する必要があります。

sudo nano /etc/apache2/sites-available/default

作成したディレクトリを反映するようにWSGISocketPrefixを変更します。 また、ServerNameプロパティを変更して、ドメイン名またはIPアドレスを反映させます。

...
...
WSGISocketPrefix /etc/httpd/wsgi

<VirtualHost *:80>
	ServerName Your.Domain.Name.Here
	...
	...

ファイルを保存して閉じます。

Apacheを再起動して、変更を実装します。

sudo service apache2 restart

Statsdのインストールと構成

statsdを使用するには、node.jsをインストールする必要があります。 これを行うには、PPAを追加するユーティリティを含む「python-software-properties」をインストールします。

sudo apt-get install python-software-properties

これで、適切なPPAを追加できます。

sudo apt-add-repository ppa:chris-lea/node.js

「Enter」を押して、リポジトリの変更を受け入れます。 次に、aptパッケージリストを再度更新し、node.jsをインストールします。

sudo apt-get update
sudo apt-get install nodejs

次に、statsdをインストールして、VPSからGraphiteデータをフィードします。

まず、プロジェクトファイルをダウンロードできるようにgitをインストールします。

sudo apt-get install git

次に、gitリポジトリをオプションのソフトウェアディレクトリに複製します。

cd /opt
sudo git clone git://github.com/etsy/statsd.git

新しいstatsdディレクトリ内にstatsdの構成ファイルを作成します。

sudo nano /opt/statsd/localConfig.js

次の情報をコピーしてファイルに貼り付けます。

{
	graphitePort: 2003,
	graphiteHost: "127.0.0.1",
	port: 8125
}

サービスの開始

カーボンデータアグリゲーターを起動して、データの送信を開始します。

sudo /opt/graphite/bin/carbon-cache.py start

次に、statsdディレクトリに移動し、node.jsコマンドを使用してファイルを実行します。

cd /opt/statsd
node ./stats.js ./localConfig.js
19 Jul 21:15:34 - reading config file: ./localConfig.js
19 Jul 21:15:34 - server is up

statsdサーバーが稼働中であることを通知するメッセージが表示されます。

結果の表示

グラフデータを表示するには、Webブラウザーを開き、ドメインまたはIPアドレスに移動します。

Your.Domain.Name.Here

中央に空白のボックスが表示されます。

左側にナビゲーションメニューも表示されます。 これが最初に取り上げる内容です

[グラファイト]ボックスをクリックすると、さまざまなオプションが表示されます。 ファイル階層をクリックすると、多くのデータセットが表示されます。

いずれかを選択してクリックします。 データがグラフ化されていないように見えます。 情報を表示するには、スケールを変更する必要があります。

Graphite Composerで、左から2番目のアイコンを選択して、日付範囲を調整します。 現在の時刻のいずれかの側で数時間しかキャプチャしない範囲を選択してください。

次に「グラフオプション」をクリックし、「ラインモード」の上にマウスを置き、「接続されたライン」を選択してデータポイントを接続します。

また、「自動更新」を選択して、データを受信したときにグラフを自動的に更新することもできます。

を選択するすべての新しいデータセットは、そのデータをグラフに追加することに注意してください。 そのデータセットには切り替わりません。 「グラフデータ」をクリックして、必要に応じてデータセットを削除します。 左側のデータカテゴリをもう一度クリックして、選択を解除することもできます。

ジャスティン・エリングウッド