是的,Prometheus 也在同一个虚拟机上,并作为 Docker 容器部署。一切正常(我还有其他导出器已部署),但不知何故,Discourse Prometheus 插件即使明显已启动并运行,也无法接受请求。
您所说的环境变量是指 Discourse 的 app.yaml 文件中的环境吗?
那么,类似这样:
env:
DISCOURSE_PROMETHEUS_TRUSTED_IP_ALLOWLIST_REGEX: 172.20.0.3
172.20.0.3 是 Prometheus 在与 Discourse 连接的 Docker 虚拟网络上的当前内部 IP。
我已经尝试使用所有容器共享的外部 IP(VM 的静态 IP),但由于它们在同一个网络上,当一个容器尝试访问另一个容器时,它会通过内部 IP 进行访问。
./launcher restart app 应该足以让环境变量生效,对吧?
在这种情况下,我得到:
Get "http://vmi1187507-app:80/metrics": dial tcp: lookup vmi1187507-app on 127.0.0.11:53: server misbehaving
vmi1187507-app 是其网络中的容器网络名称。名称是正确的,我可以在运行的 Prometheus 容器中 ping 通它。
说实话,我不知道 127.0.0.11:53 是从哪里来的 ![]()
如果我注释掉环境变量,消息也是一样的。
