Telegrafを使ってPrometheusメトリクスをGraphiteに変換する方法

Telegrafを使ってPrometheusメトリクスをGraphiteに変換する方法

Table of Contents

Great systems are not just built. They are monitored.

MetricFire runs Graphite and Grafana as a fully managed service for growing engineering teams, taking care of storage, scaling, and version updates so your team doesn't have to. Plans start at $19/month, billed per metric namespace rather than per host, and include engineer-staffed support. Integrations work natively with Heroku, AWS, Azure, and GCP, and data is stored with 3× redundancy in SOC2- and ISO:27001-certified data centres.

はじめに 

Graphiteでの監視は、シンプルで階層的な命名システムを使用しており管理しやすいため、Prometheusよりも簡単であることがよくあります。また、そのストレージモデルは複雑な設定なしで長期的なデータ保持を目的として設計されており、履歴データが重要な場合に最適です。PrometheusのメトリクスをGraphiteに変換することで、監視を単一の一貫した形式に統一でき、複数のシステムを扱う煩雑さを軽減できます。

本記事では、Prometheusのメトリクスをエンドポイントにエクスポートする方法と、Telegrafを設定して、それらを収集・変換し、Graphiteのデータソースへ転送する方法について詳しく解説します。

Telegrafエージェントの開始

Telegrafは、InfluxDBを基盤としたプラグイン駆動型のサーバーエージェントで、データベース、システム、プロセス、デバイス、アプリケーションからメトリクスやイベントを収集・送信します。Goで記述されており、外部依存のない単一のバイナリとしてコンパイルされ、必要なメモリ使用量も非常に少なく抑えられています。多くのオペレーティングシステムに対応しており、さまざまなシステムパフォーマンスメトリクスを収集・転送するための便利な入力プラグイン出力プラグインが多数用意されています。

Telegrafのインストール(Linux/RedHat)

Telegrafをダウンロードして解凍します(最新バージョンや各種OS向けのインストール手順についてはTelegrafのドキュメントを参照してください)。パッケージやファイルは通常 /etc/telegraf/ にインストールされます。
Ubuntu/Debian
wget https://dl.influxdata.com/telegraf/releases/telegraf_1.30.0-1_amd64.deb
sudo dpkg -i telegraf_1.30.0-1_amd64.deb

RedHat/CentOS


wget https://dl.influxdata.com/telegraf/releases/telegraf-1.30.0-1.x86_64.rpm
sudo yum localinstall telegraf-1.30.0-1.x86_64.rpm

出力の設定

Telegrafは、Kafka、Graphite、InfluxDB、Prometheus、SQL、NoSQLなど、さまざまな出力先に設定することができます。

この例では、Graphiteへの出力を設定します。もしデータソースを自分でホスティングしていない場合は、次の手順を進めるために、MetricFireのHosted Graphiteの14日間無料トライアルを開始してください。

Hosted Graphiteアカウントでは、データソースの提供に加え、アラート機能や可視化ツールとしてのHosted Grafanaも利用できます。

Graphiteの出力を設定するには、ダウンロードした設定ファイル /etc/telegraf/telegraf.conf を見つけて、好みのテキストエディタで開きます。その後、以下の変更を行います。

次の行のコメントを外します:

[[outputs.graphite]]

serverの行のコメントを外して、以下のように編集します:

servers = ["carbon.hostedgraphite.com:2003"]

最後に、prefixの行のコメントを外して以下のように編集します:

prefix = "<YOUR_API_KEY>.telegraf"
まだHosted Graphiteのアカウントを持っていない場合は、無料トライアルに登録してAPIキーを取得してください。
または、別のデータソースにメトリクスを転送するように、別のTelegraf出力を設定することも可能です。

Prometheusメトリクスの生成

