Monitoring d’ingress Traefik 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: v1data: 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: ConfigMapmetadata: 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: traefik1048 static_configs:1049 - targets:1050 - traefik.kube-system.svc.cluster.local:80801051 - job_name: prometheus1052 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 manifestshelm 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/bashgrafana-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 !