cappyzawa
cappyzawa
May 26 · 3 min read

今まで雰囲気でBOSHのvm群をprometheusを用いて監視していた。

というのも prometheus-bosh-releasemanifestopsfileをいくつか差し込んでいるから詳細なことがわからずとも利用できていた。

O’Reilly Japan — 入門 Prometheus の第Ⅲ部8章のサービスディスカバリのところを読んで、改めて自分たちはどうやってこれを実現しているんだっけとなったから立ち止まって調べてみた。

詳細な説明は割愛するが、BOSHとはVM Orchestration Toolのことだ

Cloud Foundry BOSH

Service Discovery

PrometheusにおけるService Discovery(以後、SD)の説明は先述した書籍から引用する。

サービスディスカバリ(Service Discovery, SD)は、その情報を格納したデータベースからPrometheusに情報を提供できるようにする。

PrometheusのscrapeでサポートされているSDは、執筆現在で以下がある。

BOSHは含まれていない

BOSHの監視方法

PrometheusでSDのサポートがされていないからといってBOSHのVM群の監視ができないわけではない。
bosh-prometheus/bosh_exporter: BOSH Prometheus Exporter が存在するため、他PFと同様httpでmetricsを取得することが可能だ。
取得できるmetricsはbosh-prometheus/bosh_exporter#metrics を参照する。
load_avgやmem_percentなどBOSH VMの基本的なmetricsが取得できる。

このexporterが面白くて、metricsを提供するだけでなく、PrometheusのFile SD で利用可能なjsonファイルの生成も行なってくれる。

READMEからこのexporterのアーキテクチャの図を拝借する。

https://github.com/bosh-prometheus/bosh_exporter#architecture-overview

つまりBOSH VM群を監視するためには以下の2つを行えば良い。

  • bosh-exporterを起動させる(target fileはdefaultではbosh_target_groups.jsonという名前で保存される)
  • prometheusのfile_sd_configに生成されたtarget_fileを指定する

これでBOSH VM群の中の特定のVMの監視設定を追加するときもfile_sd_configを指定することが可能になり、relabelを行うことでダイナミックな監視を行うことが可能になる。
SDを利用しない場合、BOSH VMのipが変わってしまった際に再設定が必要になりとても面倒になってしまう。

cappyzawa

Written by

cappyzawa

#golang #concourse #vim

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade