GCEでprometheusを使ってみた
GCE上にインスタンスをいくつか作って、役割などに応じて、 api , web , db , staging , production などのタグを雑につけて運用しています。
その状況で、prometheus を導入していろいろメトリクスを取りたくなりました。
ということで、以下のようなことをやりました。
credeitial の生成
https://developers.google.com/identity/protocols/application-default-credentials
この辺を参照して、credential の json を取得し、prometheus を実行するホストの ~/.config/gcloud/application_default_credentials.json
に配置します。
gce_sd_config
__meta_gce_tags
は、例えば foo と bar というタグが付いていたら、 ,foo,bar,
という値を返すようです。
redis_exporter について
redis_exporter は、起動時の引数として対象となるredis server のアドレスをいくつも並べる形になっています。
が、それではちょっと管理しにくいので、redis の各インスタンスでそれぞれ localhost を向けた redis_exporter を動かすことにしました。
最終的な prometheus.yml
最終的にはこんな感じになりました。
- job_name: 'node'
gce_sd_configs:
- project: XXXXXXXXX
zone: asia-east1-c
port: 9100
relabel_configs:
- source_labels: [__meta_gce_instance_name]
target_label: instance
regex: (.*)
replacement: $1
- source_labels: [__meta_gce_tags]
target_label: stage
regex: ".*,(staging|production),.*"
replacement: $1
- source_labels: [__meta_gce_tags]
target_label: role
regex: ".*,(api|web|db|redis),.*"
replacement: $1
- job_name: 'redis_exporter'
gce_sd_configs:
- project: XXXXXXXXX
zone: asia-east1-c
port: 9121
relabel_configs:
- source_labels: [__meta_gce_instance_name]
target_label: instance
regex: (.*)
replacement: $1
- source_labels: [__meta_gce_tags]
target_label: stage
regex: ".*,(staging|production),.*"
replacement: $1
- source_labels: [__meta_gce_tags]
target_label: role
regex: ".*,redis,.*"
action: keep
もう少し、regexのあたりとかうまくやれそうに見えますが…
とりあえずいい感じに動いたので良しとします。
Author And Source
この問題について(GCEでprometheusを使ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/iszk/items/d54fc38170f1896317dc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .