--- title: PromregatorをCloud Foundryにインストール tags: ["Cloud Foundry", "Pivotal Cloud Foundry", "Prometheus", "Promregator"] categories: ["Dev", "PaaS", "CloudFoundry", "PCF", "Monitoring"] date: 2019-06-27T08:21:42Z updated: 2019-06-27T08:22:09Z --- [Promregator](https://github.com/promregator/promregator)のインストールメモ。 Cloud Foundry上のアプリケーションのPrometheusメトリクスを集約してscrapeしたい場合に使用する。 jarをダウンロード。 ``` wget https://github.com/promregator/promregator/releases/download/v0.5.7/promregator-0.5.7.jar ``` 以下の`manifest.yml`を作成。 ```yaml applications: - name: promregator memory: 3G instances: 1 path: ./promregator-0.5.7.jar health-check-type: http health-check-http-endpoint: / env: # https://github.com/promregator/promregator/blob/master/docs/config.md # adminまたはread only adminを作って設定、あるいは以下で設定するOrgにアクセスできるアカウント名 # https://docs.cloudfoundry.org/uaa/uaa-user-management.html#admin-read-only CF_API_HOST: ((cf_api_host)) CF_USERNAME: ((cf_username)) CF_PASSWORD: ((cf_password)) # Promeregatorのアクセス対象Org名 PROMREGATOR_TARGETS_0_ORGNAME: ((promregator_targets_0_orgname)) # メトリクスのパス。Org内で一括指定。Spring Bootの場合は/actuator/prometheus PROMREGATOR_TARGETS_0_PATH: ((promregator_targets_0_path)) # 複数のOrgにアクセスさせたい場合はindexを増やしていく # PROMREGATOR_TARGETS_1_ORGNAME: ((promregator_targets_1_orgname)) # PROMREGATOR_TARGETS_1_PATH: ((promregator_targets_1_path)) # Promregator自体の認証設定 PROMREGATOR_AUTHENTICATOR_TYPE: basic PROMREGATOR_AUTHENTICATOR_BASIC_USERNAME: ((promregator_authenticator_basic_username)) PROMREGATOR_AUTHENTICATOR_BASIC_PASSWORD: ((promregator_authenticator_basic_password)) # Promregatorがアクセスする先の認証設定 PROMREGATOR_ENDPOINT_AUTH: basic PROMREGATOR_AUTHENTICATION_BASIC_USERNAME: ((promregator_authentication_basic_username)) PROMREGATOR_AUTHENTICATION_BASIC_PASSWORD: ((promregator_authentication_basic_password)) LOGGING_LEVEL_ORG_CLOUDFOUNDRY_PROMREGATOR: ((logging_level_org_cloudfoundry_promregator)) ``` プレースホルダに埋める値は`vars.yml`に設定。適当に修正を。 ```yaml cf_api_host: api.sys.example.com cf_username: admin cf_password: passsword promregator_targets_0_orgname: Foo promregator_targets_0_path: /actuator/prometheus promregator_authenticator_basic_username: promregator promregator_authenticator_basic_password: promregator promregator_authentication_basic_username: demo promregator_authentication_basic_password: demo logging_level_org_cloudfoundry_promregator: WARN ``` `cf push`する。 ``` cf push --vars-file=vars.yml ``` Promemtheus側には以下の設定を行う。 ```yaml - job_name: promregator scrape_interval: 60s scrape_timeout: 10s metrics_path: /metrics scheme: https basic_auth: username: promregator password: promregator static_configs: - targets: - promregator.apps.example.com:443 ``` [prometheus-boshrelease](https://github.com/bosh-prometheus/prometheus-boshrelease)を使っている場合は、以下のops-fileを追加。 ```yaml - type: replace path: /instance_groups/name=prometheus2/jobs/name=prometheus2/properties/prometheus/scrape_configs/- value: job_name: promregator scrape_interval: 60s scrape_timeout: 10s metrics_path: /metrics scheme: https basic_auth: username: promregator password: promregator static_configs: - targets: - promregator.apps.example.com:443 ```