我正在使用Django的prometheus客户端库。我不会在Docker容器中运行Prometheus。Djanog应用程序绑定到Unix域套接字,所以我认为这是我的问题的一部分,但我不知道如何解决。NGINX正在侦听端口80,并使用proxy_pass
报头重新路由流量。我不明白我的node_exporter(服务器指标)如何与本地主机目标良好地工作,但我的应用程序不会。甚至从浏览器我可以访问“/metrics”端点。我试过localhost,127.0.0.1,甚至服务器IP,都没有工作。此外,IPtables与端口80无关,但我创建了一个“拒绝”日志记录,并且我得到了“... src=127.0.0.1 dst=127.0.0.1 dpt=80 [...]”
NGINX
erver {
server_name hotname www.hostname ip;
[...]
location /metrics{
proxy_pass http://<unix_domain>;
}
location / {
proxy_pass http://unix:<location_of_domain_socket>;
}
普罗米修斯
<default prom config>
[...]
static_configs:
- targets: ["localhost:9090"]
- job_name: "django-app"
scrape_interval: 10s
static_configs:
- targets: ["localhost] # nothing works and prometheus attempts to use port 80 with a predefined scheme of http://
- job_name: "node"
scrape_interval: 10s
static_configs:
- targets: ["localhost:9100"]
1条答案
按热度按时间aelbi1ox1#
不确定这是否是100%的解决方案,但我只是使用了Gunicorn默认使用的TCP/IP,将Prometheus配置中的目标位置更改为localhost:8000,它可以按预期工作