【问题标题】:Error Prometheus endpoint for checking AlertManager用于检查 AlertManager 的错误 Prometheus 端点
【发布时间】:2019-12-11 14:40:21
【问题描述】:

我安装了 Prometheus(点击此链接:https://devopscube.com/setup-prometheus-monitoring-on-kubernetes/

但是,当检查 Targets 的状态时,它显示 AlertManager 服务“Down”,每隔一个端点都启动,请参阅附件

然后,我检查服务发现,发现的标签显示:

"地址="192.168.180.254:9093" __meta_kubernetes_endpoint_address_target_kind="Pod" __meta_kubernetes_endpoint_address_target_name="alertmanager-6c666985cc-54rjm" __meta_kubernetes_endpoint_node_name="worker-node1" __meta_kubernetes_endpoint_port_protocol="TCP" __meta_kubernetes_endpoint_ready="true" __meta_kubernetes_endpoints_name="alertmanager" __meta_kubernetes_namespace="监控" __meta_kubernetes_pod_annotation_cni_projectcalico_org_podIP="192.168.180.254/32" __meta_kubernetes_pod_annotationpresent_cni_projectcalico_org_podIP="true" __meta_kubernetes_pod_container_name="alertmanager" __meta_kubernetes_pod_container_port_name="alertmanager" __meta_kubernetes_pod_container_port_number="9093""

但是目标标签显示另一个端口(8080),我不知道为什么:

instance="192.168.180.254:8080"
job="kubernetes-service-endpoints"
kubernetes_name="alertmanager"
kubernetes_namespace="monitoring"

【问题讨论】:

  • 安装 Prometheus 操作符,像 Iakovos Belonias 建议有用吗?你还有这个问题吗?
  • 我没有成功掌舵。安装 prometheus 运算符时出现另一个错误:manifest_sorter.go:175: info: skipping unknown hook: "crd-install" manifest_sorter.go:175: info: skipping unknown hook: "crd-install" 错误:发生内部错误:失败调用 webhook "prometheusrulemutate.monitoring.coreos.com": Post prometheus-prometheus-oper-operator.default.svc:443/…: service "prometheus-prometheus-oper-operator" not found
  • 这是因为你安装了 Helm 3,它不支持以前版本的一些钩子。无论如何它将安装所有对象。您使用的是 Minikube、Kubeadm 还是 On-Prem?我按照此说明进行操作,但没有收到此错误。
  • 您的环境是否使用任何防火墙?
  • @PjoterS :我在 prem 上使用了 kubeadm,我认为它与我的 kubernetes 版本不兼容。而且我也使用firewalld,但遵循k8s的安装说明

标签: kubernetes prometheus prometheus-alertmanager


【解决方案1】:

首先,如果你想在不生病的情况下安装prometheus和grafana,你需要通过helm来完成。

First install helm

然后

helm install installationWhatEverName stable/prometheus-operator

【讨论】:

  • 是的,我会试试这个方法。
  • 我在使用 helm 时遇到另一个错误: manifest_sorter.go:175: info: skipping unknown hook: "crd-install" manifest_sorter.go:175: info: skipping unknown hook: "crd-install" manifest_sorter.go:175:信息:跳过未知钩子:“crd-install” manifest_sorter.go:175:信息:跳过未知钩子:“crd-install”错误:发生内部错误:调用 webhook 失败“prometheusrulemutate.monitoring.coreos。 com": Post prometheus-prometheus-oper-operator.default.svc:443/…: service "prometheus-prometheus-oper-operator" 未找到
  • @taibc 不幸的是,您不是唯一遇到此错误的人github.com/helm/charts/issues/19452
  • @lakovos 是的,我认为这是因为 helm 3 和 kubernetes 之间的不兼容。可能是我需要降级我的 kubernetes 版本
  • 我认为你需要降级 helm 而不是 Kubernetes 集群
【解决方案2】:

我已经在 GCE 上复制了您的问题。

如果您使用版本1.16+,您可能已经更改了apiVersion,如教程中的Deployment 中的extensions/v1beta1。由于 K8s 1.16+ 您需要将其更改为 apiVersion: apps/v1。否则你会得到如下错误:

error: unable to recognize "STDIN": no matches for kind "Deployment" in version "extensions/v1beta1"

第二件事,在 1.16+ 中,您需要指定 selector。如果您不这样做,您将收到另一个错误:

`error: error validating "STDIN": error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec; if you choose to ignore these errors, turn validation off with --validate=false`

看起来像:

...
spec:
  replicas: 1
  selector:
    matchLabels:
      app: prometheus-server
  template:
    metadata:
      labels:
        app: prometheus-server
    spec:
      containers:
...

关于端口8080,请以this article为例。

端口:端口是使服务可见的端口号 在同一个 K8s 集群中运行的其他服务。换句话说, 如果一个服务想要调用另一个在 相同的 Kubernetes 集群,它将能够使用指定的端口来执行此操作 反对服务规范文件中的“端口”。

它适用于我在 GCE 中的环境。您是否为端点配置了防火墙?

另外。在Helm 3 中,一些hooks 已被弃用。您可以在here找到此信息。

如果您仍有问题,请提供您的 YAML,以将更改应用到 1.16+ 版。

【讨论】:

    猜你喜欢
    • 2021-07-13
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    相关资源
    最近更新 更多