我使用 helm(在“monitoring”命名空间中)将 kube-prometheus-stack 15.3.1 安装到 GKE 集群中。我使用 helmvalues.yaml
打开某些组件的入口,并将 SMTP 信息和接收方详细信息添加到警报管理器中。大部分情况下一切正常,只是 Prometheus 发出了一些警报,而我没有收到任何警报电子邮件。
一次射击警报是:
PrometheusNotConnectedToAlertmanagers
Prometheus 监控/prometheus-kube-prometheus-stak-prometheus-0 未连接到任何 Alertmanagers
另外一个是:
PrometheusOperatorSyncFailed
监控命名空间中的控制器警报管理器无法协调 1 个对象。
我也尝试打开警报管理器的入口并指向alerts.mydomiain.com
它,但是当我尝试任何 GET 请求(例如alerts.mydomain.com/v2/status
)时,我总是收到 502 服务器错误。
我需要做什么才能使我的警报管理器正常工作?
下面是输出kubectl get pods,svc,daemonset,deployment,statefulset -n monitoring
:
NAME READY STATUS RESTARTS AGE
pod/kube-prometheus-stack-grafana-58f7fcb497-hm72h 2/2 Running 0 30h
pod/kube-prometheus-stack-kube-state-metrics-6d588499f5-d957b 1/1 Running 0 2d3h
pod/kube-prometheus-stack-operator-54f89674c9-k8ml7 1/1 Running 0 2d3h
pod/kube-prometheus-stack-prometheus-node-exporter-22vpd 1/1 Running 0 3h57m
pod/kube-prometheus-stack-prometheus-node-exporter-2qsl9 1/1 Running 0 3h57m
pod/kube-prometheus-stack-prometheus-node-exporter-4d27n 1/1 Running 0 7h36m
pod/kube-prometheus-stack-prometheus-node-exporter-7rlnk 1/1 Running 0 4h47m
pod/kube-prometheus-stack-prometheus-node-exporter-7xlf4 1/1 Running 0 4h51m
pod/kube-prometheus-stack-prometheus-node-exporter-9mfnt 1/1 Running 0 3h57m
pod/kube-prometheus-stack-prometheus-node-exporter-9zblf 1/1 Running 0 2d3h
pod/kube-prometheus-stack-prometheus-node-exporter-bdcjj 1/1 Running 0 2d3h
pod/kube-prometheus-stack-prometheus-node-exporter-bs54w 1/1 Running 0 4h47m
pod/kube-prometheus-stack-prometheus-node-exporter-fp95h 1/1 Running 0 2d3h
pod/kube-prometheus-stack-prometheus-node-exporter-h4zhw 1/1 Running 0 2d3h
pod/kube-prometheus-stack-prometheus-node-exporter-pz8js 1/1 Running 0 3h58m
pod/kube-prometheus-stack-prometheus-node-exporter-rrrhk 1/1 Running 0 27h
pod/kube-prometheus-stack-prometheus-node-exporter-rszlt 1/1 Running 0 2d3h
pod/kube-prometheus-stack-prometheus-node-exporter-s62wq 1/1 Running 0 4h47m
pod/kube-prometheus-stack-prometheus-node-exporter-w9dmb 1/1 Running 0 5h32m
pod/kube-prometheus-stack-prometheus-node-exporter-xqmxk 1/1 Running 0 4h51m
pod/prometheus-kube-prometheus-stack-prometheus-0 2/2 Running 1 30h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kube-prometheus-stack-alertmanager NodePort 10.125.4.161 <none> 9093:30903/TCP 2d3h
service/kube-prometheus-stack-grafana NodePort 10.125.7.177 <none> 80:32444/TCP 2d3h
service/kube-prometheus-stack-kube-state-metrics ClusterIP 10.125.2.56 <none> 8080/TCP 2d3h
service/kube-prometheus-stack-operator ClusterIP 10.125.4.171 <none> 443/TCP 2d3h
service/kube-prometheus-stack-prometheus NodePort 10.125.13.11 <none> 9090:30090/TCP 2d3h
service/kube-prometheus-stack-prometheus-node-exporter ClusterIP 10.125.10.231 <none> 9100/TCP 2d3h
service/prometheus-operated ClusterIP None <none> 9090/TCP 2d3h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/kube-prometheus-stack-prometheus-node-exporter 17 17 17 17 17 <none> 2d3h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/kube-prometheus-stack-grafana 1/1 1 1 2d3h
deployment.apps/kube-prometheus-stack-kube-state-metrics 1/1 1 1 2d3h
deployment.apps/kube-prometheus-stack-operator 1/1 1 1 2d3h
NAME READY AGE
statefulset.apps/prometheus-kube-prometheus-stack-prometheus 1/1 42h
答案1
我意识到,即使服务还在,但 alertmanager pod 却不见了。我发现,我可以通过卸载 prometheus 堆栈,然后使用默认值重新安装,然后使用我自己的值升级来恢复 pod。
现在 PrometheusNotConnectedToAlertmanagers 警报已停止触发,但我仍然没有收到电子邮件。现在我可以通过入口访问警报管理器,并看到我放入 Helm 值文件中的配置没有传递到警报管理器 - 它仍然有默认配置。
我发现我此处描述的问题并检查 kube-prometheus-stack 操作员 pod 中的日志确认了这一点。我需要在我的警报管理器接收器中有一个“空”接收器(我已将其删除)
答案2
如果这对 Google 的任何人有帮助,我在 pod 中看到了错误(我不记得是 Prometheus 还是 Prometheus-operator),SMTP 主机中缺少端口,然后意识到我在设置警报管理器时忘记在 SMTP 配置中指定端口。我正在使用 OpenShift 4.7(如果这很重要的话)