用于检查AlertManager的错误Prometheus端点

时间:2019-12-11 14:40:21

标签: kubernetes prometheus prometheus-alertmanager

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

但是,当检查Targets的状态时,对于AlertManager服务,它显示为“关闭”,每个其他端点都打开,请查看附件文件enter image description here

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

  

地址 =” 192.168.180.254:9093“   __meta_kubernetes_endpoint_address_target_kind =“豆荚”   __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 =“警报管理器”   __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"

enter image description here

2 个答案:

答案 0 :(得分:1)

首先,如果您想在不生病的情况下安装prometheus和grafana,则需要通过头盔进行操作。

First install helm

然后

helm install installationWhatEverName stable/prometheus-operator

答案 1 :(得分:1)

我已在GCE上转载了您的问题。

如果您使用的是1.16+版,则您可能已经更改了apiVersion,就像在教程中一样,您在Deployment中有extensions/v1beta1。由于K8为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+的更改。