Monitoring de l’ingress Traefik sur notre cluster k3s avec prometheus

Dans la série monitoring je vous propose de mettre en place le monitoring de l’ingress controller traefik préinstallé dans k3s. En fait sur k3s il est déjà actif et il ne reste plus qu’à installer le dashboard et à ajouter un job de scraping dans prometheus.

Activation du monitoring de traefik

Il suffit d’ajouter ces lignes au fichier de conf de traefik.

    [metrics]
      [metrics.prometheus]
        entryPoint = "traefik"

On peut vérifier que c’est le cas dans l’occurrence présente dans notre cluster k3s.

kubectl get configmaps traefik -o yaml -n kube-system

Vous devriez obtenir les lignes suivantes :

apiVersion: v1
data:
  traefik.toml: |
    logLevel = "info"
    defaultEntryPoints = ["http","https"]
    [entryPoints]
      [entryPoints.http]
      address = ":80"
      compress = true
      [entryPoints.https]
      address = ":443"
      compress = true
        [entryPoints.https.tls]
          [[entryPoints.https.tls.certificates]]
          CertFile = "/ssl/tls.crt"
          KeyFile = "/ssl/tls.key"
    [ping]
    entryPoint = "http"
    [kubernetes]
      [kubernetes.ingressEndpoint]
      publishedService = "kube-system/traefik"
    [accessLog]
      format="json"
      bufferingSize = 100
    [traefikLog]
      format = "json"
    [metrics]
      [metrics.prometheus]
        entryPoint = "traefik"
kind: ConfigMap
metadata:
  creationTimestamp: "2019-09-23T10:35:40Z"
  labels:
    app: traefik
    chart: traefik-1.77.1
    heritage: Tiller
    release: traefik
  name: traefik

Ajout d’un scraper dans prometheus

Je vous renvoie à l’installation de prometheus si ce n’est pas encore fait. D’ailleurs nous allons simplement modifier le fichier my-values et régénérer les manifests.

Éditer le fichier my-values.yaml et à la ligne 1046 ajouter les lignes suivantes comme ci-dessous:

1046     scrape_configs:
1047       - job_name: traefik
1048         static_configs:
1049           - targets:
1050             - traefik.kube-system.svc.cluster.local:8080
1051       - job_name: prometheus
1052         static_configs:
1053           - targets:
1054             - localhost:9090

Maintenant il faut regenerer les manifests, faire un apply et de relancer prometheus:

cd manifests/prometheus/templates/
rm -rf manifests && mkdir manifests
helm template  -f my-values.yaml --output-dir ./manifests --name prometheus --namespace monitoring .
cd manifests/prometheus/templates/
kubectl apply -f .
kubectl --n monitoring rollout restart deployment prometheus-server

Installation du dashboard traefik

Le dashboard traefik est diponible à l’adresse suivante. Télécharger le json et importer le.

traefik dashboard grafana

Il faudra certainement également installer le plugin pie chart de grafana avant. On doit se connecter au pod et lancer la commande suivante (remplacer le nom du pod):

kubectl exec -it grafana-7f88c894b6-fmwm6 /bin/bash
grafana-cli plugins install grafana-piechart-panel

Quitter le pod et relancer le déploiement :

kubectl rollout restart deployment grafana

Au bout de quelques minutes retournez dans grafana et vous devriez avoir votre dashboard complet :


Alimenter un blog comme celui-ci est aussi passionnant que chronophage. En passant votre prochaine commande (n'importe quel autre article) au travers des liens produits ci-contre, je touche une petite commission sans que cela ne vous coûte plus cher. Cela ne me permet pas de gagner ma vie, mais de couvrir les frais inhérents au fonctionnement du site. Merci donc à vous!

comments powered by Disqus