開発者ドキュメント

Ubuntu14.04でGraphiteのシステムメトリックを収集するように収集を構成する方法

序章

データの収集と視覚化は、サーバーとプロジェクトについて十分な情報に基づいた決定を行うための重要な方法です。

以前のガイドでは、サーバー上のデータを視覚化するためにGraphiteをインストールおよび構成する方法について説明しました。 ただし、データを収集したり、Graphiteに渡したりするための優れた方法はありませんでした。

このガイドでは、 collectd のインストールと使用について説明します。これは、サーバーと実行中のサービスに関するメトリックを収集および整理できるシステム統計収集機能です。

データをGraphiteに渡してレンダリングするようにcollectdをインストールおよび構成する方法を示します。 前回のガイドで示したように、Ubuntu14.04サーバーでGraphiteが稼働していることを前提としています。

Collectedをインストール

最初に行うことは、collectdをインストールすることです。 これはデフォルトのリポジトリから取得できます。

ローカルパッケージインデックスを更新してから、次のように入力してインストールします。

sudo apt-get update
sudo apt-get install collectd collectd-utils

これにより、デーモンとヘルパー制御インターフェースがインストールされます。 収集したデータをGraphiteに渡すことができるように構成する必要があります。

Collectedを構成する

まず、root権限でエディターでcollectd構成ファイルを開きます。

sudo nano /etc/collectd/collectd.conf

最初に設定する必要があるのは、使用しているマシンのホスト名です。 Collectedは、リモートのGraphiteサーバーに情報を送信するために使用できますが、このガイドでは同じマシンでこれを使用しています。 任意の名前を選択できます。

ホスト名「 graph_host

実際のドメイン名を設定している場合は、これをスキップして、つま先をそのままにしておくことができます FQDNLookup サーバーがDNSシステムを使用して適切なドメインを取得できるようにします。

「Interval」のパラメーターがあることに気付くかもしれません。これは、collectdがホスト上のデータを照会する前に待機する間隔です。 これはデフォルトで10秒に設定されています。 Graphiteの記事を読んでいくと、これがGraphiteが統計を追跡するための通常の最短間隔であることがわかります。 データを確実に記録するには、これら2つの値が一致している必要があります。

次に、Collectedが情報を収集するサービスについて説明します。 Collectdは、プラグインを使用してこれを行います。 ほとんどのプラグインは、システムから情報を読み取るために使用されますが、プラグインは、情報の送信先を定義するためにも使用されます。 Graphiteは、これらの書き込みプラグインの1つです。

このガイドでは、次のプラグインが有効になっていることを確認します。 他のプラグインをコメントアウトすることも、ホストで試してみたい場合は、プラグインを正しく構成することもできます。

LoadPlugin apache
LoadPlugin cpu
LoadPlugin df
LoadPlugin entropy
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin processes
LoadPlugin rrdtool
LoadPlugin users
LoadPlugin write_graphite

これらのいくつかは構成が必要であり、それらのいくつかはそのままで正常に動作します。

ファイルを続けていくと、各プラグインの構成セクションに移動します。 プラグインは、構成セクションごとに「ブロック」を定義することによって構成されます。 これは、Apacheがブロック内のディレクティブを区画化する方法にいくぶん似ています。 プラグインのほとんどはそのままで正常に動作するため、これらのいくつかのみを見ていきます。

Graphiteを提供するためにApacheがインストールされているため、Apacheプラグインを有効にしました。 次のような単純なセクションでApacheプラグインを構成できます。

URL「http:// domain_name_or_IP / server-status?auto」サーバー「apache」

実稼働環境では、サーバー統計を認証レイヤーの背後で保護したい場合があります。 ファイルのこのセクションにあるコメント付きのコードを見て、それがどのように機能するかを確認できます。 簡単にするために、認証されていないオープンセットアップを示します。

作成します server-status Apacheのページで、必要な詳細を少し説明しています。

のために df プラグインは、ディスクがどれだけいっぱいかを教えてくれるので、次のような簡単な構成を追加できます。

デバイス「/dev/ vda 」MountPoint「/」FSType「ext3」

システム上のドライブのデバイス名をデバイスに指定する必要があります。 これは、ターミナルでコマンドを入力することで見つけることができます。

 df
 ファイルシステム1K-使用可能なブロック使用可能使用%マウント済み/ dev / vda 61796348 1766820 56867416 4%/なし4 0 4 0%/ sys / fs / cgroup udev 2013364 12 2013352 1%/ dev tmpfs 404836 340 404496 1%/ run none 5120 0 5120 0%/ run / lock none 2024168 0 2024168 0%/ run / shm none 102400 0 102400 0%/ run / user

監視するネットワークインターフェイスを選択します。

インターフェイス「 eth0 」IgnoreSelectedfalse

最後に、Graphiteプラグインについて説明します。 これにより、collectdにGraphiteインスタンスへの接続方法が示されます。 セクションを次のように表示します。

 グラフ化」>ホスト「localhost」ポート「2003」プロトコル「tcp」LogSendErrorstrueプレフィックス「collectd」。  StoreRates true AlwaysAppendDS false EscapeCharacter“ _”

