Grafana HTTP Error Bad Gateway 和 Templating init failed 错误
Posted
技术标签:
【中文标题】Grafana HTTP Error Bad Gateway 和 Templating init failed 错误【英文标题】:Grafana HTTP Error Bad Gateway and Templating init failed errors 【发布时间】:2018-06-28 12:27:10 【问题描述】:在本地使用helm
安装的Prometheus
和Grafana
minikube
。
$ helm install stable/prometheus
$ helm install stable/grafana
Prometheus 服务器、alertmanager grafana 设置端口转发后可以运行:
$ export POD_NAME=$(kubectl get pods --namespace default -l "app=prometheus,component=server" -o jsonpath=".items[0].metadata.name")
$ kubectl --namespace default port-forward $POD_NAME 9090
$ export POD_NAME=$(kubectl get pods --namespace default -l "app=prometheus,component=alertmanager" -o jsonpath=".items[0].metadata.name")
$ kubectl --namespace default port-forward $POD_NAME 9093
$ export POD_NAME=$(kubectl get pods --namespace default -l "app=excited-crocodile-grafana,component=grafana" -o jsonpath=".items[0].metadata.name")
$ kubectl --namespace default port-forward $POD_NAME 3000
从 grafana 添加数据源,得到HTTP Error Bad Gateway
错误:
从以下位置导入仪表板 315:
https://grafana.com/dashboards/315
然后检查Kubernetes cluster monitoring (via Prometheus)
,得到Templating init failed
错误:
为什么?
【问题讨论】:
【参考方案1】:我一直无法找到“正确”的修复方法,但我找到了解决方法:
apiVersion: v1
kind: Service
metadata:
labels:
prometheus: k8s
name: prometheus-k8s
namespace: monitoring
spec:
selector:
app: prometheus
prometheus: k8s
sessionAffinity: ClientIP
clusterIP: None
通过将clusterIP
设置为None
,服务更改为“无头”模式,这意味着请求将直接发送到该服务/集群中的随机一个pod。更多信息在这里:https://kubernetes.io/docs/concepts/services-networking/service/#headless-services
可能有更好的解决方案,但这是我发现的唯一一个真正适合我的解决方案,kube-prometheus。 (我试过 docker-desktop、k3d 和 kind,它们都有同样的问题,所以我怀疑这是模拟器的错;我将我的配置简化为基本上只是 kube-prometheus,所以很难理解在哪里问题出在哪里,但哦,好吧。)
【讨论】:
【参考方案2】:我关闭了设备上的防火墙,发布了在 URL 上添加 http://prometheus:9090 并没有引发错误网关错误。
【讨论】:
【参考方案3】:在 Grafana 的 HTTP 设置中,您将 Access
设置为 Proxy
,这意味着 Grafana 想要访问 Prometheus。由于 Kubernetes 使用的是覆盖网络,所以它是不同的 IP。
有两种方法可以解决这个问题:
-
将
Access
设置为Direct
,让浏览器直接连接到Prometheus。
使用 Kubernetes 内部 IP 或域名。我不知道 Prometheus Helm 图表,但假设有一个名为 prometheus
的 Service
,类似 http://prometheus:9090
的东西应该可以工作。
【讨论】:
在我的 grafana 仪表板中,节点指标(CPU、内存和网络)没有被加载。我使用 helm 图表安装了 Grafana 和 Prometheus。 令人惊叹!谢谢,这个解决方案刚刚使用 Kubernetes + Prometheus + Grafana 解决了我的错误。以上是关于Grafana HTTP Error Bad Gateway 和 Templating init failed 错误的主要内容,如果未能解决你的问题,请参考以下文章
将 Nginx Bad Gateway 用作 Grafana 的反向代理时发生错误
urllib2.HTTPError: HTTP Error 400: Bad Request
RPC 失败; HTTP 400 curl 22 The requested URL returned error: 400 Bad Request
Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"解决方法
Android studio出现Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request&q