Ubuntu14.04サーバーにGraphiteをインストールして使用する方法
序章
システムとアプリケーションに関する情報を収集することで、インフラストラクチャ、サーバー、およびソフトウェアに関する十分な情報に基づいた意思決定を行うために必要な情報を得ることができます。
この種の情報を取得し、理解しやすい方法で表示するには、さまざまな方法があります。 これらのアプリケーションの1つは、Graphiteと呼ばれます。
Graphiteは、システムから収集されたデータの視覚的表現を整理およびレンダリングするための優れたツールです。 柔軟性が高く、追跡しているメトリックのパフォーマンスと正常性の詳細な表現と広範な概要の両方のメリットを享受できるように構成できます。
以前のガイドでは、グラフ作成および統計収集アプリケーションの概要を確認しました。これらをつなぎ合わせて、統計を表示する堅牢なシステムを作成できます。 このガイドでは、Ubuntu14.04サーバーでGraphiteをセットアップする方法を説明します。 今後のガイドでは、collectdおよびStatsdからGraphite統計をフィードする方法について説明します。
Graphiteをインストールする
開始するには、Graphiteコンポーネントをダウンロードしてインストールする必要があります。 グラフ作成ソフトウェアの概要を見ると、Graphiteがいくつかのコンポーネントで構成されていることに気付くでしょう。Webアプリケーション、Carbonと呼ばれるストレージバックエンド、およびwhisperと呼ばれるデータベースライブラリです。
グラファイトは、以前はインストールがかなり困難でした。 幸い、Ubuntu 14.04では、必要なすべてのコンポーネントがデフォルトのリポジトリにあります。
ローカルパッケージインデックスを更新してから、必要なパッケージをインストールしましょう。
sudo apt-get update
sudo apt-get install graphite-web graphite-carbon
インストール中に、インストールをパージすることにした場合に、Carbonでデータベースファイルを削除するかどうかを尋ねられます。 統計を破壊しないように、ここで「いいえ」を選択してください。 新しく始める必要がある場合は、いつでも手動でファイルを削除できます(var/lib/graphite/whisper
に保持)。
インストールが完了すると、Graphiteがインストールされます。 ただし、すべてを実行して実行するには、追加の構成を行う必要があります。
Djangoのデータベースを構成する
Graphiteデータ自体はCarbonとwhisperデータベースライブラリによって処理されますが、WebアプリケーションはDjango Pythonアプリケーションであり、そのデータをどこかに保存する必要があります。
デフォルトでは、これはSQLite3データベースファイルを使用するように構成されています。 ただし、これらは本格的なリレーショナルデータベース管理システムほど堅牢ではないため、代わりにPostgreSQLを使用するようにアプリを構成します。 PostgreSQLはデータの入力に関してはるかに厳密であり、将来的に問題を引き起こす可能性のある例外をキャッチします。
PostgreSQLコンポーネントをインストールする
次のように入力することで、必要なデータベースソフトウェアとヘルパーパッケージをインストールできます。
sudo apt-get install postgresql libpq-dev python-psycopg2
これにより、データベースソフトウェアと、Graphiteがデータベースに接続して通信するために使用するPythonライブラリがインストールされます。
データベースユーザーとデータベースを作成する
データベースソフトウェアをインストールしたら、Graphiteが使用するPostgreSQLユーザーとデータベースを作成する必要があります。
postgres
システムユーザーとしてpsql
コマンドを使用して、インタラクティブなPostgreSQLプロンプトにサインインできます。
sudo -u postgres psql
次に、Djangoがデータベースを操作するために使用するデータベースユーザーアカウントを作成する必要があります。 ユーザーをgraphite
と呼びます。 このユーザーの安全なパスワードを選択します。
パスワード付きのユーザーgraphiteを作成します'パスワード';
これで、データベースを作成して、新しいユーザーにデータベースの所有権を与えることができます。 データベースgraphite
も呼び出して、それらの関連付けを簡単に認識できるようにします。
CREATE DATABASE graphite WITH OWNER graphite;
終了したら、PostgreSQLセッションを終了できます。
\q
Postgresがファイル履歴を保存できなかったことを示すメッセージが表示される場合があります。 これは私たちにとって問題ではないので、続行できます。
GraphiteWebアプリケーションを構成する
これで、データベースとユーザーの準備が整いました。 ただし、構成したコンポーネントを使用するには、Graphiteの設定を変更する必要があります。 他にも確認すべき設定がいくつかあります。
GraphiteWebアプリ構成ファイルを開きます。
sudo nano /etc/graphite/local_settings.py
まず、ハッシュを作成するときにソルトとして使用される秘密鍵を設定する必要があります。 SECRET_KEY
パラメーターのコメントを解除し、値を長くて一意の値に変更します。
SECRET_KEY =' a_salty_string '
次に、タイムゾーンを指定する必要があります。 これはグラフに表示される時間に影響するため、設定することが重要です。 このリストの「TZ」列で指定されているタイムゾーンに設定します。
TIME_ZONE =' America / New_York '
また、グラフデータを保存するための認証を構成する必要があります。 データベースを同期すると、ユーザーアカウントを作成できるようになりますが、次の行のコメントを解除して認証を有効にする必要があります。
USE_REMOTE_USER_AUTHENTICATION = True
次に、DATABASES
辞書の定義を探します。 Postgres情報を反映するように値を変更したいと思います。 NAME
、ENGINE
、USER
、PASSWORD
、およびHOST
キーを変更する必要があります。
終了すると、次のようになります。
DATABASES = {'default':{'NAME':' graphite '、'ENGINE':'django.db.backends。 postgresql_psycopg2 '、'ユーザー':'グラファイト'、'パスワード':'パスワード'、'ホスト':' 127.0.0.1 '、'ポート':''}}
赤い領域は、変更する必要のある値です。 パスワードは、Postgresでgraphite
ユーザー用に選択したものに変更してください。
また、必ずHOST
パラメーターを設定してください。 これを空白のままにすると、Postgresはピア認証を使用して接続しようとしていると見なします。この場合、ピア認証は正しく認証されません。
終了したら、ファイルを保存して閉じます。
データベースを同期する
データベースセクションに入力したので、データベースを同期して正しい構造を作成できます。
これを行うには、次のように入力します。
sudo graphite-manage syncdb
データベースのスーパーユーザーアカウントを作成するように求められます。 インターフェイスにサインインできるように、新しいユーザーを作成します。 これは好きなように呼び出すことができます。 これにより、グラフを保存してインターフェイスを変更できます。
Carbonを構成する
データベースができたので、GraphiteストレージバックエンドであるCarbonの構成を開始できます。
まず、起動時にカーボンサービスを開始できるようにします。 これを行うには、サービス構成ファイルを開きます。
sudo nano /etc/default/graphite-carbon
これには、サービスが起動時に開始するかどうかを指定するパラメーターが1つだけあります。 値を「true」に変更します。
CARBON_CACHE_ENABLED=true
ファイルを保存して閉じます。
次に、Carbon構成ファイルを開きます。
sudo nano /etc/carbon/carbon.conf
このファイルのほとんどは、私たちの目的のためにすでに正しく構成されています。 ただし、小さな変更を加えます。
このディレクティブの設定をtrueに調整して、ログローテーションをオンにします。
ENABLE_LOGROTATION = True
ファイルを保存して閉じます。
ストレージスキーマの構成
次に、ストレージスキーマファイルを開きます。 これは、Carbonに値を保存する期間と、これらの値をどの程度詳細にする必要があるかを示します。
sudo nano /etc/carbon/storage-schemas.conf
内部には、次のようなエントリがあります。
[カーボン]パターン=^カーボン。 保持=60:90d
[default_1min_for_1day]パターン=。*保持=60s:1d