1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker上で動かしているPrometheusをnginxをつかってサブディレクトリで動かす

Posted at

概要

PrometheusとはGo製のプル型の監視ツールである。複数の雑多なサービスをまとめているサーバ上でPrometheusをサブディレクトリで動かしたい、つまり、 https://exsample.com/prometheus/ という風にアクセスしたいということがあった。また、環境を汚したくないのでDocker上で動かしたい。しかし、よい日本語情報がなかったのでまとめておく。

Prometheusをサブディレクトリで動かす

キーになる設定が"--web.external-url"と"--web.route-prefix"である。"--web.external-url"では"外側のURL"、つまりnginx側に設定するURLを設定する。"--web.route-prefix"にはprometheus側のprefixを設定設定する。
例えば下記のようにdocker-compose.ymlに設定する。

version: '2'
services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - ./data:/prometheus/data
    ports:
      - 3002:9090
    command: >
      --config.file=/etc/prometheus/prometheus.yml
      --storage.tsdb.path=/prometheus/data
      --web.console.libraries=/etc/prometheus/console_libraries
      --web.console.templates=/etc/prometheus/consoles
      --web.external-url http://localhost:9090/prometheus/
      --web.route-prefix=/

nginx側の設定は exsample.com/prometheus/ でアクセスしたい場合たとえば下記のように設定する。

    server_name  exsample.com;
    # 中略
    location /prometheus/ {
            proxy_pass http://localhost:3002/;
        }

これで "https://exsample.com/prometheus/" にきたアクセスを "http://localhost:3002/" に飛ばすということが正常に行えるようになる。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?