背景:

traefik搭建方式如下:
https://www.yuque.com/duiniwukenaihe/ehb02i/odflm7
Prometheus-oprator搭建方式如下:
https://www.yuque.com/duiniwukenaihe/ehb02i/tm6vl7
Prometheus的文档写了grafana添加了traefik的监控模板。但是现在仔细一看。traefik的监控图是空的,Prometheus的 target也没有对应traefik的监控。
现在配置下添加traefik服务发现以及验证一下grafana的图表。

1. Prometheus Operator 监控 Traefik V2.4

1.1. Traefik 配置文件设置 Prometheus

参照https://www.yuque.com/duiniwukenaihe/ehb02i/odflm7。配置中默认开启了默认的Prometheus监控。
image.png
https://doc.traefik.io/traefik/observability/metrics/prometheus/可参照traefik官方文档。

1.2、Traefik Service 设置标签

1.2.1 查看traefik service

  1. $ kubectl get svc -n kube-system
  2. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  3. cilium-agent ClusterIP None <none> 9095/TCP 15d
  4. etcd-k8s ClusterIP None <none> 2379/TCP 8d
  5. hubble-metrics ClusterIP None <none> 9091/TCP 15d
  6. hubble-relay ClusterIP 172.254.38.50 <none> 80/TCP 15d
  7. hubble-ui ClusterIP 172.254.11.239 <none> 80/TCP 15d
  8. kube-controller-manager ClusterIP None <none> 10257/TCP 8d
  9. kube-controller-manager-svc ClusterIP None <none> 10252/TCP 6d
  10. kube-dns ClusterIP 172.254.0.10 <none> 53/UDP,53/TCP,9153/TCP 15d
  11. kube-scheduler ClusterIP None <none> 10259/TCP 8d
  12. kube-scheduler-svc ClusterIP None <none> 10251/TCP 6d
  13. kubelet ClusterIP None <none> 10250/TCP,10255/TCP,4194/TCP 8d
  14. traefik ClusterIP 172.254.12.88 <none> 80/TCP,443/TCP,8080/TCP 11d

1.2.2、编辑该 Service 设置 Label

  1. kubectl edit service traefik -n kube-system

设置 Label “app: traefik”
image.png
参照的是traefik-deploy.yaml 中的app:traefik这个标签用了,当然了也可以自己定义下用下别的……
image.png

1.3、Prometheus Operator 配置监控规则

traefik-service-monitoring.yaml

  1. apiVersion: monitoring.coreos.com/v1
  2. kind: ServiceMonitor
  3. metadata:
  4. name: traefik
  5. namespace: monitoring
  6. labels:
  7. app: traefik
  8. spec:
  9. jobLabel: traefik-metrics
  10. selector:
  11. matchLabels:
  12. app: traefik
  13. namespaceSelector:
  14. matchNames:
  15. - kube-system
  16. endpoints:
  17. - port: admin
  18. path: /metrics

创建该Service Monitor

  1. $ kubectl apply -f traefik-monitor.yaml

1.4、查看 Prometheus target规则是否生效

image.png

1.5 查看grafana中的traefik仪表盘是否有数据生成图表

image.png
嗯 这也算是添加target的一个例子。下次写下配置下自动发现规则?