これは、データを渡すためにCarbonに接続する方法をデーモンに指示します。 CarbonがTCP接続をリッスンするために使用するポート2003のローカルコンピューターを参照するように指定します。

次に、そのプロトコルを使用してデータを確実にCarbonに渡すように指示します。 ハンドオフに関するエラーをログに記録してから、データのプレフィックスを設定するように指示します。 この値はドットで終了するため、このホストのすべてのcollectd統計は「collectd」ディレクトリに保存されます。

ストアレートは、合格する前に統計をゲージに変換するかどうかを決定します。 データソースの追加行は、有効になっている場合、ノード名をメトリックに追加します。 エスケープ文字は、Carbonがそれらをディレクトリに分割しないようにするために、ドットが含まれる特定の値がどのように変換されるかを決定します。

終了したら、ファイルを保存して閉じます。

統計を報告するようにApacheを構成する

構成ファイルで、Apache統計追跡を有効にしました。 ただし、これを許可するようにApacheを設定する必要があります。

Graphiteに対して有効にしたApache仮想ホストファイルに、Apacheに統計を報告するように指示する単純なロケーションブロックを追加できます。

テキストエディタでファイルを開きます。

sudo nano /etc/apache2/sites-available/apache2-graphite.conf

「コンテンツ」ロケーションブロックの下に、Apacheが統計を提供するように別のブロックを追加します。 /server-status ページ。 次のセクションを追加します。

エイリアス/content/ / usr / share /graphite-web/static/  SetHandlerなし
<span class="highlight">&lt;Location "/server-status"&gt;</span>
    <span class="highlight">SetHandler server-status</span>
    <span class="highlight">Require all granted</span>
<span class="highlight">&lt;/Location&gt;</span>

ErrorLog ${APACHE_LOG_DIR}/graphite-web_error.log

終了したら、ファイルを保存して閉じます。

これで、Apacheをリロードして、新しい統計にアクセスできます。

sudo service apache2 reload

Webブラウザーのページにアクセスして、すべてが正しく機能していることを確認できます。 ドメインに移動し、続いて /server-status:

http:// domain_name_or_IP / server-status

次のようなページが表示されます。

ストレージスキーマとアグリゲーションの設定

サービスに関する統計を収集するように構成された収集が完了したので、受け取ったデータを正しく処理するようにGraphiteを調整する必要があります。

まず、ストレージスキーマ定義を作成しましょう。 ストレージスキーマ構成ファイルを開きます。

sudo nano /etc/carbon/storage-schemas.conf

内部に、情報が保持される期間と、さまざまなレベルでのデータの詳細度を指定する定義を追加する必要があります。

収集した情報は、1日10秒、7日1分、1年10分間隔で保存するようにGraphiteに指示します。

これにより、最近の活動に関する詳細情報と長期的な一般的な傾向とのバランスが取れます。 Collectdは、文字列で始まるメトリックを渡します collectd、そのパターンに一致します。

説明したポリシーは、これらの行を追加することで追加できます。 これらののデフォルトポリシーの上に追加することを忘れないでください。そうしないと、適用されません。

[collectd]
pattern = ^collectd.*
retentions = 10s:1d,1m:7d,10m:1y

終了したら、ファイルを保存して閉じます。

サービスをリロードする

collectdが構成され、Graphiteがそのデータの処理方法を認識したので、サービスをリロードできます。

まず、Carbonサービスを再起動します。 「restart」コマンドの代わりに、「stop」コマンドを使用してから「start」コマンドを数秒間隔で使用することをお勧めします。 これにより、再起動前にデータが完全にフラッシュされるようになります。

sudo service carbon-cache stop          ## wait a few seconds here
sudo service carbon-cache start

Carbonサービスが再び稼働し始めたら、collectdでも同じことができます。 サービスはまだ実行されていない可能性がありますが、これにより、データが正しく処理されるようになります。

sudo service collectd stop
sudo service collectd start

この後、ドメインに再度アクセスすると、収集した情報を含む新しいツリーが表示されます。

結論

収集された構成が完了し、統計がすでに記録されています。 これで、サーバーとサービスを追跡するようにデーモンが構成されました。

必要に応じて、collectd用の追加のプラグインを構成または作成できます。 collectdを使用する追加のサーバーは、Graphiteサーバーにデータを送信することもできます。 Collectedは主に、一般的なサービスとマシン全体に関する統計を収集するために使用されます。

次の記事では、データをGraphiteにフラッシュする前にデータをキャッシュできるサービスであるStatsDを設定します。 これにより、前の記事で説明した統計の送信が速すぎる場合のデータ損失の問題を回避できます。 また、独自のプログラムやプロジェクト内の統計を追跡するためのインターフェイスも提供します。

ジャスティン・エリングウッド
モバイルバージョンを終了