この例では、Redisが広く使われており扱いやすいデータベースサービスであるため、Linux(ubuntu20.04)環境で redis_exporter を使用してPrometheusのメトリクスを生成します。さらに、同様のPrometheusメトリクスのエクスポートは、HAProxy、MySQL、PostgreSQL、Apacheなど、多くの一般的なサービスでも設定可能です。本記事では、すでに redis-server のインスタンスが稼働していることを前提としていますが、まだの場合でも簡単にインストールできるため、この例に沿って進めることができます。

  • redis_exporterのダウンロードと設定: 
    • wget https://github.com/oliver006/redis_exporter/releases/download/v1.44.0/redis_exporter-v1.44.0.linux-amd64.tar.gz
  • 展開してシステムパスへ移動:
    • tar -xvf redis_exporter-v1.44.0.linux-amd64.tar.gz
    • cd redis_exporter-v1.44.0.linux-amd64/
    • sudo mv redis_exporter /usr/local/bin/
  • redis_exporterの実行:
    • /usr/local/bin/redis_exporter --redis.addr=redis://localhost:6379
  • 別のターミナルでメトリクス出力を確認(デフォルトポート:9121):
    • curl http://localhost:9121/metrics

    Telegrafプラグインの設定

    Telegrafには、多くの一般的な技術やサードパーティのソースから幅広いデータを収集できる入力プラグインが多数用意されています。この例では、設定済みのメトリクスエンドポイントから redis_exporter のメトリクスをスクレイピングする方法を説明します。これらのPrometheusメトリクスは、その後、先ほど設定したHosted Graphiteのデータソースへ転送される際にGraphite形式へ変換されます。

    まず、/etc/telegraf/telegraf.conf ファイル内で inputs.prometheus セクションを検索し、[[inputs.prometheus]] の行のコメントを外します:

     
    [[inputs.prometheus]]

    次に、urls の行のコメントを外して設定し、name_prefix を指定します(これによりメトリクスの検索性が向上します):


        urls = ["http://localhost:9121/metrics"]
        name_prefix = "redis_exporter."

      最後に、変更を保存し、以下のコマンドでTelegrafデーモンを実行します。これにより、出力に設定エラーがないか確認できます:


      telegraf --config telegraf.conf

      その後、Hosted Graphiteアカウントを確認すると、約200個のredis_exporterメトリクスが確認できます。Graphite形式では次のように表示されます:

      telegraf.<host>.http:--localhost:9121-metrics.redis_exporter.<metric>.<counter, gauge>

      追加の詳細や設定オプションについては、Prometheusプラグインの公式GitHubリポジトリを参照してください。

      MetricFireのHosted Graphiteを使用してカスタムダッシュボードとアラートを作成

      MetricFireは、サーバー、データベース、ネットワーク、プロセス、デバイス、アプリケーションからメトリクスやデータを収集・可視化・分析できる監視プラットフォームです。これを利用することで、インフラ内の問題を容易に特定し、リソースを最適化することができます。Hosted Graphiteは、監視ソリューションを自分でホスティングする負担を取り除き、より重要な作業に集中するための時間と自由を提供します。

      Hosted Graphiteアカウントに登録し、上記の手順に従ってTelegraf Agentでサーバーを設定すると、メトリクスはHosted Graphiteのバックエンドへ転送され、タイムスタンプが付与され、集約されます。

      1. メトリクスは次のGraphite形式で送信・保存されます:metric.name.path <数値> <unixタイムスタンプ>

      2. ドット表記の形式はツリー状のデータ構造を提供し、効率的なクエリを可能にします。

      3. メトリクスはHosted Graphiteアカウントに2年間保存され、カスタムアラートやGrafanaダッシュボードの作成に利用できます。

      Hosted Grafanaでダッシュボードを作成

      Hosted GraphiteのUIで、Dashboards に移動し、「+ New Dashboard」を選択して新しい可視化を作成します。

      その後、編集モードに入り、クエリUIを使ってGraphiteのメトリクスパスを選択します(HGアカウント経由でGrafanaにアクセスしている場合、デフォルトのデータソースはHosted Graphiteバックエンドになります)。

      HGのデータソースはワイルドカード(*)検索にも対応しており、指定したパスに一致するすべてのメトリクスを取得できます。

      さらに、これらのメトリクスに対してGraphite関数を適用することができます。例えば、aliasByNode() を使ってメトリクス名を再フォーマットしたり、integral() を使って時間経過に伴う累積値を計算することが可能です。

      Telegrafを使ってPrometheusメトリクスをGraphiteに変換する方法 - 1

      Grafanaには、さまざまな可視化オプション、表示のカスタマイズ、単位設定、さらにダッシュボード変数の設定やイベント注釈といった高度な機能も用意されています。

      上記の例では、メトリクスシリーズのインデックス4に対して「instance」というダッシュボード変数が設定されています。詳細についてはHosted Graphiteのダッシュボードドキュメントを参照してください。

      Graphiteアラートの作成

      Hosted GraphiteのUIで、Alerts ⇒ Graphite Alerts に移動し、新しいアラートを作成します。アラート名を設定し、アラート対象メトリクスのクエリを追加し、このアラートの説明を記述します。

      Telegrafを使ってPrometheusメトリクスをGraphiteに変換する方法 - 2

      次に、Alert Criteria タブを選択してしきい値を設定し、通知チャネルを選びます。デフォルトの通知チャネルは、Hosted Graphiteアカウント登録時に使用したメールアドレスです。さらに、Slack、PagerDuty、Microsoft Teams、OpsGenie、カスタムWebhookなど、さまざまな通知チャネルを簡単に設定することもできます。通知チャネルの詳細については、Hosted Graphiteのドキュメントを参照してください。

      Telegrafを使ってPrometheusメトリクスをGraphiteに変換する方法 - 3

      まとめ

      PrometheusのメトリクスをGraphiteのメトリクスとして監視することで、メトリクスの整理が簡素化され、より管理しやすく理解しやすいシンプルで階層的な命名構造を実現できます。Graphiteのシンプルなクエリ構文と長期的なデータ保持に重点を置いた設計は、履歴トレンドが重要な環境に最適であり、Prometheusのラベルベースのシステムに伴いがちな複雑さを軽減します。Graphiteにメトリクスを集約することで、よりユーザーフレンドリーで一貫性のある監視環境を構築でき、操作や保守が容易になります。

      無料トライアルに登録して、今すぐインフラの監視を始めましょう。また、デモを予約して、MetricFireのチームと直接、監視ニーズについてご相談いただくことも可能です。

      You might also like other posts...
      metricfire Apr 02, 2026 · 3 min read

      TelegrafとMetricFireでIoTデバイスのメトリクス管理を行う方法

      IoTデバイスを監視することで、その使用状況、環境条件、およびユーザーの行動に関する洞察を得ることができます。この記事では、メトリクスをMQTTブローカーに送信する方法、およびTelegrafエージェントを設定してこれらのメトリクスを受信し、データソースに転送する方法について詳しく説明します。 Continue Reading

      metricfire Mar 30, 2026 · 12 min read

      Reducing Alert Noise: Metric Naming Best Practices in Graphite

      Learn how to structure Graphite metrics using "services" and "signals" to create efficient, service-level... Continue Reading

      metricfire Mar 30, 2026 · 2 min read

      New RelicとHosted Graphiteの違いを解説|オブザーバビリティツールの比較と選び方

      本記事では、New RelicとHosted Graphiteを、開発者の視点に立って公平に比較し、フルスタックで特定の思想に基づいたオブザーバビリティと、メトリクスを最優先とした意図的なモニタリングとの間のトレードオフについて考察します。 Continue Reading

      header image

      We strive for 99.95% uptime

      Because our system is your system.

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