OSS Graphite

OSSの監視ツール『Graphite』を徹底解説

Table of Contents

  • 監視をするための必要項目
  • Graphiteとは
  • Graphiteはどのように使用されるのか?
  • Graphiteのコンポーネント
    • 1. Carbon
    • 2. Whisper
    • 3. Graphite-web
  • コレクター
  • 可視化ツール 
  • まとめ

オープンソースの監視ツールのGraphiteと聞いて、ご存知の方はどれくらいいらっしゃるでしょうか?

インフラの監視というものは、昨今において必要不可欠なものとなり、どの企業もどのように監視を行っていこうかと必ず悩むものだと思います。有名なOSSの監視ツールといえば、Zabbix、Grafanaなどといったものが有名でありますが、その他にもあなたが知らない監視ツールがいくつか存在しています。今回の記事では、その一つであるGraphiteについて、そのアーキテクチャや基礎知識を中心に、解説していきます。

監視をするための必要項目

監視を行うにあたって、どのように監視していくにしても必要となってくるコンポーネントがあります。それが以下です。

  • データ
  • コレクター
  • ストレージ
  • 可視化ツール

データに関しては、ユーザーが監視したいデータということになりますので、特に気にする必要はありませんが、コレクター、ストレージ、可視化ツールについては、何かしらのツールを使用することになります。
例としては、コレクターはCollectD、可視化ツールはGrafanaということになり、Graphiteはこのコンポーネントの中の、ストレージにあたります(可視化という役割を担うことも出来る)。

Graphiteとは

Graphiteのできることは、上記で述べたように2つになります。

1.時系列データ(time-series data)の保管
2.データのグラフ化

Graphiteは、拡張性の高いリアルタイムグラフ作成システムです。 ユーザーは、グラフ化したい時系列データをデータ収集用のアプリケーションを使用し、そのデータをGraphiteの処理バックエンドであるcarbonに送信します。このバックエンドは、データをGraphiteの専用データベースに保存します、データはGraphiteのWebインターフェイスを介して視覚化できます。

Graphiteはどのように使用されるのか?

基本的にGraphiteを使用することが適しているのは、時間の経過と共に変化するデータの値をチェックしたい時ということになります。時間の経過とともに変化する可能性のある数値があり、時間の経過とともに値をグラフで表したい場合は、Graphiteがおそらくニーズを満たすことができます。

Graphiteは数値の時系列データを処理するように設計されています。 たとえば、Graphiteは、株価が時間とともに変化する数値であるため、株価のグラフ化に使用されたりもします。 数個のデータポイントであろうと、数千台のサーバーからの数十のパフォーマンスメトリックであろうと、Graphiteを使用することが出来ます。 ボーナスとして、あなたは必ずしもそれらのものの名前を前もって知っている必要はありません(誰がそのような巨大な構成を維持したいですか?)。 メトリック名、タイムスタンプ、および値を送信するだけで、残りはGraphiteが処理します。

Graphiteのコンポーネント

Graphiteは以下の3つのコンポーネントを基盤として作られています。

  1. Carbon
  2. Whisper
  3. Graphite-web

OSS Graphite 仕組み

1. Carbon

Carbonは時系列データをリッスンするデーモンです。Carbonの中でも、いくつかの役割があり、

  • carbon-relay: データをリッスンする
  • carbon aggregation: データを他のCarbonにリレーする
  • carbon-cache: データを集計する

というものに、分かれています。これらの機能を駆使して、時系列データ(メトリック)を次の段階のWhisperに渡します。

2. Whisper

Whisperは時系列データを保存するためのシンプルなデータベースライブラリです。また、ここで、データを1秒間隔のデータポイントに変更することも出来ます。

3. Graphite-web

Graphite-webpapは、ストレージに収集されたメトリックを視覚化するダッシュボードを含むWebUIを提供する役割を担っています。

これら3つからGraphiteが構成されています。

コレクター

コレクターに関しては、Graphiteと相性の良いツールはいくつかあります。こちらを参照してください。

今回の記事では、コレクターとして CollectDを推奨します。
CollectDはシステムパフォーマンス統計を定期的に収集し、RRDを含むさまざまな方法で値を格納するメカニズムを提供するデーモンです。 収集したメトリックをGraphiteのCarbonに送信することが出来ます。

可視化ツール 

先ほど、Graphiteにもデータをグラフ化する可視化機能があると言いました。ただ、このGraphiteはあまり、美しくなく操作性が欠けることから、あまりお勧めできません。
Graphite 可視化

そこで、可視化ツールもGrafanaと組み合わせることを強くお勧めします。Grafanaは、柔軟で強力なOSS(オープンソース)のダッシュボードソフトウェアであり、Grafanaプラグインを介して、Graphite以外のさまざまなデータソースからのメトリックのクエリもサポートしています。 Grafanaを使用することで、カスタマイズ可能な美しいグラフを手に入れることができますので、多くのユーザーにGraphite+Grafanaのコンビネーションが支持されています。

Graphite Grafana

まとめ

Graphiteという洗練されたOSSの監視ツールについて解説してみました。興味のある方は、是非Graphiteをダウンロードして、実際に使ってみてはいかがでしょうか?

Graphiteの基本概念について、もっと詳しく知りたい方は、【Graphiteによる監視の基本】アーキテクチャとその概念もチェックしてみてください。

また、上記のセットアップを自分で行うのが大変であると思う方は、上記のセットアップが完了しサービスとしてMetricFireが提供しているHosted Graphiteをチェックしてみてください。セットアップやメンテナンスなどの無駄な時間を割く事なく、すぐにgraphiteとGrafanaの使用を開始できます。興味のある方は、是非こちらのデモを予約して、詳細を確認してみてください。

You might also like other posts...
grafana Mar 12, 2024 · 6 min read

The Value Hosted Graphite brings to the Heroku Marketplace

Maximizing Heroku Monitoring Insights with HostedGraphite. Unlocking Heroku's Full Potential Through Real-time Monitoring and... Continue Reading

grafana Oct 30, 2023 · 1 min read

Graphite vs Nagios - インフラ監視ツールを比べてみた

Graphiteとは? Graphiteは、2008年にリリースされたオープンソースの時系列系データの監視ソフトウェアです。これは、情報プル型の監視ソフトウェアであり、すでにある情報を取得して、そのメトリクスを収集し、記録して視覚化します。 Continue Reading

grafana Oct 30, 2023 · 2 min read

【IoTの監視】MQTTとGraphiteを使用してGrafanaで可視化

IoTデバイスの普及により、私たちの身の回りには、さらに多くのデータで溢れるようになってきました。しかし、データ自体は、それに基づいて行動を起こすことができない限り、有用なものではありません。データを有効に活用していくために、IoTデータを視覚化させテイクことが必要で、この記事ではその方法を解説していきます。 Continue Reading

header image

We strive for
99.999% uptime

Because our system is your system.

14-day trial 14-day trial
No Credit Card Required No Credit Card Required