Aller au contenu

Monitoring d’ingress Traefik avec prometheus

logo 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.

Terminal window
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 :

Terminal window
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.

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):

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

Quitter le pod et relancer le déploiement :

Terminal window
kubectl rollout restart deployment grafana

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