【K8s教程】使用 Prometheus 和 Grafana 来抓取 NGINX Ingress 控制器的指标

参考:https://kubernetes.github.io/ingress-nginx/user-guide/monitoring/

前提条件

控制器应配置为导出指标

helm upgrade ingress-controller ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--set controller.metrics.enabled=true \
--set-string controller.podAnnotations."prometheus\.io/scrape"="true" \
--set-string controller.podAnnotations."prometheus\.io/port"="10254"

或者:

..
controller:
  metrics:
    enabled: true
    service:
      annotations:
        prometheus.io/port: "10254"
        prometheus.io/scrape: "true"
..

如果您不使用 helm ,则必须像这样编辑清单:

服务清单:

apiVersion: v1
kind: Service
metadata:
 annotations:
   prometheus.io/scrape: "true"
   prometheus.io/port: "10254"
..
spec:
  ports:
    - name: prometheus
      port: 10254
      targetPort: prometheus
      ..

DaemonSet 清单:

..
ports:
  - name: prometheus
    containerPort: 10254
  ..

部署和配置 Prometheus 服务器说明

参考:https://github.com/kubernetes/ingress-nginx/tree/main/deploy/prometheus

【K8s教程】使用 Prometheus 和 Grafana 来抓取 NGINX Ingress 控制器的指标

部署和配置 Grafana 说明

参考:https://github.com/kubernetes/ingress-nginx/tree/main/deploy/grafana

【K8s教程】使用 Prometheus 和 Grafana 来抓取 NGINX Ingress 控制器的指标

【K8s教程】使用 Prometheus 和 Grafana 来抓取 NGINX Ingress 控制器的指标

注意事项

通配符入口

默认情况下,请求指标标有主机名。 当您有通配符域入口时,该入口将没有指标(以防止指标在基数上爆炸)。 要在这种情况下获取指标,您需要使用以下命令运行入口控制器 --metrics-per-host=false(您将失去主机名的标签,但仍然有入口的标签)。

上一篇:使用Grafana 监控 SQLSERVER数据库


下一篇:docker环境下安装Prometheus