Ubuntu14.04でGraphiteの任意の統計を収集するようにStatsDを構成する方法
序章
Graphiteは、さまざまな種類のデータを柔軟かつ強力な方法で視覚化できるグラフ作成ライブラリです。 他の統計収集アプリケーションから送信されたデータをグラフ化します。
以前のガイドでは、Graphite自体のインストールと構成の方法とシステムとサービスの統計をコンパイルするためのcollectdのインストールと構成の方法について説明しました。
このガイドでは、StatsDをインストールして構成する方法について説明します。 StatsDは、任意の統計を収集するために使用できる軽量の統計収集デーモンです。
StatsDは、Graphiteの構成された書き込み間隔と同期して統計をGraphiteにフラッシュします。 これを行うために、フラッシュ間隔の間にすべてのデータを集約し、Graphiteに送信する統計ごとに単一のポイントを作成します。
このように、StatsDを使用すると、アプリケーションはGraphite統計を送信するための有効なレート制限を回避できます。 さまざまなプログラミング言語で記述された多くのライブラリがあり、アプリケーションで統計追跡を組み込むのは簡単です。
このガイドでは、StatsDをインストールして構成します。 前のガイドのインストール手順に従っており、Ubuntu14.04サーバーでGraphiteとcollectdの両方が構成されていることを前提としています。
StatsDをインストールする
StatsDプログラムは、Ubuntuのデフォルトリポジトリでは使用できません。 ただし、GitHubで入手でき、Ubuntuパッケージにコンパイルするために必要な構成ファイルがあります。
コンポーネントを取得する
実際のプログラムをインストールする前に、リポジトリからいくつかのパッケージを取得する必要があります。 リポジトリのクローンを作成するには、git
が必要です。 StatsDはノードアプリケーションであるため、node.jsも必要です。
また、Ubuntuパッケージをビルドできるようにするいくつかのパッケージも必要です。 今すぐそれらすべてを入手しましょう:
sudo apt-get install git nodejs devscripts debhelper
ホームディレクトリにパッケージを作成します。 具体的には、ホームディレクトリに「build」というディレクトリを作成して、このプロセスを完了します。
今すぐディレクトリを作成します。
mkdir ~/build
次に、StatsDプロジェクトをそのディレクトリに複製します。 ディレクトリに移動してから、cloneコマンドを発行します。
cd ~/build
git clone https://github.com/etsy/statsd.git
パッケージをビルドしてインストールする
StatsDファイルを含む新しいディレクトリに移動します。
cd statsd
これで、次のコマンドを発行するだけでStatsDパッケージを作成できます。
dpkg-buildpackage
.deb
ファイルが~/build
ディレクトリに作成されます。 そのディレクトリに戻りましょう。
cd ..
パッケージをインストールする前に、Carbonサービスを停止したいと思います。 これは、StatsDサービスがインストールされていて、まだ適切に構成されていない場合、すぐに情報の送信を開始するためです。
次のコマンドを発行して、Carbonサービスを一時的に停止します。
sudo service carbon-cache stop
次に、パッケージをシステムにインストールできます。
sudo dpkg -i statsd*.deb
前に述べたように、Statsdプロセスは自動的に開始されます。 とりあえず停止して、Carbonサービスを再開しましょう。 これにより、他のサービスでCarbonをアクティブにしたまま、StatsDを構成できます。
sudo service statsd stop
sudo service carbon-cache start
これで、StatsDサービスがサーバーにインストールされました。 ただし、正しく連携するようにすべてのコンポーネントを構成する必要があります。
StatsDを構成する
最初にすべきことは、StatsD構成ファイルを変更することです。
テキストエディタでファイルを開きます。
sudo nano /etc/statsd/localConfig.js
次のようになります。
{graphitePort:2003、graphiteHost:“ localhost”、ポート:8125}
この構成では、1つの設定のみを調整します。 従来の名前空間と呼ばれるものをオフにします。
StatsDはこれを使用して、データを別の方法で整理します。 ただし、最近のバージョンでは、より直感的な構造で標準化されています。 新しいフォーマットを使用したいと思います。
これを行うには、次の行を追加する必要があります。
{graphitePort:2003、graphiteHost:“ localhost”、ポート:8125 、graphite:{ legacyNamespace:false } }
これにより、より賢明な命名規則を使用できるようになります。 終了したら、ファイルを保存して閉じます。
StatsDのストレージスキーマを作成する
次に、さらにいくつかのストレージスキーマを定義する必要があります。
storage-schemaファイルを開きます。
sudo nano /etc/carbon/storage-schemas.conf
collectdに対して定義したものとまったく同じ保持ポリシーを使用します。 唯一の違いは、名前と一致するパターンです。
StatsDは、すべてのデータをstats
プレフィックスを付けてGraphiteに送信するため、そのパターンに一致させることができます。 このをのデフォルトのストレージ仕様の上に置くことを忘れないでください。
[statsd]
pattern = ^stats.*
retentions = 10s:1d,1m:7d,10m:1y
終了したら、ファイルを保存して閉じます。
データ集約構成を作成する
いくつかの集計仕様を設定しましょう。 StatsDは非常に特殊な方法でデータを送信するため、正しいパターンを照合することで、データを正しく集約していることを簡単に確認できます。
エディターでファイルを開きます。
sudo nano /etc/carbon/storage-aggregation.conf
値を正確に変換するには、柔軟な方法で集計を構成する必要があります。 StatsDプロジェクトから、データを集約するための最適な方法についていくつかの手がかりを取得します。
現在、集計は次のようになっています。
[min]パターン=.min$ xFilesFactor = 0.1 AggregationMethod = min
[最大]パターン=.max$ xFilesFactor = 0.1aggregationMethod = max
[合計]パターン=.count$ xFilesFactor =0aggregationMethod=合計
[default_average]パターン=。*xFilesFactor=0.5aggregationMethod=平均