Prometheus Telegraf連携

スポンサーリンク

Prometheusは大量コンポーネントを監視する事に特化したソフトウェアです。Prometheus単体で使用せず、いくつかのソフトウェアを組み合わせて監視の運用を実現する構成を採用する事もあります。このページではInfluxData社が開発したtelegrafと呼ばれるデータ収集・集計・転送ツールと連携する方法を説明します。

関連記事 : 統合監視ツール : Linux基本操作

前提

参照資料

動作確認済環境

  • Rocky Linux 8.5

telegraf側の構成

インストール

InfluxData download page」より最新バージョンのTelegrafのダウンロード方法を確認します。執筆時点(2022年5月)の最新の手順は以下の通りです。

Telegrafのダウンロード

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

telegrafを起動します。

systemctl enable telegraf.service --now

サンプル設定の生成

Telegrafは以下のようなプラグインで構成されます。

  • Input plugins
  • Output plugins
  • Aggregator plugins
  • Processor plugins
  • External plugins

今回はTelegrafとPrometheusの連携を動作確認しますので、単純なInputプラグインとOutputプラグインを組み合わせてみましょう。

telegrafコマンドに引数output-listを与えると、使用可能なOutputプラグイン一覧が表示されます。Prometheusと連携させることもできます。

[root@linux040 ~]# telegraf --output-list
Available Output Plugins: 

  <omitted>

  opentelemetry
  opentsdb
  prometheus_client
  riemann
  riemann_legacy
  sensu
  signalfx

  <omitted>

telegrafコマンドに引数output-listを与えると、使用可能なInputプラグイン一覧が表示されます。

[root@linux040 ~]# telegraf --input-list
Available Input Plugins:
  KNXListener
  activemq
  aerospike
  aliyuncms
  amd_rocm_smi
  amqp_consumer
  apache

  <omitted>

telegrafコマンドは引数sample-configを与えると、サンプル設定が標準出力されます。input-fileterとoutput-filterは、それぞれInputプラグインとOutputプラグインの指定です。プラグインを複数指定する場合はコロン(:)で区切ります。

telegraf --sample-config \
  --input-filter diskio:cpu:mem \
  --output-filter prometheus_client

動作確認

生成されるサンプル設定を観察します。「OUTPUT PLUGINS」以下の設定を観察すると、tcp9273にInputプラグインで収集した結果が出力される事が分かります。

[root@linux040 ~]# telegraf --sample-config \
>   --input-filter diskio:cpu:mem \
>   --output-filter prometheus_client

  <omitted>

###############################################################################
#                            OUTPUT PLUGINS                                   #
###############################################################################


# Configuration for the Prometheus client to spawn
[[outputs.prometheus_client]]
  ## Address to listen on
  listen = ":9273"

  <omitted>

サンプル設定を/etc/telegraf/telegraf.confに書き込みます。

telegraf --sample-config \
  --input-filter diskio:cpu:mem \
  --output-filter prometheus_client \
  > /etc/telegraf/telegraf.conf 

設定反映のため、telegrafを再起動します。

systemctl restart telegraf.service 

「http://<IPアドレス>:9273/metrics」にて、Prometheusが読み込める形式でメトリックが表示されている事を確認します。

[root@linux040 ~]# curl -s http://localhost:9273/metrics | head -n 20
# HELP cpu_usage_guest Telegraf collected metric
# TYPE cpu_usage_guest gauge
cpu_usage_guest{cpu="cpu-total",host="linux040.gokatei.go"} 0
cpu_usage_guest{cpu="cpu0",host="linux040.gokatei.go"} 0
cpu_usage_guest{cpu="cpu1",host="linux040.gokatei.go"} 0
# HELP cpu_usage_guest_nice Telegraf collected metric
# TYPE cpu_usage_guest_nice gauge
cpu_usage_guest_nice{cpu="cpu-total",host="linux040.gokatei.go"} 0
cpu_usage_guest_nice{cpu="cpu0",host="linux040.gokatei.go"} 0
cpu_usage_guest_nice{cpu="cpu1",host="linux040.gokatei.go"} 0
# HELP cpu_usage_idle Telegraf collected metric
# TYPE cpu_usage_idle gauge
cpu_usage_idle{cpu="cpu-total",host="linux040.gokatei.go"} 99.49949949949769
cpu_usage_idle{cpu="cpu0",host="linux040.gokatei.go"} 99.59839357429756
cpu_usage_idle{cpu="cpu1",host="linux040.gokatei.go"} 99.60000000000036
# HELP cpu_usage_iowait Telegraf collected metric
# TYPE cpu_usage_iowait gauge
cpu_usage_iowait{cpu="cpu-total",host="linux040.gokatei.go"} 0
cpu_usage_iowait{cpu="cpu0",host="linux040.gokatei.go"} 0
cpu_usage_iowait{cpu="cpu1",host="linux040.gokatei.go"} 0

Prometheus側の構成

Telegrafの出力結果をstatic_configsで指定すると、PrometheusとTelegrafを連携できます。Prometheus.ymlの設定例は以下の通りです。

scrape_configs:
  - job_name: telegraf
    static_configs:
      - targets:
        - localhost:9273

「http://<IPアドレス>:9090/targes」にて「up」と表示される事を確認します。「up」と表示されるという事は、PrometheusがTelegrafを問題なくスクレイプできている事を示します。

TODO img 002 あとで撮影する。

タイトルとURLをコピーしました