Loading search data...

Homelab - Monitoring du cluster kubernetes avec prometheus et grafana

Publié le : 21 octobre 2019 | Mis à jour le : 22 janvier 2023

logo prometheus

Sans monitoring difficile de comprendre ce qui se passe sur notre cluster kubernetes k3s. Parfois il peut arriver que certains de vos pods ne répondent plus ou votre cluster n’accepte plus aucune commande kubectl, mais comment comprendre ce qu’il s’est passé si vous n’avez de système de monitoring à part fouiller dans les events.

Pour vous superviser mon cluster Kubernetes k3s j’ai fait le choix d’utiliser Prometheus et Grafana :

  • Prometheus est un outil open source de monitoring qui s’installe très facilement sur un cluster k3s. * C’est lui qui va se charger de collecter les métriques de Kubernetes, et de les stocker dans sa base de données.
  • Grafana est un logiciel open source, qui permet la visualisation et la mise en forme de données métriques stockées entre autre dans Prometheus.

Installation de la stack Prometheus/Grafana

Nous allons utiliser un helm chart permettant d’installer toute la stack promotheus/grafana. Cette stack contient tout ce qu’il faut pour monitorer un cluster kubernetes, même les dashboards s’y trouvent.

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/kube-prometheus-stack

Pour personnaliser l’installation générée le fichier de valeurs et faites-y vos modifications.

helm show values prometheus-community/kube-prometheus-stack >>my-values.yml

Maintenant lançons le provisionnement de notre stack:

kubectl create ns monitoring
kubectl config set-context --current --namespace=monitoring

Au bout de quelques minutes vous devriez avoir ceci dans votre namespace monitoring :

kubectl get pod -o wide -n monitoring
NAME                                                     READY   STATUS    RESTARTS   AGE   IP              NODE      NOMINATED NODE   READINESS GATES
prometheus-prometheus-node-exporter-wm88p                1/1     Running   0          17h   192.168.1.101   devbox1   <none>           <none>
prometheus-kube-prometheus-operator-54bf65d8fc-jwxct     1/1     Running   0          17h   10.42.0.232     devbox1   <none>           <none>
alertmanager-prometheus-kube-prometheus-alertmanager-0   2/2     Running   0          17h   10.42.0.234     devbox1   <none>           <none>
prometheus-kube-state-metrics-77698656df-c8lxk           1/1     Running   0          17h   10.42.0.231     devbox1   <none>           <none>
prometheus-grafana-7c7dcd556b-mnhwr                      3/3     Running   0          17h   10.42.0.233     devbox1   <none>           <none>
prometheus-prometheus-kube-prometheus-prometheus-0       2/2     Running   0          17h   10.42.0.235     devbox1   <none>           <none>

Création de l’ingress Grafana

Je crée mon propre ingress comme pour celui d'Ansible AWX avec un certificat auto-signé avec mkcert. Il suffit de créer un fichier (n’oubliez pas de modifier le domain avec le vôtre) :

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/frontend-entry-points: http,https
    traefik.ingress.kubernetes.io/redirect-entry-point: https
    traefik.ingress.kubernetes.io/redirect-permanent: "true"
  name: grafana-ingress
  namespace: prometheus
spec:
  rules:
  - host: grafana.robert.local
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: prometheus-grafana
            port:
              number: 80
  tls:
  - hosts:
    - grafana.robert.local
    secretName: wildcard-tls-cert

Maintenant allez sur l’url de grafana (n’oubliez pas de l’ajouter à votre fichier hosts ou à votre serveur DNS.)

homelab devops grafana login

Ah oui !!! Le user c’est admin et mot de passe il faut le récupérer :

kubectl get secret --namespace prometheus prometheus-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

Maintenant vous pouvez comment à regarder tous les dashboards qui sont à votre disposition.

homelab devops grafana dashboard

Je vous propose maintenant de voir comment installer loki, un outil de centralisation de logs s’appuyant sur prometheus.

Mots clés :

k3s kubernetes devops homelab

Si vous avez apprécié cet article de blog, vous pouvez m'encourager à produire plus de contenu en m'offrant un café sur  Ko-Fi. Vous pouvez aussi passer votre prochaine commande sur amazon, sans que cela ne vous coûte plus cher, via  ce lien . Vous pouvez aussi partager le lien sur twitter ou Linkedin via les boutons ci-dessous. Je vous remercie pour votre soutien.

Autres Articles


Commentaires: