collectdを利用すると、システムのメトリクス情報を収集できるらしいです。
かつ、前回の投稿でさわってみたprometheusにも簡単に連携できる、とのことです。
prometheusのexporter群に触りながら覚えていこうと思います。
- dockerでprometheus自体を動かす
- 適当にexporterに触ってみる
- alertをいじってみる
- 公式docを見直す。BestPracticeのページを見てみる。
くらいのノリでやっていこうと思います。
1. collectd-exportのdockerコンテナを起動する
docker pull prom/collectd-exporter
docker run -d -p 9103:9103 prom/collectd-exporter
2. prometheus.ymlを用意する
prometheus.yml
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
# scrape_timeout is set to the global default (10s).
# Attach these extra labels to all time-series collected by this Prometheus instance.
#labels:
#monitor: 'panamax-monitor'
rule_files:
- '/etc/prometheus/alert.rules'
# A scrape configuration containing exactly one endpoint to scrape:
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
# Panamax
- job_name: 'panamax'
scrape_interval: 5s
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
scrape_timeout: 3s
target_groups:
- targets: ['${collectd-exporterを動かしたIPなど}:8080','${collectd-exporterを動かしたIP}:9103']
labels:
group: 'development'
targetsの配列に、9103のポートのエンドポイントを追加してあげます。
prometheusのコンテナの(再)起動
前述のprometheus.yml
をdokcerのvolumeオプションなどでうまいこと外だししていればコンテナの再起動をするだけで設定反映されて、targetsに追加されたエンドポイントのメトリクス収集が始まるみたいです。
便利ですねー。
UIでGraphを確認する
なんとはなしに取得できているように見えます。
感想
- コンテナのメトリクスなのか本体のメトリクスなのか確認したいところです。
- 他のexporterも試してみようと思います。とくにk8sとmesosでしょうか。
- 類似製品との共通点と相違点を見ていく必要がありそうです。
本日は以上となります。