环境
操作系统:Redhat 7
ReverseProxy:Apache(仅)
通过以下方式部署:Docker
=============================================== =========================
问题:
是否可以在Apache反向代理中进行更改,以便我可以通过
访问prometheus控制台
" http://myserverurl/prometheus" - > " http://myserverurl/prometheus/graph"
而不是目前的失败 " http://myserverurl/prometheus" - > " http://myserverurl/graph" (FAIL)
反向代理后,URL被重定向,/ promethus消失。
在Grafana设置中,我能够添加如
之类的选项(#docker run -d -p 3000:3000 --name = grafana -e" GF_SERVER_ROOT_URL = http://0.0.0.0/grafana" grafana / grafana)
允许我通过
访问Grafana控制台
" http://myserverurl/grafana" - > " http://myserverurl/grafana/login" (成功)
=============================================== =========================
Docker状态:
docker run -d --name prometheus -p 9090:9090 prom / prometheus
对代理通过的测试配置:(无效)
ProxyPass / prometheus http://0.0.0.0:9090/prometheus
ProxyPassReverse / prometheus http://0.0.0.0:9090/prometheus
动作:
试图访问" http://myserverurl/prometheus"
结果失败:
找不到404页面
=============================================== =========================
但是,如果我按以下方式更改配置,则可以正常工作:
ProxyPass / http://0.0.0.0:9090/
ProxyPassReverse / http://0.0.0.0:9090/
访问网址" http://myserverurl/" - > " http://myserverurl/graph"
结果成功:
================================================== ======================
也尝试了以下组合 - 不起作用:
ProxyPass / promethus / http://0.0.0.0:9090/
ProxyPassReverse / promethus / http://0.0.0.0:9090/
答案 0 :(得分:0)
为了让Prometheus本身侦听/ prometheus而不是/,您需要添加运行时参数:
-web。 route-prefix =“ prometheus”
-web。 external-url =“ http:// myserverurl / prometheus”
(至少在二进制prometheus-2.7中)
普罗米修斯的调用:
prometheus --web.listen-address="127.0.0.1:9090" --web.route-prefix="prometheus" --web.external-url="http://myserverurl/prometheus"
,并添加对称的Apache rev-proxy:
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /prometheus http://127.0.0.1:9090/prometheus
ProxyPassReverse /prometheus http://127.0.0.1:9090/prometheus