TelegrafとMetricFireでDockerを監視する方法

TelegrafとMetricFireでDockerを監視する方法

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.

はじめに

Docker環境では、最適かつ安全で信頼性の高い状態を保つために、何らかの監視が必要です。監視を行うことで環境を維持し、問題が深刻化する前に迅速に対処することができます。
 

内部サービスや実行中のプロセスを監視すれば、リソースの使用状況(CPU、メモリ、ディスク容量)を追跡できます。これにより、リソースの過剰な割り当てや利用不足を防ぎ、最適なパフォーマンスを確保できます。
 

本記事では、Telegrafエージェントを使用してDockerのパフォーマンス統計情報を収集し、それをデータソースに転送する方法について詳しく解説します。

 

Telegrafエージェントの導入

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

Telegrafの利用はシンプルです。ドキュメントに記載されている手順に従うことで、簡単に使い始めることができます。
 
undefined
 

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

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

RedHat/CentOS

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.21.4-1.x86_64.rpm
sudo yum localinstall telegraf-1.21.4-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.influxdb]]

次に、以下の行のコメントを解除します。

[[outputs.graphite]]

続いて、server行のコメントを解除し、以下のように編集します。

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

最後に、prefix行のコメントを解除し、以下のように編集します。

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

Docker入力プラグインの設定

Telegrafには、幅広いパフォーマンス統計を収集・転送するための多くの入力プラグインがあります。この例では、このプラグインを2つの簡単なステップで設定する方法を説明します。

1. 設定ファイルの編集:telegraf.confファイルをvimシェルまたはテキストエディタで開き、[[inputs.docker]]の行を見つけてコメントを解除します。次に、endpoint行のコメントも解除して設定します。通常、ローカルのDockerまたはDocker Desktopは次のデフォルトエンドポイントを使用します。

 
[[inputs.docker]]
   endpoint = "unix:///var/run/docker.sock"

2. 設定エラーの確認:以下のコマンドを実行して、出力に設定エラーがないか確認します。

telegraf --config telegraf.conf

上記コマンドの出力にエラーが表示されなければ、Telegrafサービスを再起動できます。再起動後はバックグラウンドで実行され、10種類のDockerパフォーマンスメトリクスが転送されます(Graphite形式では以下のように表示されます)。


telegraf.<host>.docker-desktop.<docker-version>.docker.memory_total
telegraf.<host>.docker-desktop.<docker-version>.docker.n_containers
telegraf.<host>.docker-desktop.<docker-version>.docker.n_containers_paused
telegraf.<host>.docker-desktop.<docker-version>.docker.n_containers_running
telegraf.<host>.docker-desktop.<docker-version>.docker.n_containers_stopped
telegraf.<host>.docker-desktop.<docker-version>.docker.n_cpus
telegraf.<host>.docker-desktop.<docker-version>.docker.n_goroutines
telegraf.<host>.docker-desktop.<docker-version>.docker.n_images
telegraf.<host>.docker-desktop.<docker-version>.docker.n_listener_events
telegraf.<host>.docker-desktop.<docker-version>.docker.n_used_file_descriptors

さらに、Docker環境内で実行中の各コンテナごとにインスタンス単位のメトリクスも取得され、各コンテナはおよそ70種類のメトリクスを生成します。

これらのメトリクスには、CPU、メモリ、ブロック入出力、ネットワークの送受信パケット数、稼働時間などのステータス情報が含まれます。

Dockerプラグインの詳細な設定オプションや取得可能なメトリクスの完全な一覧については、公式のGitHubリポジトリをご参照ください。

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

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

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

メトリクスは次のGraphite形式で送信・保存されます:metric.name.path <数値> <unixタイムスタンプ>
この形式はツリー構造のデータを提供し、クエリを容易にします。

これらのメトリクスはHosted Graphiteアカウント内で確認でき、カスタムアラートやGrafanaダッシュボードの構築に利用できます。

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

Hosted GraphiteのUIで、Dashboards => Primary Dashboardsに移動し、「+」ボタンをクリックして新しいパネルを作成します。

TelegrafとMetricFireでDockerを監視する方法 - 1

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

TelegrafとMetricFireでDockerを監視する方法 - 2

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

さらに、これらのメトリクスに対してGraphite関数を適用できます。例えば、scale()で値を指定した倍率で乗算したり、aliasByNode()でパネル上のメトリクス名を整理したりできます。

TelegrafとMetricFireでDockerを監視する方法 - 3

Grafanaには、ダッシュボード変数やイベント注釈などの便利な機能も多数用意されています。また、さまざまな可視化方法の適用、表示設定の変更、単位の定義なども行えます。

詳細については、Hosted Graphiteのダッシュボードドキュメントをご参照ください。

Graphiteアラートの作成

Hosted GraphiteのUIで、Alerts => Graphite Alertsに移動し、新しいアラートを作成します。アラートに名前を付け、対象となるメトリクスをアラートフィールドに追加し、このアラートの内容を説明します。

TelegrafとMetricFireでDockerを監視する方法 - 4

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

TelegrafとMetricFireでDockerを監視する方法 - 5

まとめ

Docker環境の監視は、高いパフォーマンスの維持、コストの最適化、セキュリティの強化、そしてビジネス目標や継続性に沿った意思決定を行うために不可欠です。Dockerのパフォーマンス監視は有益なデータを提供します。MetricFireのダッシュボードやアラートは、リアルタイムの可視化、問題の事前検知、過去トレンドの分析、そして意思決定の支援を通じてこれらのデータを補完し、堅牢で効率的なインフラの維持に役立ちます。

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

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

TelegrafとMetricFireでGitHubを監視しコード品質を維持する方法を解説

本記事では、TelegrafとMetricFireを活用してGitHubのコード品質を継続的に監視・維持する方法を解説。メトリクス収集、可視化、アラート設定まで、開発チームの品質管理を効率化するポイントをご紹介します。 Continue Reading

metricfire Apr 22, 2026 · 4 min read

TelegrafでSNMPデバイスを監視する方法【ステップバイステップガイド】

本記事では、Telegrafエージェントを使用してSNMP(MIB)のパフォーマンス統計情報を収集し、それをデータソースに転送する方法について詳しく解説します。 Continue Reading

metricfire Apr 16, 2026 · 5 min read

Telegrafを使ったKubernetes監視の最適な方法【チュートリアル】

本記事では、TelegrafをDaemonSetとして導入し、KubernetesクラスターのノードやPodのメトリクスを効率的に収集・可視化する方法を解説。ダッシュボード作成やアラート設定まで、実践的な手順をご紹介します。 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