Aller au contenu principal

Monitoring d’ingress Traefik avec prometheus

· 2 minutes de lecture
Stéphane ROBERT
Consultant DevOps

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 regénérer 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 disponible à l’adresse suivante. Télécharger le json et importer le.

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 !