(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Openshift/Prometheus】prometheus.yamlに設定を加えることでスクレイプ構成を変更する

スポンサーリンク

やりたいこと

Operator版のPrometheusにて利用されているスクレイプ構成をデフォルト状態から変更する。
尚、デフォルト構成ファイルの実体はPrometheusのPodが展開されているnamespaceのsecretで定義されている。

環境情報
quay.io/prometheus/prometheus
uay.io/prometheus-operator/prometheus-config-reloader:v0.47.0

やり方

Additional Scrape Configurationを利用する。

以下コマンドでデフォルトに入っている設定を確認した上で

$ oc extract secret/prometheus-test --confirm

追加する部分を表現した以下のようなYAMLを用意して

$ cat prometheus-additional.yaml
- job_name: openshift-monitoring/node-exporter/0
  honor_labels: false
  kubernetes_sd_configs:
  - role: endpoints ...

このファイルをSecret化し、そのSecretをnameで指定する。

kind: Prometheus
...
spec: 
  additionalScrapeConfigs:
    name: additional-scrape-configs
    key: prometheus-additional.yaml

Podを再起動すると設定が反映され、PrometheusのサービスからStatus→ConfigrationとGUI操作をすると変更点が追記された構成が確認できる。

f:id:mtiit:20210827221641p:plain
Prometheusのサービス画面

以下、補足です。

補足

以下コマンドで設定ファイルを取り出した後に

$ oc extract secret/prometheus-test --confirm

同ファイルに追記をした上でSecretとして再作成しても自動的に書き戻されてしまいます。

$ oc create secret generic  prometheus-test --from-file prometheus.yaml.gz

これはOpenshiftのGUI上から操作をすると一目瞭然で以下のようにPrometheus側にて強制的に書き換えを戻していることが原因です。

This resource is managed by Prometheus xx and any modifications may be overwritten. Edit the managing resource to preserve changes.

よって同じようにSecretを削除しても自動的に復旧します。

以上、ご参考になれば幸いです。